CTO Material

この前友人のhirogwaさんと話の流れで、
最近のMBAでよくある、
テック経験のない人の始めるテックスタートアップの
CTOのイケてない確率の高さについて雑談したので、
その辺を主にMBA関連の人向けに説明してみようと思います。

注1: ただの独断と偏見です。笑

注2: 基本的に、エンジニアリングのバックグラウンドがない人が
MBA在籍中に始めたSoftware/Internet Service系のスタートアップ
を想定して書いてます。

注3: 知ってる人の数的にアメリカ中心で持った印象です。

注4: エンジニア等テックバックグランドのある人には
多分当たり前過ぎるので「あるあるー」と共感してもらった後に
rebuildのこのエピソードを聞いたり
この辺の記事を読んだりしてください。笑

MBAでよく見かけるCTOの選び方

1. テックのトレンドをたくさん知っている

たまにテック企業のMBA採用も(ビジネスサイドは)
初めのHRスクリーニングでこんなこと気にしてる会社もありますが 笑
CTOをこの観点のみで選ぶと多分終わります 笑
このタイプの人達はフィージビリティを考えないまま
あれこれ最新のツール/ソリューションの提案をしてきます。
多くの場合、
最新のツールを使う=イノベーティブ=いいこと
というのが彼らの使うロジックなので
エンジニアは振り回され疲弊します。

2.コードがすごい書ける

これも1.と同様で基準の一つとしてはよいのですが、
これだけでCTOを選ぶと多分苦労します。
CTOの仕事のメインは、(スタートアップ超初期を除けば)
コード書くことではないので、
コードがすごい書けるけどCTOのコアの仕事をしたことがない人だと
CTOとしては正常に機能しないかもしれません。


こういう選び方をしてしまう背景には

ウェブサービスやソフトウェアプロダクトを作るということ
=コードを書くこと→コードが書ける人がCTOがいい!

作るプロダクトをイケてる感じにする
=最新のトレンドを使う。→最新のトレンド知ってる人がCTOがいい!

という発想が、CEOの頭の中にあるからなんじゃないかなーと思います。
こう考えてしまうのは、ボクが思うに
プロダクトを作るというのはどういうことを意味するのか
に関しての理解がないことに起因してる気がするのですが、
経験なしにプロダクトを作ることがどういうことなのか
想像するのは至難の業です。
そして、それがテックバックグランドを持ってないファウンダーが
CEOをやる時に叩かれる根本的な原因だと思います。

が、バックグラウンドがあろうがなかろうが、
やりたくなってしまったものは仕方がないことので 笑
とりあえず下記は知っておいた方がいいと思います。

ソフトウェアエンジニアリング

プロダクトを作るという作業で一番イメージしやすいのがコーディングですが、
プロダクトを作ること=コーディングではないです。
ソフトウェアエンジニアリングについてちゃんと書こうとすると
スーパー長くなってしまうので、そういうのはまた今度にしますが、
ハイレベルなところだけ超簡単に書くと
ソフトウェアエンジニアリングは大きく分けて

  • 要件定義:できるべきことを決める
  • 設計:要件をどう実現するか決める
  • コーディング:設計に応じたプログラムを作る
  • テスト:要件が実現しているか確かめる
  • 運用保守:出来た製品を使っていくことの管理

というタスクがあります。
世の中には色々な開発手法があり、
開発手法によってそれぞれのタスクをまわすサイクルが違ったり
タスクの単位が違ったりしますが、
製品/サービスを作って世に出してユーザーに使ってもらう
という過程で、エンジニアサイドではこの5つはほぼ必ず通ることになります。なのでCTOは上記全てのタスクについて体で分かっている必要があります。
全てのタスクについて分かっていないと、例えば
「この設計をすると運用フェイズでこういうことが起こった時に問題が起きそう」
といったタスクを跨いだ潜在的な問題に気付けないです。

CTOの仕事

では、CTOは何する人なのか、ですが、
CTOは基本的にはエンジニアサイドの物事を決める人だと思います。
大企業で言うところのTech PM+PMOの職務兼任的なイメージです。
システムの全体デザイン(どういう仕組みで動くか)を決めたり、
開発体制/手法を決めたり、
運用保守の仕組みを決めたり。
プロダクト全体の要件定義もCEO等他のステークホルダーと恊働ですが、
CTO主導で行われるべきだし、
設計もエンジニアと恊働ですがCTO主導だと思います。

