ランサーズ Advent Calendar 2016 1日目の記事です。
CTOの横井です。僕は単騎で新企画とかやるときは、とりあえずプロトタイプベースで進めていくことが多いです。
その甲斐あってなのか、プロトタイプで終わったもの、社内ツールとして使われたもの、プロダクトとしてリリースしたもの等等含めて、ランサーズ来てからの1年半で、0からつくったものが大小合わせて30本くらい自分のプロジェクトディレクトリにありました(ちょっとしたコマンドとかライブラリチックなのは除いて、画面があるもの限定です)。
前職の受託開発時代とかもプロトタイプベースでお客さんに提案していたり(週1で客先でプロトタイプノックをすることもありました)したので、そう考えるとトータルでは結構つくってきた気もします。
今回は、そんな自分がプロトタイプづくりを経て感じたアンチパターンを紹介したいと思います。
プロトタイプアンチパターン 愛ゆえにパターン
最大の敵はプロトタイプに愛を抱いてしまうことだと思います。実現したいこと、届けたい価値に愛を持つのは大事です。大事ですがプロトタイプそのものに愛を抱くと大抵不幸な結末を迎えることになります。まさにサウザー様が言っていたとおりです。愛ゆえに人は苦しまなければならぬのです。
以下にプロトタイプに愛を持ってしまうとどうなるかの例を書きます。
折角つくったのにみんなが見てくれない! 試してくれない! と鬱々とした気持ちを抱えながら日々を過ごすことになる
結果1年後くらいに「あのときのプロトを続けていれば……」みたいな怨霊と化す
プロトタイプを見せるプレゼンの場で、上手く動かない! となったときにみんなに見せたい気持ちから、突然その場でバグ探しとか、見せよう見せようとして結果全員に物悲しい時間が訪れることになる
仮説が成立していないことがわかっても、プロトタイプを捨てたくなくなり、ついついそれを守るための理屈を考えてしまう
「じゃあ仮説の方向性を変えて……」のときにもなんとか今のプロトタイプを変更することでどうにかならないか考えてしまう
……耳が痛い!
つまるところ、これって手段が目的化しちゃったって話なんですが、じゃあどうするかっていうと単純で、プロトタイプそのものには愛を持たないようにすることがコツかなと思います。
そもそも、本来的に仮説を検証するための手段としてのプロトタイプになんで執着しちゃうのかって話なんですが、これはもう手間をかけちゃったからだと思うんですね。自分のコストを投下すればするほどもったいなくなってくる。なので、愛を持たないようにするための手段としては「時間をかけない」「(作り方そのものについては)悩まない」というところかなと。
時間をかけない、って意味だと、例えばプロトタイプ開発用に必要なものが揃ったスケルトンプロジェクトみたいなのをあらかじめつくっておくとか、それに適した技術選択にしておくとかがあります(自分の場合だとフロントとサーバーサイド両方での思考のスイッチングコストを減らしたいのでサーバサイドはNode.jsでやっちゃうことが多いです)。
悩まないという点では、もうとにかく色々なパターンを知っているか、過去につくったことがあるか、がものをいうかと思います。まあ、そういう意味では一つのプロトタイプづくりは、次のプロトタイプづくりを更に早めるための経験値稼ぎでもあります。それの極北は、めんどくさいところを勘で察して、程々にごまかすなんちゃって実装の知見だったりします(これは完全にプロトタイプづくりのみのためのスキルですが)。
個人的な指針としては、午前中で一段落つくかどうか、みたいなものを置いていたりします。
丸一日かけちゃうと、それを捨てざるをえないときに「無駄な一日だった……」と悲しくなっちゃいますが、午前中だけだと仮にまるっと捨てても「午前中調子出なかったなー」くらいの軽い気持ちでいられるのです。
勿論これは僕個人の感情にのみ由来する話で、本来的にはプロトタイプを捨てるとはいっても、無駄になるわけではなく、必ず得られるものがあると思っています。ただ、それと、自分が無意識的にでも抱いてしまう感情の折り合いはどうにかつけていくしかないかなーと。
といいつつも、またうっかりプロトタイプそのものに愛を抱いてしまって、執着して、を繰り返しているので、人生は修行だなーと思います。