偶然間,小 PM 聽到工程師葛格們正在討論一個很奇怪的名詞『code name』。在好奇心的驅使下,我這位小菜鳥也加入他們的討論,才知道他們正在為某個新的專案/產品取名字。

小 PM 一直覺得,專案/產品的名字不就依照用途來取嗎?像是我們自家公司的網站,不就應該叫做『UniSharp Website』之類的嗎?

經過小 PM 抽絲剝繭、認真學習與研究之後才發現,原來我認知的這個名字,是叫做產品名稱,或是專案的對外名稱;一般在開發這個專案/產品時,公司內部通常會為它取一個 code name,這個 code name 可能跟產品或是這個專案的目的、用途完全沒有關係。所以『UniSharp Website』的 code name 可能叫做『bigbang』 :P。

為什麼要取 code name 呢?

每個行業都有常用的專有名詞或術語,取一個該領域外的 code name 可以讓專案更有辨識度。

以我們的行業來舉例,若有個專案叫做『悠夏爾公告系統』,當我們在內部溝通,講到『公告』這個詞的時候,就會讓人混淆:到底是在講『悠夏爾公告系統』,還是一般的公告功能?
若把『悠夏爾公告系統』的 code name 取作 bigbang,我們提到『bigbang』,就很清楚的知道是在講某個專案/產品。

維護專案的秘密,以混淆競爭對手

當內部資料外流,而讓競爭對手看到『bigbang』這個詞的時候,他會不清楚這是什麼專案。
甚至有些情況會時常調整同一個專案的 code name,會更讓競爭對手摸不著頭緒。但必須小心服用此帖,別讓自己人也搞混了。

讓產品名稱與開發時的名稱脫勾

開發人員可以專注在開發議題上,不需因為產品名稱的變動,而必須修改程式內的專案名稱來傷腦筋。
在開發過程中,可能因為 Pivot 而導致整個方向都變了,若一開始的方向是 ERP,code name 可能叫做 『UniSharp ERP』,但因為 Pivot的緣故,方向變成了交友平台(這也差太遠了吧….),這個時候專案代號若還是使用『UniSharp ERP』,就會變得很怪了。

該怎麼取 code name?

  • 易念(要好發音)、好拼,別太難。
  • 簡短不要長,四、五個音就太長了。
  • 最好要有一系列的相關名字
  • 不要有諧音或不好的聯想

著名的 code name

Android 的甜點系列
https://zh.wikipedia.org/wiki/Android歷史版本 (https://zh.wikipedia.org/wiki/Android%E6%AD%B7%E5%8F%B2%E7%89%88%E6%9C%AC)

Debian 的玩具總動員系列
https://zh.wikipedia.org/wiki/Debian#.E5.8F.91.E8.A1.8C.E7.89.88.E6.9C.AC

Microsoft 的一大堆 code name
https://en.wikipedia.org/wiki/List_of_Microsoft_codenames

總結:

取 code name 真的是一門學問,但在命名的同時,也讓苦悶的程式開發增添了一些有趣的元素進來 !?。
取一個屬於自己的 code name,有時候也是工程師大哥獨特的浪漫吧~~

如果是我取,可能會用一系列的名牌當 code name:

Prada、Hermes、LV、Coach、Bally、Burberry、Chanel…

最後才想到還沒講到標題提到的阿波羅13(Apollo 13),其實阿波羅13就是一個 code name 啊!我們常在戰爭電影裡面看到的什麼黑鷹計畫、藍象行動、綠狗任務,這都是他們的 code name 喔!(一整個亂取…XD)

參考文獻:

維基百科 Code name
https://en.wikipedia.org/wiki/Code_name
https://zh.wikipedia.org/wiki/代号

Project Code Name
https://ingramchen.io/blog/2014/03/project-code-name.html

怎麼幫專案取名字呢? - 喲哪桑 Speaking 之專案工作日誌
http://jonathanspeaking.blogspot.tw/2013/04/blog-post.html

翻譯:專案之名有什麼意涵?(What’s in a Project Name?) by Jeff Atwood - 葉難
http://yehnan.blogspot.tw/2010/08/whats-in-project-name-by-jeff-atwood.html