give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

アジャイルサムライとは大きく異なるソニックガーデンの見積りと計画作り

はじめに

アジャイル開発に興味を持っている人に取っては「まだ読んでなかったの?」といった感じかもしれませんが、先日書籍「アジャイルサムライ」を借りたので、ざっくりと読んでみました。
今回のエントリは読んでみた感想に加えて、ソニックガーデンでの開発スタイルとの比較をしてみたいと思います。


アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

  • 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未
  • 出版社/メーカー: オーム社
  • 発売日: 2011/07/16
  • メディア: 単行本(ソフトカバー)
  • 購入: 42人 クリック: 1,991回
  • この商品を含むブログ (257件) を見る


とりあえず最初から読んでみた

1章の内容はアジャイル開発の基礎知識が中心で、読みながら「うん、まあそうだよねえ」と思いました。
14ページの挿絵にある「やり方がたった1つなんてことはないんだ!」「君自身が編み出したやり方!」っていうフレーズを見て、ソニックガーデンは正にここだよなあと感じました。
ソニックガーデンがアジャイル原理主義ではないことは、以前のブログにも書いた通りです。


2〜4章のチームの意識合わせに関する内容は、ソニックガーデンの規模だとここまであれこれ準備することもないかな〜という感想です。
というのも、基本的に開発を進めていくのはプロダクトオーナー(=お客さん)とメインプログラマの2人だからです。


ピンチヒッターとしてのサポートプログラマや倉貫さん(=社長)、藤原さん(=副社長)も重要なステークホルダーにはなりますが、開発が軌道に乗った後はプロダクトオーナーとメインプログラマ間のコミュニケーションが開発のカナメになります。
なので、開発チーム内でしっかり意識合わせをしよう!という大掛かりな取り組みはあまり必要になりません。


途中から感じ始めた違和感と「納品しない受託開発」が解決した悩み

さて、読みながら「んんん?????」と感じだしたのが、5章〜8章のあたりです。
ここに書かれているのはいわゆる「要件定義、見積り、開発計画」にあたる部分です。
ソニックガーデンに入る前にこの本を読んでいたら、僕も「ふむふむ、なるほど!」と普通に納得していたと思いますが、ソニックガーデンの開発スタイルを知ってしまった今ではかなり違和感を感じました。


アジャイル開発といえども、結局プロジェクトが始まる前はある程度「要件(ここではユーザーストーリー)を集めて、見積りをして、開発期間を決めよう」とするわけですね。ウォーターフォールほどガチガチではないにせよ。


確かに従来型の受託開発なら当然です。
お客さんは「これぐらいのシステムを(=スコープ)、いつまでに(=時間)、これぐらいの金額で(=予算)、作ってほしい」と思いますし、我々開発者側も見積りをしないと、プロジェクトが赤字になるか、黒字になるかを予測できません。


アジャイル開発はウォーターフォールよりも楽しそうと思っても、やはりこの見積りやスケジュールの問題は結構頭が痛いです。
ソニックガーデンに入る前は僕だって「見積りとスケジュールを立てることだけに関して言えば、ウォーターフォールの方がシンプルでお客さんにも説明しやすいよなあ」と思ってたぐらいですから。


ソニックガーデンに入って、一番良かったことの一つはこの悩みから解放されたことです。
ソニックガーデンでは「月額定額の納品しない受託開発」を実践しています。
毎月定額なので、開発者は赤字に陥るリスクにおびえながら(たっぷりとバッファを積んだ)見積りをする必要はありません。


また、プロジェクトの納期もないので、締め切りに追われて毎日終電、ほぼ毎週土日出勤といった切ない問題も発生しません。
ソニックガーデンでは原則として、「絶対にx月x日までに、これだけの機能を完成してほしい」というリクエストはNGになっています。
スコープや期日に関するリクエストに対しては確約ではなく、ベストエフォートで対応するようになっています。


・・・さて。


ここで終わってしまうと、開発者から見れば「ソニックガーデンすげー!開発者のパラダイスじゃん!!」だし、お客さんから見たら「スコープや期日を確約しないとは、殿様商売も甚だしいっ!」と思われそうですよね。


いえいえ、そうじゃないんですよ、という話もしておかなければなりません。


サービス業としてのソフトウェア開発で開発者に求められるもの

