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

たとえば、CTOになる計画をたててみる

クックパッドで広告領域の企画や実装などを担当している大野です。

2015年期から広告領域ががふたつの事業部に分かれ、私は「新規広告開発部」に所属しています。この事業部は、新しい顧客や販路から収益を上げることと、既存を含む広告の配信を技術的に最適化して収益効率を向上させること、のふたつの目的から新設されました。

事業部に所属するメンバーは、営業やエンジニアといった職種に関わらず、それぞれ収益に対してコミットしています。そして、収益源やビジネスモデルはそれぞれ異なっています。

今回は、特にエンジニアがこうした環境において、やることおよびその優先度をどのように議論して決定しているかを紹介します。やりたいことやアイディアをどう出していくかについては本稿では議論しません。 ちょうど25日に公開された成田による議論 が参考になります。

優先度 = 回収可能額 * 必要投資規模

いきなり結論めいた話ですが、優先度の決定は、どの程の投資に対してどの程度の回収が可能か。つまり、投資と回収の2軸から決定されるべきです。こう書くと (回収 - 投資) もしくは (回収 / 投資) で評価してソートすればいいような気もしますが、ご存知の通り、そんなに単純ではありません。

例えば、回収については時間軸で今期への算入額と将来まで含めた総額の二つで議論されるべきです。また、回収は目標金額を定められますが、投資の金額評価は難易度が高めです。そこに時間を使うのは無駄です。

というわけで、我々はそれぞれを感覚的に相対評価しています。そして、縦軸に回収、横軸に難易度をとる座標に施策をプロットして決めることにしています。

実例

それでは、早速今期の施策をプロットしたホワイトボードを、と言いたいところですが、あまりにリアルすぎて問題があるので、ご容赦ください。

今回は、読者の皆様に身近な話題ということで「CTOになる」を目標として、その達成のための施策について議論してみましょう。

なお、筆者は全くCTOになりたくありません。

とにかく書き出す

さて、早速施策を考えてみましょう。効果や優先度はあとから考えればいいので、思いついたことはしょうもなくても、とにかく書き出してみます。

  • a: 所属する会社の現CTOであるsec0ndlife氏に引退を迫る
  • b: 著名CTOであるn0oya氏に師事する
  • c: 一人でサービスを立ち上げて分社化し、そこのCTOを名乗る
  • d: 意識を高く保ってキャリアを積む

(※: IDは実在の人物とはあまり関係ありません)

評価

さて、それぞれの施策を評価しましょう。

まず、aに関しては、非常に筋が悪そうです。というのも、sec0ndlife氏はまだ30代であり、仕事にも燃えていそうです。そもそも、彼が引退することとあなたがCTOになることは全く直結しません。冷静になりましょう。

bに関しては、なんと、n0oya氏が最近弟子を募集する旨のブログを書いていました(ということにしてください)。また、様々な環境でCTO的な仕事をしてきた方の指導はわりと効果がありそうです。とはいえ、CTOも経営者なのでつまるところ実践あるのみな気もします。

cに関しては必勝です。ただ、分社化を認められるほど成功するサービスを作るのは難易度が高く時間もかかりそうです。

dに関しては、まぁ、頑張ってくださいという感じでしょうか。cよりは確度が低いが、投資もそれなりという感じですね。

プロットしてみましょう。

f:id:shin1ohno:20150329225811p:plain

実際には、もっとたくさんの、数十個の施策をプロットするわけですが、ここで、「こっちのほうが効果がたかそうだ。なぜなら〜〜」とか、「こっちのほうが難易度高いでしょう」みたいな議論をすることに大きな意味があります。メンバー間の施策に対する理解を揃えたり、思い込みを考え直せたりといった効果があります。目的に対する情熱が高すぎるとaのような勘違いが生まれがちです。

我々は、4半期に1日、割り込みを入れないように社外の会議室を借りて優先度設定をします。このなかで、アイディア出しに30分、プロットに3〜4時間かける感覚で進めています。プロットしているうちに新しいアイディアが出てくることもあります。

そして、最も大事なのは、回収の評価を「達成できたこと」を前提にするということです。達成の難易度に関しては横軸の議論なので、議論を分ける必要が有ります。ほとんどの人が直感としてdの評価に違和感があると思います。ただ、「日々の誘惑に負けずに毎日意識を高くた保てる」ことに成功すればこのくらいの効果がありそうという評価をすればこのくらいが正当なのではないでしょうか? 2軸評価、論点を分けることの優位な点です。ソフトウェア開発における、 "divide and conquer" ですね

さて、プロットされる位置によってこういう判断になります。

f:id:shin1ohno:20150329225619p:plain

と、いうわけで、ひとまず意識を高めて日常を送りつつ(d)、自分のサービスを立ち上げて分社化する夢を追う(c)。というのが直近の動きでしょうか。

アップデート

とはいえ、CTOになるのが夢の方なら、日常的にアイディアがでてくるはず。そうしたら、いままで出てきたのとの相対比較をして追加します。

わりと大事なのが、このアップデートの作業です。我々は四半期に1回くらいアップデートします。

優先度付けが終わったら

こうした優先度付けは、粒度としてやるべき「領域」を定義したにすぎません。それぞれの領域を分解して「仕事(タスク)」として定義し、スケジュールに落としていく必要があります。仕事として定義されてしまえば、Pivotal Trackerなどに入れてしまえばいいでしょう。

また、今回の例のdのような、日々の意識に関しては、チームミーティングなどで定期的にどういった意識付けができているか、そのテーマでどういった成果を出すことができたかの確認をするといいです。

また、各領域にコミットするのは誰か、という担当者の決定もしておくと良いです。実際にはチームとしてタスクを共有するわけですが、日々の意思決定を主体性を持ってできる人がいることは重要です。毎日の小さな意思決定が全体の大きな差を生むというのは、日々のコーディングを積み重ねてアプリケーションを作る作業と一緒です。

というわけで

さて、今回は、ある目標の達成に対して、やるべきことや優先度をどうやって決定するかを紹介しました。肝になるのは

  • 投資と回収をそれぞれ独立した議論で相対評価する
  • 投資と回収の2軸で2次元座標にプロットする。ここで議論を深める
  • プロットを元にやるべきことを決め、担当者とスケジュールを決める

ということです。優先度評価というものは正解のない議論ですが、皆様の役にたてると幸いです。また、クックパッドでは、何をするべきかから議論を主導して、決めた目標の達成をドライブすることに燃えるエンジニアを募集しています。

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/