スタートアップの超初期ではCTOもコーディングすることが多いですが
それはCTOの職務だからではなく、
単純にエンジニアリングのリソースが足りないからです。
別にそれ自体は全くもって悪いことではないですし
むしろ普通のことですが、
近視眼的にコーディングスキルだけ注目してCTOを採ると
どこかのタイミングで運用まわらなくなったり
すごい複雑な仕組みのわりに
ユーザーのメリットがいまいちないプロダクトになってしまったり
中長期的に困ることになる可能性が多分にあるので、
気をつけた方がいいです。

じゃあCTOにどんな人を採ればいいのか

CTO as Tech PM + PMO

ソフトウェアエンジニアリングを全部経験した人を採りましょう。
コーディングも最新のトレンドも
自分達の作ろうとしてるプロダクトのビジョンを理解してシステムデザイン/開発手法等の全体像に落とし込んだ上で
そのコードやトレンドが
その中のどのピースになるのか/ピースとしてどういう意味があるのか
考えて意思決定できる人がCTOになるべきだと思います。
あと個人的には
プロダクトライフサイクルの各フェイズも
経験している必要があると思います。
スタートアップだからといって新製品開発に特化した人だと
ライフサイクル後期に露見する問題を設計段階で予見するのは
難しいかもしれません。

またエンジニアリングチームをリードする際、
エンジニア経験のない人が「〜することに決めたから」
というと、たとえそれが正しい決断だとしても
エンジニア達からは
「え〜、あいつやったこともねぇくせに何言ってんだよ〜、
これだからトップがエンジニアじゃないってダメなんだよ〜」
と言いたくなりがちですが、
エンジニア経験のある人が同じことを言った場合は
「あ〜、まぁあの人が言うんだから
きっとこっちのチャレンジも織り込んだ上での決断だろう」
と思われやすくなります。
(…まぁもちろん人柄とかエンジニアとしてのスキルとか
色々他にも影響与える要素はありますが)

ちなみにエンジニアの中にも色々なタイプがあって
例えばコーディング等特定のタスクを専門でやってきた人、
大企業で既に確立しているプロダクトをやった等の
プロダクトライフサイクル後ろ側だけやってきた人、
その逆でローンチフェイズのスタートアップを渡り歩いて
プロダクトライフサイクルの前側だけやってきた人等々。
なので同じエンジニアでもしっかり見極める必要があります。
で、こういうこと言うと
「そんなの全部やってきた人なんていないよ〜」
と思われるかもしれません。
まぁ実際数は少ないと思いますが 笑
別にその全部について
スーパースターエンジニア並に出来る必要はなく、
その全部について、意思決定(上述の人がついてくるとこまで含めて)
が出来るだけの能力があればよいかと思います。

CTO as Communication Bridge

ビジネスサイドが分かる人を採りましょう。
ソフトウェアエンジニアリングの中で全部のタスクが大事ですが、
その中でも特に要件定義と設計は大事です。
要件定義/ロードマップ作成は
ビジネスとしての重要性とエンジニアリングの大変さ
のバランスをとりながら行われるべきで、
CEOがビジネスのことしか分からなくて
CTOがエンジニアリングのことしか分からないと
議論は平行線を辿ります 笑
またシステムデザイン等いろいろな意思決定のJustificationも
それぞれがビジネス的にどういう意味があるのか
きっちり伝えられる人じゃないと、
予算やその他のリソースの振分の議論ができません。
例えばQA(テスト)チームを作るタイミングの話をする時に
1)バグのもたらすユーザーとビジネスへの潜在的なインパクトと
2)QAチームを置くことによってどの位回避できるのかの試算と
3)QAチームを置くコストが分からないと
QAチームを置こうかどうか判断できないと思いますが
ビジネスバックグラウンドしかないCEOが分かるのは
せいぜい3)だけで
CTOが1)と2)の答えを出す必要があるのですが、
テックバックグラウンドしかない場合は
1)のビジネスへのインパクトまでは分からないかもしれません。

ちなみに
CEOがMBA仕込みのコミュニケーション能力で打破する
というのは相当非現実的だと思います。
まず現実にそういうことができている
ビジネスバックグラウンドオンリーのCEOを
未だかつて見たことがないのと 笑
どんなに相手からものを引き出すのがうまかったとしても
引き出すものがそもそもない場合は引き出せないからです。


ということで実際あんまりCTOに適した人って
そこらへんにゴロゴロいる感じではないと思います。笑
なので、もし見つけたらしっかり捕まえるのが大事なのと
あるいは足りない部分を意識的に育てる感じでやっていくのも
いいかもしれません。
スタートアップは時間が勝負のことが多いので
あまり悠長にはやってられないかもしれませんが。

