2016-08-03

それって、いくつあるんですか?

クリエイティブ案件のシステム開発(広告・プロモーション的なウェブサイト/ウェブアプリのサーバーサイドの開発および運用の意味)を請け負うとき、最初にオリエン(オリエンテーションの略と見せかけて、発展途上な思いつきを聞く会)に参加する。

いろいろと細かいことや、突飛なこと、素敵な意見が出てくる。おお、まじか、そんなのいくらかかるんだ、とか最初は思っていた。けれど、この時点で明確なドキュメントになっていないのであれば、ソフトウェア開発の文脈においては、基本的にwishlistの作成中だと思ってよい。

ただ wishlist のままでは開発はできないし、だいたい見積さえできない。要件を曖昧にすることはできても、曖昧なプログラムを作ることはできないからだ。

どうせいろいろと変わってくるんだけれど、自分にとっての要点の整理と、気にしている事項を伝えることを目的に、早い段階でいくつか聞くことがある。

そのひとつが「それって、いくつあるんですか?」だ。

たとえば、ロレアルのMakeup Genius というアプリを考えてみよう。今年、広告賞をとったやつを適当にググっただけであって、私は一切関わっていない。

カメラに自分の顔を撮った状態で、ロレアルの口紅を選んだら、その口紅を使ったメイクが画像に反映される。ロレアルの製品をリストから選ぶこともできるし、バーコードでスキャンもできる。シェアしたり、いいねしたりもできる。プロダクトが気に入ったら、購入ボタンで販売店(ドラッグストアとか)の購入ページに遷移する。


  • 製品カテゴリーっていくつ?
  • チークって何色あるんですか? 組み合わせとかもあるんですか?
  • いいねできる製品の数は?
  • ひとつの製品に、何度もいいねするんですか? それとも一回だけ?
  • 国や地域を設定できますが、これはいくつ選べるんですか?
  • Facebook にログインしますけど、友達とか取得します?

基本的に知りたいことは、必ず1個、0または1個、0以上の、どのカテゴリに属するのかだ。

必ず1個なら、テーブルのカラムに入れることができそうだなぁ、などと考える。ユニークなの値(Facebook のアカウントとか)ならキーにできるし、重複を許さない機構がいることになる。

0または1個の場合(メールアドレスとか)、0以上の場合(いいねとか)とでは、当然データの持ち方が変わってくる。

wishlist の段階では明確に決まっていないであろう。どのくらい決まっていないのかを確認できればよい。

「何度もいいね」とか意味が分からないであろう。けど、これは重要である。Facebook の投稿本体には、ひとつしかいいねできないんだから、1つだと思うだろう。

けれど、コメントにもいいねができる。だから、他人がいいねした内容に、自分ものっかっていいねする機能もあって当然だよね、と思う人が世の中には存在する。

スマホのFacebook メッセンジャーでは、いいねアイコンを長押しすると、アイコンがでかくなる。あれも含めてFacebookのいいねだ、と考えると、「Facebook みたいにいいねするだけ」の奥深さに驚愕する。

このとき、なんとなくクラス図や、ER図に近いものを描いていく。可能なら見せる。「いや、そんな複雑な話じゃなくってさ、いいねするだけなんだよ」と言われるかも知れない。それでもいい。作りたいモノの本質的な複雑さを分からずに発注しようとしている、ということが明らかになるのは重要だ。