読者です 読者をやめる 読者になる 読者になる

コードネームの決め方

プログラマの仕事のうち、名前付けという作業は大きな割合を占めるのではないでしょうか。
頻繁に名前付けを行いますし、かつ、センスが求められる部分でもあります。

今回は変数名やメソッド名ではなく、プロダクト名につけるコードネームについて。今までの経験上、コードネームの付け方についてある程度知見が貯まり、パターンが見えてきました。ここでその知見を記録したいと思います。

コードネームの決め方に慣習があればそれに従え!

例えば植物の名前とか、島の名前、山の名前、物語のキャラクターの名前、といったような慣習があれば割と楽に決められることでしょう。逆に、無ければ何か慣習を作っておくと便利です。

例えば島の名前で決める、という慣習を決めたとすると、結構良い名前がざくざく出てきます。Lesbos, Malta, Aruba, Vaila, などなど。

アグリゲーション方式は愛着が湧かないぞ!

コードネームをアグリゲーション方式で名付けるケースもあります。ここで言うアグリゲーション方式とは、例えば USB が Universal Serial Bus の単語の頭文字を取り出して合成するような方式を指します。他にも、Digital Visual Interface で DVI とか、Bring Your Own Device で BYOD とか。この方式でコードネームをつけるのも悪くはありません。ただ、発音のしにくさがあったり、アルファベットの羅列だと愛着が湧かないこともあります。

というわけで、何か単語を名づけるほうがオススメです。

ただ、アグリゲーション方式でありながら単語っぽい発音をする名付けをするケースもあります。例えば Asynchronous JavaScript + XMLAjax 。ジャンル違いですが、High Frequency Active Auroral Research Program で HAARP、ハープと読むようなケースもあり、こういった名付け方はアリでしょう。

意味のある名付けをするとなお良いぞ!

ある程度適当にそれっぽい単語を名付けても大丈夫ですが、背景に何か意味があるとより愛着が湧きます。例えば僕の名付けの例ですが、とある画像加工プログラムには Vermeer (フェルメール、17世紀の画家)という名付けました。画像加工プログラムに画家の名前というのは洒落てるのではとひっそり自画自賛してます。

普段使う言葉と被らないようにしろ!

普段使う言葉とかぶると名前空間の解決に手間取るので、明らかにこれだ、とわかるような名前付けを心がけましょう。例えば、「この製品は我が社の根幹を成す部分だ!コードネームは Root にしよう!」とかやられるとキツイです。業務で被らない単語にするのはもちろんのこと、日常生活でも使わない単語にすべきでしょう。

発音しやすいやつを選べ!

Bee (ビー)や Row (ロウ)は発音のキレが良すぎて不向きと言えます。ショーン K 氏をリスペクトする故に Sean (ショーン)をコードネームとして用いるのも考えものです。逆に、長すぎてももちろんダメです。Concepcion (コンセプシオン、チリの地名)、Fomalhaut (フォーマルハウト、星の名前)とかは少し長いのではないでしょうか。マクアードルくらいなら大丈夫かもしれません。

というわけで語感が良い物を選びましょう。Oracle (オラクル)、Slack (スラック)、Lexus (レクサス)、Patagonia (パタゴニア)、など。

発音が一意であるやつにしろ!

Copper というコードネームをつけたら、「これコッパーって読むの?カッパー?」とか言われたりします。Hazel も、とある同僚が「これハゼル?ヘイゼル?」と言ってたことがありました。微妙なところではありますが、そういう混乱をできるだけ招かないよう、日本語での発音が一意になるとより使いやすいコードネームになるでしょう。ちなみに弊社には BAR という名前のキッチンがあるスペースがあるのですが、バーではなくバルと読むらしく、若干の混乱を招いてます。

同じ業界で用いられていないか検索しろ!

何かよさ気なコードネームが思い浮かんだら、同じ業界で使われていないか調べましょう。

例えば植物辞典眺めてて Juniper (ジュニパー、ヒノキの一種)という名前がよさ気と思っても、IT 業界には有名な Juniper Networks がいます。このように、ひょっとしたら自分が知らないだけで同じ業界には有名な製品や会社名があるかもしれません。事前に調べて、かぶったらできるだけ避けておきましょう。

頭文字が社内の他のコードネームと被らないようにしろ!

通常、頭文字がかぶっても問題になることはほとんどありません。このケースはケアしなくてもまず大丈夫です。

でも IT 界隈では、例えば Git リポジトリを使う時、コードネームをリポジトリ名につけることになると思いますが、頭文字がユニークだとその 1 文字をタイプすれば後は補完が効くのでディレクトリの移動が楽になる、というような小さなメリットがあります。もちろん、それぞれのリポジトリが同じディレクトリ内に存在するという前提ですが。

社内の製品で、Ga から始まるコードネーム/製品名が 3 つ存在していた時がありました。悲しかったです。プログラマ的には、移動先のディレクトリ名は 2 文字タイプしたら補完が聞いて欲しいですよね。

コードネームの最後に数字を置くな!

いわゆるウイニングイレブン 11 現象を引き起こすので、バージョンと混同しやすく、「ウイニングイレブンイレブン?」となるのでオススメできません。末尾ではなく先頭に数字を置くケースもごく稀ですが存在し、例えば新進気鋭のサイクルジャージブランド、7mesh がそれに該当します。
Cycling Apparel | 7Mesh Inc.

とはいえ、検索エンジンをかじっている身の私からすると、コードネームが英数字混じりというのはググラビリティ的にどうなのかという疑問がどうしても巻き起こるわけでして、やはり数字混じりはあまりオススメ出来ない次第であります。

宗教用語はちょっと危険だぞ!

宗教用語はその性質上神聖さを醸し出す用語が結構あり、名付けたくなることもあるでしょう。
ほとんどの場合は問題無いとは思いますが、ひょっとしたらチームメンバーの隠れキリシタン的な存在の方が嫌悪感を示すかもしれません。
ギリシャ神話くらいならほとんどファンタジーとして浸透しているので大丈夫ですが、無用なトラブルを避けるためには、各宗教の登場人物や用語をうかつに用いないほうが良いでしょう。

困ったら類語辞典を使え!

名付けをしようとしている対象に関する単語をいくつか放り込むと、似た単語を出してくれます。この辺から良い名付けが出来ることもあるので、皆様もお試しください。

http://renso-ruigo.com/
http://www.thesaurus.com/

まとめ

よく見なおしてみたらコードネームに限らない話でしたね。
ネーミングに困った時に役に立てたら幸いです。
それでは、よいネーミングライフを!

最新のネーミング強化書 (PHPビジネス新書)

最新のネーミング強化書 (PHPビジネス新書)