Catalog Creation

テック業界でMBAに人気の仕事の一つにプロダクトマネージャがあります。
MBAで人気の仕事の割に、実際にMBAに入ってみると
関連バックグラウンドを持った人が少ないなーとか、
授業が的外れだなーとか
思う機会が多いです。

そういうことを感じながら2年間過ごしてきて
プロダクトマネージメントを勉強するには
コンピュータサイエンスの方がバックグラウンド的には適切なんだろうなー
と思うようになったのですが、
Health Analyticsでコンピュータサイエンスの人達のピッチを見たり
一緒にチームでロードマップ考えたりしてると
コンピュータサイエンスもコンピュータサイエンスで問題あるなー
と思うようになりました 笑

プロダクトマネージャは、ビジネスの知識とエンジニアリングの知識の両方を
結構ちゃんと知ってる必要があるので、
やっぱりどっちも知ってる人じゃないとダメなんだなー
というのも一つの理由で、
確かに純粋なMBAの人は市場規模の計算に終始し
テクニカルチャレンジやテクニカルフィージビリティのところで
言ってることわけわかんないことが多いですし、
コンピュータサイエンスの人は、インプリメンテーションに終始し
マーケット感覚(それ誰が使うの?)がないことが多いです。
…もちろんどちらの学校にもそういうことがちゃんと出来る人も少数いますが。

ですが、それ以上にMBA、コンピュータサイエンスに共通して
解決しようとしてる問題の本質は何で、そのアイディアはそれをどう解決するのか
ということを考えるスキルのある人が少ないなーと感じます。
そしてそれを教える授業も、UCLAにはボクの知る限りほとんどないです。

で、ボクは結構このスキルが、プロダクトマネジメントにとって
一番大事なんじゃないかレベルで重要な気がしています。

学校でこのスキルを勉強したい場合は
アイディアのピッチやデモがある授業をとりまくったり
授業外のそういう機会に飛び込んで
実践から副次的にフィードバックを貯めていくしか術はなさそうです。

「てか偉そうに語っているけど、そんなお前はどうなんだよ」
という話になるのは自然な流れだと思いますが 笑
ボクもあんまりそのスキルないです。笑

が、謙虚をやめて書くと 笑
一応前職でそういうことを考える仕事をたくさんさせてもらえたおかげで
バックグラウンドのないMBAの人達やコンピュータサイエンスの人達と比べると
アドバンテージがあるなーと感じます。

ということで前置きがハイパー長くなりましたが 笑
今回は前職でやってた「そういうことを考える仕事」である
カタログ作成という作業について書いてみようと思います。

カタログ作成

「カタログ」は前職で勤めていたワークスアプリケーションズの社内用語です。
カタログは読んで字のごとく製品のカタログです。
普通の製品カタログと何が違うかというと、書くタイミングと対象です。
ワークスでは製品を作る前にエンジニアが書きます。
書いたカタログを元に
(多くの場合は)それを書いたエンジニアが製品開発をしていきます。
そして一般的な製品カタログとは異なり、
社外のお客さん向けではなく社内のエンジニア向けです。

カタログにはユースケースと言って
誰がどんな時に使うことを想定していて、そこにどんなメリットがあるのか
をまず記載し、
そのユースケースに記載したメリットを最大限実現するための機能を
優先度の高い順に記載していきます。

と、これだけ書くととっても簡単そうで
「なんだ、それくらい書かなくても私もやってるわ」
と思う人も多そうですが、
意外と奥が深いです。

例えば、
商品を納入したけど期日までに入金が入らなかった注文の一覧を
月次でまとめて印刷する機能のカタログのユースケースとして、
「経理担当者が月末に使うことを想定していてこの機能によって
商品を納入したけど期日までに入金が入らなかった注文の一覧データ
を紙で見ることができる」
って書くとボツです 笑

上記のケースではまず一番初めに
「なんでこの経理担当者わざわざ紙で見たいの?紙マニアなの?」
という疑問が浮かびますね。
たぶん多くの場合経理担当者の人は紙マニアではないので 笑
紙で出力したいのには他の理由があるはずです。
例えば、この経理担当者は月次で未入金の注文について
経理担当者の上司からの承認をもらっていて
上司にハンコをもらうために紙で出力する必要がある。とか。

