2017-08-08

自社プロダクト開発を生き抜く処世術

ベンチャーで自社プロダクト(WEBサービス)を開発する仕事について15年になる。大きく分けて3つのプロダクトを、立ち上げ初期の頃から5年ずつ面倒を見た。どの会社プロダクトも死んでないので、自分がやってきたことはまあ間違ってないと思う。ので、まとめておく。

例えば、自社プロダクトがオーブンだったとしよう。温度を指定すると、庫内をその温度にする機能がすでに正しく備わっているとする。サービス係はこの自社プロダクトのオーブンを使って、最高の料理をする。

事業鳴かず飛ばず調子で動いてはいる。すると営業コンサルが、「日本市場にするなら米を作らねなならない。オーブンに米を炊くためのボタンをつける必要がある。ボタンを押すと、初めチョロチョロ、なかっぱっぱ、と火力を自動コントロールして、赤子泣いても蓋を空けられないようにする、って機能ボタンをつけてくれ」って言ってくる。

俺の実力があれば、そのくらい作れますよ!と言ってしまう人は、ベンチャーで自社プロダクトの開発をしてはいけない。まったく向いていない。やるべきことは、すばやく要件を整理し、ステークホルダー開発者立場でささっと議論を交わし、作るものシンプル機能のみに絞ることだ。あるCTOは、この仕事取締役ではなく「取縮め役」と呼んでいた。

今回の機能について言えば、ご飯を炊くボタンなんて要らない。必要なのは以下だ。

ご飯を炊くボタンをつけてはならない理由が大きく分けて2つある。

まず第一に、目的に特化した複雑な機能は壊れやすい。どんなに優秀なエンジニアでも、複雑な機能よりシンプル機能のほうがバグを混入せずに作れる。人手の少ないベンチャー企業で、品質の悪い自社プロダクトを抱えることは自殺行為だ。バグがほぼ起きない、シンプル構成プロダクトを持つべである

第二に、複雑な機能はその後の開発を阻害する。ベンチャー企業プロダクトは常に進化しなければならない。自社プロダクトを常に進化させるには、自社プロダクトの仕様実装もすべてを熟知している必要がある。しかし、複雑な仕様を持つプロダクトの全仕様理解できるのは、コアエンジニアの2、3名に限られてしまう。一言二言で語れるシンプル仕様を持つプロダクトであれば、社員全員がそのプロダクトの本質理解し、プロダクトの改善をすすめることができる。

ワンタッチボタンをつけずに人力のマニュアルに頼ることは、タスク自動化に逆行しているように感じるかもしれない。しかし、そうではない。タスク自動化するにはタスク固定化されてなければならない。しかし、ベンチャーではタスク進化する。進化できないタスクを抱えてしまったら、それはベンチャー企業としては足かせだ。人力にすることで業務フローを日々進化させ、進化しきって枯れたところで外部APIでも作ってそこから最適化されたすごいフローの「コメを炊く」という機能実装すれば良い。最初から自動化して進化を妨げるべきではない。

ベンチャー企業社員は何でも屋で、なんでもやることが大切だ。が、自社プロダクトはシンプルに保たなければならない。自社プロダクトに何でもやらせはいけない。エンジニアが死守する必要がある。

少なくとも俺はそうやって15年生きてきた。今でもそのやりかたでうまくいっているし、営業サイドと議論しながらプロダクトを作っていくのは楽しい

  • 例えが下手すぎだよ。 「ご飯を炊くボタン」の方がシンプルだし、ユーザーにもわかりやすいんじゃないの?

  • ためになりそうなことが書いてある雰囲気を感じたから読んだんですが・・・、申し訳ないが、雰囲気だけだった。 いやまぁ、そうなんですが、これ、自社開発に携わって1年目くらいの...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん