肉とビールとパンケーキ by @sotarok

少し大人になった「肉とご飯と甘いもの」

いち早く70%〜80%程度の完成度で人に見せられるものを作ることがいかに重要か、という話

去年の年末、Facebookで以下の様な画像が流れてきて自分もついついシェアしたんだけど、久々に、というか、自分にとってのここ最近の課題をドンピシャで突かれたような気がして、しばらく頭から離れなかった。


「プロ」か「アマチュア」か、というのはこの際どうでも良くて、この図の、上の曲線が、目指すべきところだなって話なだけなので、とりあえずその話をまとめてみることにする。

けど、まぁ、だいたい、こういう話をまとめるのは苦手だし途中で面倒になってしまうので、以下サブセクションだけ先に作ってみたものの、ちゃんと書くかどうかわからない... が、まあ、いい!あと、なんかグダグダ書いてしまいそうだけど、結局、サブセクションのタイトルにしたことをこねくりまわしているだけです。

作ってみるまでわからない

何にも言えることだけど作ってみるまで、それがどんなものかわからない。人間はその場に無いものがどんなものか評価することはできない。多分、よほどの何かを持った一握りの人でない限り。だから、まずモノが無いと議論が始まらない。

アイデアに価値はない、というのは多くの人が言っていて、僕もそう思ってる。
でも、実際にモノを作るにはアイデアが必要だ。で、アイデアはどんどん湧き出てくる、そして僕らはそれを話しあう。あれもいいね、これもいいね、という話は年中している。で、作り始めるときは、そりゃもちろん「いいね」と思ったものを作る。よくないね、と思ったものは、強要されてるんだ!でない限りは、まぁ作らない。


ところが、いいね、と思って作り始めたモノなのに、作ってみると、よくなかったりする。逆に、よくないね、と思ったものも、強要されて作ってみたら実はいいね、だったりもする。



アイデアレベルで良し悪しを判断することは、絶対にできない。アイデアは、モノになって初めて価値のある何かになって、そこで初めて議論ができる。

だから、要するに作ってみるまでわからない。

手戻るなら早ければ早いほうが良い

もうひとつ、ウェブサービスにしても何か他のプロダクトにしても、「手戻り」は必ず発生する。作ってみなければわからない、の次の話だ。

実際に作ってみたら「やっぱコレ違うな...」なんてことはめちゃくちゃ頻繁に起こることだし、というか、まあ、絶対に起こる。一人でサービスを作ったら、だいたい、コツコツつくって、それで、デキた、それで公開、だいたいまあそれでOKだろう。でもそれでも、実際に他の人に使ってもらったら「いややっぱこうだったな」ということは、起こる。数人〜多くの人が関わるプロダクトだったら、なおさら、それは絶対に起こる。 *1

で、作ってみなければわからないもので、「よくなかった」ものができてしまった、そうしたら、良いものにするために議論をする、そして、修正する、もしくは、最悪、作りなおす。
細部にこだわって全体に手をつけずに時間をかけて作り込んできたものが、ようやく出来上がったとして、そこからの手戻りは、すごくパワーがいる。スケジュールが自由にできない場合、パワーが要るでは済まされず、そもそも、手戻りできない可能性もある。


だから、出来る限りこのサイクルを、早く・短くしたいわけだ。


赤いのが目指すべきライン、青いのがダメパターンってことです。 適当な絵だけど、だいたいこういうことだよw

実践することの難しさ

だけど、この話をすすめるうえで非常に難しい点が、「いち早く70%〜80%程度の完成度で人に見せられるものを作ろう」なんてことは、意識してれば出来るというモノでもない、というコト。

というのは、

  • 見た目・細部にこだわる作業はテンションがあがる。
    • たとえば、ウェブサービスで言えば、モックつくる、と言って、スタイルをあてずに真っ白に黒字で作ってるとテンションがあがらないよね。
  • 早い段階で全体像を見せる、というのは、必ずしも「とりあえず動けば良いで実装を進めれば良い」というわけではない。
    • 細かいトコロやリファクタは後回しにしたとしても「後々ココはこうなるなー」などと想像しながら、ある程度柔軟に対応可能なように作らないと、絶対後々つらくなる
    • で、それをするには、設計・プログラミングの技術や経験をかなり求められる

なんてことがあるからだ。


だから、ココまでの話を実践するには、ザックリいうと「実力」が必要になる。それを実践するだけの力。
さらにいえば、自分があまりできていないのでなんともいえないけど、「細かいところをとりあえず後回しにしつつ全体が見えるようなものを早い段階でつくりあげる」を実践するには、それ自体を意識し続ける訓練と経験が必要だと思う。

  • 日々それを意識して感覚を鍛える
  • 細かいトコロはとりあえず捨てる勇気を持つ
  • 全体像をつくりあげる実力をつける *2
    • 経験
    • 問題に対する解決方法を日々蓄積しておく

なんか当たり前の話に落ち着きつつあるんだけどまあそいういうことなんだろう。。

今年の目標としようと思う点。タイトルに戻るけど、

  • 「いち早く70%〜80%程度の動くものを人に見せる」を頑張る


もうちょっと細かくいうと、

  • それはつまり、サービス・ソフトウェアライブラリ・何か、に関わらず、自分が今やっている作業が「細かいところ」ではないか、その作業を続けることによって全体が見えるようになるのかを考える。
    • もし細かいトコロをやってしまっていることがわかったら、それが楽しいことでも、とりあえず、やめる。


ということで、またしても全然具体的じゃないけど、今年も頑張っていきます。

おまけ。ある程度のものを作るのに役に立つかもしれないと思っているもの

最終的にウェブサービスに限った話になってきたけど、最近でいえば、以下のツールは、やっぱり、ある程度のモノを早い段階で人に見せるために役に立つと思う。

*1:ただし、どのくらいの手戻りが発生するか、というのは、そもそものセンスが関わっている可能性はあるとは思う。センスってなんだよって話だけど

*2:自分の場合で言えば、プログラミングの能力や、設計・ミドルウェアの知識、オブジェクト指向の知識、などです

*3:でも、とりあえずこれでもいいから出しちゃって、あとで見た目綺麗にすればいいや、というアプローチもゼンゼンアリだと思う