とすると、今度は
「なんでこの上司ハンコつきたいの?ハンコマニアなの?」
と思いますね。
わざわざ紙に出力してハンコをもらわなくても
そのデータを承認する機能があれば
わざわざ経理担当者が紙に印刷して上司のとこまで行く手間が省けますし
使う紙も減ってエコですし。プリンタの混雑も減りますし。

これを聞いて「あ、確かに」となる場合はたぶん印刷する機能よりも
承認する機能を作るべきで、作る機能が変わります。
逆に「いやいや言ってることはわかるんすけど、
うちの上司おじいさんなのでパソコン使えないんですよねー」
という場合はじゃあ確かに紙で印刷する必要あるかもね
となります。

もしこれが理由で月次でまとめて印刷する機能を作るのであれば
印刷の出力フォーマットにはハンコをつく場所を想定しているべきですし
文字も大きく見やすくデータがまとまっている必要もあるかもしれません。

次に
「てかそもそもこの上司はなんで未入金データの承認をしたいの?
未入金マニアなの?」とか
「なんで毎日じゃなくて月末なの?月一出社なの?」
という疑問が浮かんでくるので、なんで承認してるのか調べます。
調べていく上で、根本的なニーズがわかり、
例えばどの項目を元に承認するのかとか
どういう単位でどういう順でデータが表示されてるべきとか
機能のあるべき姿が見えてきます。

…というように問題の根っこをちゃんと理解するために
カタログを書きます。

ここで注意が必要なのは、一番初めに書いたユースケース
「経理担当者が月末に使うことを想定していてこの機能によって
商品を納入したけど期日までに入金が入らなかった注文の一覧データ
を紙で見ることができる」
でもカタログは書けてしまうし、
疑問を持たない人にはこれをみて
「ふーん、そうかもね。いいんじゃない?」
と思ってしまえることです。
それを元に
「よーし、じゃあスペースを最大限利用して
なるべくたくさんの情報を出力するようにして
一枚当たりの情報量がなるべく多くなるようにしよう」
と作ってしまうと、
「何この機能?全く使えないんだけど?」
となってしまうかもしれません。

ということでカタログ作成、レビューが鍵だと思います。
ちゃんとカタログをレビューできる人と一緒に議論することで
まだわかってないことが何なのかわかり、
より明確なカタログにブラッシュアップされていきます。
同時に自分自身にも同じ視点が養われていくので
初めから問題の根っこを掴んで、それをどう解決するかが
高い精度で描けるようになります。
経験則的にはこのスキルを初めから持ってる人って
ほぼいないと思うので、
このスキルを得るためには
人生のどこかのフェイズで
これに似た経験をする必要がある気がします。

そしてMBAに来て、このスキルって超重要だし
希少価値高いなーと思うようになったんですが、
同時に色々なプロダクトに触れる中で
このスキルって結構domain knowledge関係ないよね
と思うようになりました。
多分、一個の分野/製品でこれができるようになったら
どの分野/製品でも同じことが同じレベルでできると思います。

ということで、自分の興味ある分野かどうか関係なく
アイディアからプロダクト作る系の授業をとって
そこでピッチして経験ある人からフィードバックをもらう
というのは結構MBAの人こそやるべきことなのかもなー
とおぼろげに思いました。

実はその辺も含めてUCLAのMBAのテック関連のプログラム強化を
水面下で工作中なのですが、笑
それも何か動きがあったら学校の宣伝がてら書こうと思います。

Spring Quarter -Final Quarter Ever

さて、先週から最終学期である2年生の春学期が始まりました。
今までMBAのアカデミックにはどちらかというと否定的だったのですが、
今学期は2個程非常に楽しみな授業を履修することができました。
今回はその2つの授業を紹介してみます。

Critical Milestones in Preparing for Life of Leadership

UCLA Andersonで一番人気の授業です。Deanが教えてます。
UCLAでは選択授業はbiddingといって
毎学期もらえる1000ポイントの持ち点をそれぞれとりたい授業に賭けて、
賭けた点が高かった順に授業にenrollされていくというシステムなのですが、
この授業は履修できた人の中での最低biddingポイントが2200ポイントでした。
人気の理由は、ゲストスピーカー陣の豪華さにあります。
この授業では毎週ゲストスピーカーが来て、
それぞれの週のトピックについてQ&Aで色々答えてくれるのですが、
まー来る人たちがアツい。笑
テック業界からはツイッターやグーグルのCEOが、
エンタメ業界ではドリームワークスやソニーエンターテイメントのCEOが
他にも誰もが知ってる会社の社長さん達が来て
それぞれの週のトピックについて自身の体験を語ってくれます。
超パーソナルな話や、メディアに出来ない話とかも
惜しげもなく披露してくれるので、授業履修時にNDAにサインを求められます。笑
ボクも「この授業で聞いた内容を授業外で話さない」
というNDAにサインしてるので、
彼らがどんな話をしてくれたかは残念ながらブログに書けませんが、
今日のドリームワークスのCEOの話も、
聞きながら鳥肌が立つくらいすごかったです。
とっても久しぶりにMBAに来て良かったと授業面から思いました。笑
エリックシュミットがどんな話をしてくれるのか、とっても楽しみです!笑

