ソニックガーデンという会社が納品のない受託開発という変わった開発スタイルで受託開発を行っているらしいです。社長のインタビュー記事が参考になりますっていうか、すごく興味深かったです。
“納品のない受託開発”とは何か?―ソニックガーデン代表 倉貫義人氏が全貌を語り尽くす。│CAREER HACK
[http://careerhack.en-japan.com/report/detail/203:image:large]
プログラマは職人、力なければ淘汰されて然るべき―ソニックガーデン倉貫氏が問う、プログラマの覚悟。│CAREER HACK
[http://careerhack.en-japan.com/report/detail/204:image:large]
納品がないってどういうこと!?
納品のない受託開発には次のような特徴があるようです。
- 開発から運用まですべてを担当する
- 月々定額で引き受ける
- 倒産or事業をやめるまで続く
お客さんにはスタートアップや新規事業が多いらしいですね。そのフェーズの人は作りたいものがはっきりと定まっていることはありません。従来型の見積もり方法である期間と予算を決めるというやり方では必ず破綻します。
これはなるほどと思えるというか、ちょうど僕も個人的に良いやり方ないかなと思っていた所で、まさにそれを解決するための方法なのかなという気がしました。
納品してハイ終わり!のデメリット
ソニックガーデンさんの記事にもありますが、ひとことで言えばリスクが大きすぎることです。
僕の実体験でもあるのですが、見積もりなんて不可能です。ある程度作りたいものが見えているものでも絶対に予期しない変更が入るので、それを見越した見積もりをします。言ってしまえば盛るわけですね。
1ヶ月ぐらいかかりそうだから80万ぐらいで見積だしておこうかな?でもきっと何か起こるだろうし、1.4倍の115万円ぐらいにしとこう
こういう盛り方をします((1.4倍という数字はこの記事を参考にしています。実体験と照らしあわせてもなかなか良い線いってるパラメータですね。時間の見積もりをどうするか? -「仕事が忙しい!」の9割は思い込みだった【2】:PRESIDENT Online - プレジデント)) 。
スタートアップの場合は更に厄介です。作るものの方向性を柔軟に変えるというのはスタートアップの定理みたいなものなので正確な見積もりなんて出せるわけがないんですよね。もはや山勘、あてずっぽう。
そうするともういろいろやばいですよね。
開発側はできるだけやることを減らしたい。減らさずになんでも引き受けていると金銭的にも精神的にもつらくなってきます。プロジェクトにポジティブな意見・提案があっても結局自分に振りかかるので黙るようになります。 発注側は発注側で作りたいものがなかなかつくれないし、開発側が建設的な意見を言わなくなるし、追加の予算もかかるしで結局誰も必要としないものができたり。
インセンティブがない
つまるところどちらにとってもプロジェクトを適切に成長させる動機づけがないんですよね。 開発にとっては仕事を増やしたくないし、発注側にとっては金払うんだからちゃんとやってくれっていうところに意識が行ってしまう。
ほんと、デメリット。先の記事でも誰も幸せにならないとありますが、まさにその通りです。
どんなやり方なんだろう?
理屈はわかりましたがどんな風に働くか全然想像できなかったのでさらに記事を読み進めて具体的な働き方を見てみます。
やること
- 「価値に見合うパフォーマンスを出すために全力で働くこと」
- 「お客さまのビジネス価値に繋がらないことには意見すること」
- 「お客さまには出来ることと出来ないことを正直に話すこと」
やらないこと
- 「納品や提供のためのドキュメントは作らないこと」
- 「お客さまの会社にプログラマは訪問しないこと」
- 「見積もりと調整のための営業担当がいないこと」
- 「納期を絶対に死守するという約束はできないこと」
ビジネスの価値にならないことは意見する、これすごい。要はそんなの無駄ですよやめましょうって言うわけですよね。これが従来型の開発だと「いやいや、仕事増やしたくないから言ってんじゃないの?」と思われてしまう。それが言えるようになるわけですね。逆にもっとこうしたほうがいいと思うと言ってもいいわけです。予算が決まっているわけではないので期間が伸びるのさえ了承してもらえばOKでしょう。
「ドキュメントを作らない」「訪問しない」「納期は守るとは言えません」、このへんもすごいですね。これで納得しくれるお客さんがいるというのだから驚きました。価値を評価してくれているからなんですかね。
真似できる?
ソニックガーデンさんのやり方はまさに理想的です。このやり方ができるのであれば僕としては同じやり方でやっていきたいと思います。ですが、果たしてそんなにうまくいくんでしょうか。僕が疑問に思った点と、どのように対応しているのかを想像してみようと思います。
どうやって週の半分で納得してもらうのか
ソニックガーデンさんでは月々定額でのビジネスをされているようですが、個々のエンジニアは受託開発と自社ビジネスで半々の時間配分で仕事をしているようです。これでどちらの仕事もうまく回っているというので驚きです。
まず納品のない受託開発のほうですが、お客さんはスピードを重視していると思うんです。なんせスタートアップだから。なので、できる限りのスピードで進めて欲しいという要望は必ずあると思います。仮に技術力が高くて週の半分で並のエンジニアが週5日で働いた分のパフォーマンスを出せるとしても、それだったらそのパフォーマンスでがっつりやってくれればもっとスピードアップできるでしょ、と僕だったら思ってしまいます。
ソニックガーデンさんではトライアル期間を設けているようですね。これは依頼側にとってはいいですよね。おそらくトライアルの期間で「普通のエンジニア探すのも大変なのにこの値段でこれだけやってくれるなら」と思ってもらうことができているんでしょう。
週半分で並以上のパフォーマンスを出してくれる目の前のエンジニアに依頼するか、フルコミットでそこそこの成果は出せるけどまだ見ぬエンジニア。これだったら前者でもいいかなと思いそうです。
それでもフルで手伝って欲しいと言われたらきっと断るんでしょうね。全ての依頼を受けきれていないということらしいから、ポリシーに反してたらお断りすればいいだけですしね。
とはいえそんなにパフォーマンス出せるの?
開発の仕事の中でも、経験があればさくっと終わる部分とそうでない部分とがあると僕は思っています。システムの構成やデータベースを設計することは経験の有無により大きな差がでるでしょう。経験豊富の人のほうが勘所がわかっていたりするので。ところがその大まかな方針に基いて作っていくこと、画面レイアウトを決めたりすることは経験によって差はあれど、ある程度時間がかかるはずです。というか、この部分はどうしても時間食う部分ではないかと。 エンジニアのいないスタートアップからの依頼であればそういう雑多で細かい部分も含むのではないかと想像できますので、そういった範疇の仕事もありそうです。
この点はすごく難しいです。細かい部分の開発は技術力が高くても生産性が何倍もに開くものではないと思っていましたので。でも何かしら秘密があるんじゃないかと思います。
- 過去の資産を再利用しやすいように整備している
- 手戻りが少ないようにテストファーストで効率UP
てか、秘密でもなんでもなくただの正攻法でした。そういった正攻法の積み重ねがパフォーマンスに繋がっているのかもしれません。
プログラマを一生の仕事にする
ソニックガーデンさんの掲げるこのビジョンはいいですね。よくある35歳定年説は日本式の開発様式が産んだものでしょうし、従来型の受託開発が減っていけば変わっていくのでしょう。プログラマの報酬が不適切に低い状況も改善できれば本当に一生の仕事にできるものになるかもしれません。
それっていいですよねー。