ソニックガーデンではソフトウェア開発を製造業ではなく、サービス業だと定義しています。
製造業は形のあるモノを売って、そのモノに満足してもらう仕事です。
サービス業はサービスという形のないものを売って、お客様に満足してもらう仕事です。


ソニックガーデンの場合、毎月いただいている金額に見合うような成果(=ソフトウェア)を提供することが会社の価値になります。
つまり、開発者はお客さんに「1ヶ月でこんなに作れるの!?これなら納得!」と思われるぐらいの開発スピードを要求されるわけです。


ちなみに、厳密に言うと開発期間の単位は1ヶ月ではなく、1週間です。
毎週お客さんと打ち合わせをして、「来週までにここまで作ります」とお約束をして、次の打ち合わせまでにその機能を実装します。


もちろん前述の通り、これは確約ではなくベストエフォートなのですが、毎週のように「やっぱり無理でした、てへっ」みたいなことをやってたら、お客様の満足度がどうなるかは・・・言わなくてもわかりますよね。


製造業でなくてサービス業なので、ポイントはお客様に満足してもらえるか否かです。
そしてそのためにはお客様に信頼される開発者にならなければいけません。
「あれだけ払ってるのに、毎月これだけしか出てこないなんて、なんかボッたくられてる気がするわ〜」という不信感を抱かれたら終わりなわけです。


というわけで、見積りやスケジュールの悩みから解放された代わりに、開発者にのしかかってくるのはお客様に満足してもらえるだけの開発スピードの維持、ということになります。
まあ、そこも熟練してスキルが上がれば上がるほど、悩みは小さくなっていくわけですけどね。


求められるものはスピード以外にもまだまだある

今回は文脈上、開発のスピードにフォーカスしましたが、開発者に求められるのは何もスピードだけではありません。
製造業ではないといっても、システムを作っていることは間違いないので、システムの品質も当然重要です。
また、システム開発の専門家としてお客様の要求をよりよいものにするための提案力も必要になります。
本番稼働が始まれば、システムを正常に稼働させつづける運用スキルも求められます。


このあたりは採用情報のページに載っているプログラマの定義そのものだと言えます。

SonicGardenにおけるプログラマの仕事は、ただ決まった設計書の通りにプログラムを作ることではありません。SonicGardenでプログラマは、顧客であるプロダクトオーナーと直接対話をして要件を引き出し、専門家として画面設計、データ設計、プロセス設計を行い、それを、ソースコードという形で表現します。さらに作るだけでなく、インフラを整備し、ユーザが利用する本番環境の運用までプログラマが行います。SonicGardenでは、そこまで出来てプログラマと呼んでいます。

募集と採用について - SonicGarden 株式会社ソニックガーデン

 

まとめ

僕がアジャイルサムライの5章〜8章のあたりを読んで違和感を感じた理由が少しは伝わったでしょうか?


案件が始まる前にはもちろんある程度のビッグピクチャーは描きますが、あれもこれもストーリーとしてかき集めることはしません。
むしろ、必要最小限の機能(=MVP/Minimum Viable Product)だけに注力できるように、細かい要求は削ぎ落としていきます。


見積りやスケジュールも決めますが、見積りはお金のための見積りではなく、純粋に作業工数を考えるためだけの見積りであり、スケジュールを立てるのはわずか一週間先までです。


アジャイルサムライの見積りや計画作りの話が今の僕にとってしっくりこなかったのは、こんなところに理由があったわけです。

2014.06.15追記: 「納品のない受託開発」の解説本が発売されました

ソニックガーデン社長の倉貫が「納品のない受託開発」を詳しく解説した本を書き下ろしました。
この本を読んでもらうと、このエントリで言おうとしたことがさらによくわかるはずです。

「納品」をなくせばうまくいく

「納品」をなくせばうまくいく


あわせて読みたい

ソニックガーデンに入社して変わった3つの印象 - give IT a try
今回のテーマに結構近い内容が載っているエントリです。


オフェンシブな開発〜「納品しない受託開発」にみるソフトウェア受託開発の未来 | Social Change!
納品しない受託開発や月額定額といったビジネスモデルについてはこのブログに詳しく載っています。


P.S.

あ、ここまで読んでくれたそこのあなた!
良かったら画面右下のMessageLeafから何か感想を送ってもらえると嬉しいです♪
(MessageLeafはPCモードでしか表示されません。スマホユーザーの方はごめんなさい。)