義人2013-08-30「アジャイル開発を、お客さまに導入してもらうにはどうすればいいですか?」そんな相談を受けることがあります。私はどんな優れた提案も相手にニーズがなければ通らないことを知っています。喉が渇いていない人に水を売ろうとしても売れないのです。そもそも提案する前に、まずはニーズに気付いてもらう必要があります。そのお客さまは、本当にアジャイル開発に対するニーズがあるのでしょうか。私の考えるアジャイル開発の本質は「アジャイル開発では当初に想定した機能を”全部”つくらない」ことだと考えています。アジャイルとウォーターフォールの違いとは)この「全てを作らないことで、変化に対して柔軟に開発していく」というソリューションを求めるニーズがあるのであれば、アジャイル開発のメリットを伝えれば採用されることでしょうし、そういうニーズがなければ、何を言っても受け入れられません。この記事では、私の考えるアジャイル開発が向いているケースと向いていないケースについて考えてみました。「ソフトウェアの完成」を目指すのか?顧客が本当に得たいビジネス価値はなにか?「ビジネスの成長」を目指すのか?まとめあわせてよみたい「ソフトウェアの完成」を目指すのか?アジャイル開発が向いていない状況というのはどういったものでしょうか。それは、要件と納期が確定していて、相談された時点で既に作るべきものが決まっているような場合には、アジャイル開発は向いていません。作るべきものの全体が決まっていて、その内容に変更がないのだとすれば、途中でどんな学びや気付きがあっても、その「作るべきもの」という制約を変えることができないのであれば、「変化に対して柔軟に対応できます」と言ったとしても相手には響きません。求めているものが違うからです。した人たちのニーズは、「ソフトウェアを完成させること」であり、ある一点に向けて開発を終わらせることを目指すプロジェクトだということです。期間を決めてドンと開発してリリースしてしまいたいと考えている人たちのニーズは「絶対に完成してもらうこと」です。このニーズを変えることが出来なければ、アジャイル開発の提案は通じません。すれ違っているからです。したニーズを持っているのは、大きめの会社で役割を限定されてしまった担当者に多いです。「ソフトウェアの完成」という限定した責任を持たされた担当者からの発注になると、そうならざるを得ないのでしょう。それはそうで、その担当者としては「ソフトウェアの完成」がミッションなのですから。いったケースだとアジャイル開発を提案することは難しいでしょう。「ソフトウェアを完成」させることを目指して、果たして企業として本当にそれで良いのでしょうか?顧客が本当に得たいビジネス価値はなにか?ソフトウェアの価値とは一体なんでしょうか。ソフトウェアを持っているだけではビジネス上の価値はありません。「ソフトウェアを作ること」を担当している担当者にとっては価値があるのかもしれませんが、そのソフトウェアを保有する会社全体で考えたとき、完成させただけでは何の価値もありません。ソフトウェア開発にかかるコストを考えたら、キャッシュアウトするだけで、完成しただけではむしろマイナスの状態と言えます。それにも関わらず、ソフトウェア開発に関わる人たちの多くは、作ることで価値があると勘違いしています。この図は、ビジネス経験のある方なら誰でも見たことのある図のはずです。損益分岐点を確認するためのグラフです。かけているコストに対して、売上の数字が超えた時点から利益を出すことが出来ます。その時点を損益分岐点と呼びます。シンプルな考え方です。そのグラフを時間軸で考えたとき、そのもっと以前に、売上があがるタイミングありますが、では一般的にソフトウェアが完成するのはいつでしょうか。その売上開始よりもさらに以前となります。出来ただけでは何の価値もないどころか、マイナスからのスタートなのです。開発ベンダーにしてみると、作ったソフトウェアがお客さまに検収されたら、お金が振り込まれて、自社にしてみるとビジネス価値が産まれたと考えてしまいます。なると、作ることだけが価値だと考えてしまうことになり、なるべく沢山作ろうということになってしまいます。お客さまからすると、沢山つくったところで、価値を生まない間はソフトウェアは負債のようなものなのです。受託開発でなくて、自社サービスの場合であっても同じです。内製のエンジニアがいて、たとえ一生懸命に作ったからといって、それでビジネス価値が産まれていなければ、給料分の働きをしているとは言えないのです。エンジニアは得てして、ビジネス価値よりも、作ることに価値があると思いがちですが、ことビジネスの世界においては、お金の流れはソフトウェアを作ることだけでは何も生み出せてはいないのです。ビジネスの世界とは違うところで生きるエンジニアであれば、そんなことは気にしなくても良いと思いますが、ソフトウェア開発をお金を得る仕事として考えるならば、そのことを理解しておく必要があるのではないでしょうか。ソフトウェアを持つ側の会社全体の視点で見たときに、「ソフトウェアの完成」だけではなんの意味も無いことなのです。「ソフトウェアの完成」を望む担当者がいたとしても、もしその会社の社長であったら、完成だけを求めはしないと思います。「ビジネスの成長」を目指すのか?アジャイル開発では、保守性を高め、様々な変化に対応していくことのためのものであり、長く続けていくことで価値が出てきます。アジャイル開発が向いているのは、作っているものが刻々と変化していくようなソフトウェア開発が向いています。この世は刻々と変わるものなのです。アジャイル開発では「全てを作らないことで、変化に対して柔軟に開発していく」ということのため、ときに、ソフトウェアの機能を作らないという選択肢を取ることさえあります。使わないかもしれない機能を作るコストは、何の価値も生み出していないからです。アジャイル開発に向いているニーズとは、「ソフトウェアの完成」を目指すのではなく、継続的に「ビジネスの成長」を求めることです。ソフトウェアを活用して「ビジネスを成長」させたいと考えたとき、そのソフトウェアが価値を生み出さなければ意味がないため、ただ完成することだけを求めたりはしないはずです。「ビジネスの成長」を望むのであれば、どこか1点で終わりがあるわけではなく、ずっと成長を続けたいと願うはずです。どこかで完成しておしまいということはありません。そこで大事なことは「ビジネスの成長」にあわせて、ソフトウェアが柔軟に共に成長していってくれることです。私たちソニックガーデンの提供する「納品のない受託開発」の場合は、「ビジネスの成長」を望むお客さまに対して、ソフトウェアのエンジニアリングの全てを担当するというサービスを提供させて頂いています。ビジネスに必要なソフトウェアの検討から、設計、実装、そして運用のすべてを担当させて頂くことで、お客さまには「ビジネスの成長」だけに集中して頂いてもらうのです。「ソフトウェアの完成」ではなく、「ビジネスの成長」を望むのであれば、作らないことにも価値があるのです。私たちは月額定額にして、たくさん作ったとしても開発ベンダー側の利益にならないような制約を持つことで、余計な機能は作らないし必要以上にコストもかけないので、お客さまが求めるソフトウェアをもっとも効率よく提供することが出来るのです。本当は作ることも、作らないことも含めて、ソフトウェアの開発なのだと思います。アジャイルとウォーターフォールの違いとはアジャイル開発とは:「アジャイル開発」をエグゼクティブサマリにまとめてみた何をやったらアジャイルなのか?これから更新する記事のお知らせをLINEで受け取りたい方はこちら。プログラマ、仕事は経営者」をモットーに、ソニックガーデンの掲げるビジョン達成のための経営に取り組んでいます。株式会社ソニックガーデンページ上部へ。