Health Analytics

今学期履修している楽しみな授業の二つ目は
コンピュータサイエンスの大学院の授業、Health Analyticsです。
これは先学期のMachine Learningの教授が教えている
プロジェクトベースの授業で、
中間、期末一切なしの一つのプロジェクトのみで成績が決まるという
非常に男らしい(笑)授業です。
ヘルスケアには今のところ興味のないボクですが、
教授が初回の授業でこの授業をヘルスケアの分野でやる理由を語ってくれました。

この授業の目的は、ヘルスケアの世界にイノベーションを起こすことです。
「ヘルスケア業界のこれまでのイノベーションの変遷とこれから」
のようなレクチャーをしてイノベーションを起こす人材を育てよう
…みたいなかったるいことはしません。
この授業内でイノベーションを起こすことを目的としています。
なので授業の主軸はプロジェクト1本です。

プロジェクト内容は
「未だ存在しない特許取得可能なヘルスケア製品を作ること」で、

  • アナリティクスの要素を含むこと
  • 何かしらのセンサーを使うこと
  • 実際に動く製品を作ってデモをすること

が条件です。

インターネットの世界ではアイディアが考え尽くされていて
未だ存在しない製品のアイディアを考えるのは難しいです。
これが15年、20年前だったら
まだAmazonのようにシンプルなアイディアでも
世界を変えるアイディアになったのですが、
もうそのような簡単にアイディアが生み出せる時代は終わりました。

ヘルスケアの世界では、
今がそのインターネットにおける15年、20年前なのです。
去年のこの授業で生まれたWearSensもアイディア自体は非常に単純です。
アルゴリズムも、そこまで単純ではないながらも
(CS大学院生である)キミ達でも作れるレベルです。
ではなぜそんな単純な製品がこれまで作られてなかったのか?
それは、
ヘルスケアアナリティクスという世界がまだ始まったばかりだからです。
スマートフォン、ウェアラブルを初めとしたモバイルが浸透し始め
今、アクセスできるデータが圧倒的に増えたところで、
ようやく世界はこの膨大なデータを使って何ができるか
考え始めたところなのです。
だからこの授業で、今まで存在しなかった製品を作ることは可能で、
事実これまでこの授業から画期的な製品が多く生まれています。
恐らく今後、より多くのスキルを持った人が機会に気付いて
アイディアを製品化していくので、5年後には
ヘルスケアも今のインターネットのような状態になるでしょう。
今、このタイミングしかないのです。

この授業は簡単じゃないのはもちろんですが、
プロジェクトも”授業用の”プロジェクトではありません。
実際に世界にインパクトを与えるものになるし、
実際に多くの命を救うものになります。
というかそういうプロジェクト以外は承認しません。

なので本気じゃない人はこの授業をとらないでください。
本気の人は、この授業を通して凄い経験ができると思います。

ということで、アツさがどこまで伝わったかわかりませんが、笑
ボクはこういうことをしにMBAに来たつもりだったので、
最後の最後で念願のこういう授業がとれてよかったです。
2回目の授業がすでにアイディアのピッチだったのですが、
教授は
「それは面白くない」
「それは既にある」
「それは技術的に簡単だからダメ」
「それは技術的に無理そう」
とビシバシフィードバックをしてました。
ボクらのチーム含め何個かはその場でプロジェクトの承認を得たのですが
ボクが面白そうと思ったチームのアイディアは、
実現したらホントに多くの人の命を救うことになるものだったので
聞いてるだけでワクワクしてしまいました。
ちなみにこの授業も特許取得を前提としているのでNDAがありました。
授業内で話されたアイディアは授業外で話すことはできません。
特許申請後は話すことが出来ると思うのですが、
それまではこのブログでもシェア出来なそうです。


ということで最終学期にして初めて
イメージしていた通りのMBAライフを送ることができそうなので
ワクワクしているところですが、笑
実際どうなるかは書ける範囲で書いていこうと思いまーす!