仕様の決まる速度で実装する

最近プロトタイピングの仕事が多くて、とにかく雑に実装して、これでいいかデザイナかディレクターに確認とって、そこでリファクタみたいな過程をとることが多い。技術的にどこまで可能か未検証で、かつ仕様もはっきり決まっていないので、手戻りを最小にするためにとにかく早い段階でデモをみせる。

技術的にどこまで可能なので、どうすると開発が楽で、どこから先が大変で、どこから先が不可能かを説明しながら、その場で仕様の隙間を埋めたり、時には仕様を変更することがある。プロトタイピングの段階で勝手に一部の仕様を決めちゃって、事後追認してもらってるときもある。そこで、説明しながらその場でコードを書いてる。

エンジニア同士のペアプロは、コードを書く過程そのもの意味があるから、すべての過程をみせることに意味があるんだけど、非エンジニアに自分の席の隣に来てもらって、説明しながらの作業だとエディタを長い時間みせるわけにはいかない。せいぜい15秒ぐらいで、「こうなりますか」「こうしたらどうでしょう」と言われたことを反映できないと、「じゃあ、できたら声かけてください」っていう風に後回しにされてしまう。それはなんか悔しい。ワークフローもあるけど個人的にはプライドの問題。

フロントエンドのエンジニアならだいたい次のようになると思う

  • DeveloperTools上でそのままstyle属性に書く
  • DeveloperToolsのConsoleでjavascriptを直接書く(そのために事前に触りそうなインスタンスをグローバルに置いてバックドアを作る)
  • jQueryeでガッと書いてリロード <button class='.hoge'>hoge</button> $('.hoge').on 'click', ->

これをやるには、javascriptjQueryの仕様を網羅していて、実装ごとのイディオムを瞬時に引き出せる必要がある。それから仕様を伝える能力と、仕様を把握する能力。

これはもう数をこなすしかない。たくさんの試行錯誤、捨てたコードの屍の上に成り立つ技術だと思う。リファレンスを引いてる暇はないから自分の記憶力と引き出しと速度の勝負になる。今ふとなんかに似てるなと思ったんだけど、競技プログラミングや受験に似ている。

その場で適当にみつもって、その見積りをプロデューサとかに伝える。

  • 15秒タスク - その場でやる
  • 10分タスク
  • 1時間タスク
  • 半日タスク
  • 情報が少なすぎて見積もり不可

できるだけあらゆるものを15秒に落とし込みたい。瞬発力!筋力!速さ!リーンでアジャイル!リーンでアジャイルデベロップメントでユーザーエクスペリメント改善!ワイワイ!!!アジャイルが速いぞ!!!ワイワイ!!!