「アジャイル開発を、お客さまに導入してもらうにはどうすればいいですか?」

そんな相談を受けることがあります。私はどんな優れた提案も相手にニーズがなければ通らないことを知っています。喉が渇いていない人に水を売ろうとしても売れないのです。そもそも提案する前に、まずはニーズに気付いてもらう必要があります。そして、そのお客さまは、本当にアジャイル開発に対するニーズがあるのでしょうか。

私の考えるアジャイル開発の本質は「アジャイル開発では当初に想定した機能を”全部”つくらない」ことだと考えています。(参考記事:アジャイル開発の本質 〜 アジャイルとウォーターフォールの違いとは

この「全てを作らないことで、変化に対して柔軟に開発していく」というソリューションを求めるニーズがあるのであれば、アジャイル開発のメリットを伝えれば採用されることでしょうし、そういうニーズがなければ、何を言っても受け入れられません。

この記事では、私の考えるアジャイル開発が向いているケースと向いていないケースについて考えてみました。

Shaking  Hands
Shaking Hands / zeevveez

「ソフトウェアの完成」を目指すのか?

アジャイル開発が向いていない状況というのはどういったものでしょうか。それは、要件と納期が確定していて、相談された時点で既に作るべきものが決まっているような場合には、アジャイル開発は向いていません。

作るべきものの全体が決まっていて、その内容に変更がないのだとすれば、途中でどんな学びや気付きがあっても、その「作るべきもの」という制約を変えることができないのであれば、「変化に対して柔軟に対応できます」と言ったとしても相手には響きません。求めているものが違うからです。

そうした人たちのニーズは、「ソフトウェアを完成させること」であり、ある一点に向けて開発を終わらせることを目指すプロジェクトだということです。

期間を決めてドンと開発してリリースしてしまいたいと考えている人たちのニーズは「絶対に完成してもらうこと」です。このニーズを変えることが出来なければ、アジャイル開発の提案は通じません。すれ違っているからです。

こうしたニーズを持っているのは、大きめの会社で役割を限定されてしまった担当者に多いです。「ソフトウェアの完成」という限定した責任を持たされた担当者からの発注になると、そうならざるを得ないのでしょう。それはそうで、その担当者としては「ソフトウェアの完成」がミッションなのですから。

こういったケースだとアジャイル開発を提案することは難しいでしょう。しかし「ソフトウェアを完成」させることを目指して、果たして企業として本当にそれで良いのでしょうか?

顧客が本当に得たいビジネス価値はなにか?

ソフトウェアの価値とは一体なんでしょうか。ソフトウェアを持っているだけではビジネス上の価値はありません。「ソフトウェアを作ること」を担当している担当者にとっては価値があるのかもしれませんが、そのソフトウェアを保有する会社全体で考えたとき、完成させただけでは何の価値もありません。

むしろ、ソフトウェア開発にかかるコストを考えたら、キャッシュアウトするだけで、完成しただけではむしろマイナスの状態と言えます。それにも関わらず、ソフトウェア開発に関わる人たちの多くは、作ることで価値があると勘違いしています。

software_value

この図は、ビジネス経験のある方なら誰でも見たことのある図のはずです。損益分岐点を確認するためのグラフです。かけているコストに対して、売上の数字が超えた時点から利益を出すことが出来ます。その時点を損益分岐点と呼びます。とてもシンプルな考え方です。

そのグラフを時間軸で考えたとき、そのもっと以前に、売上があがるタイミングありますが、では一般的にソフトウェアが完成するのはいつでしょうか。その売上開始よりもさらに以前となります。つまり、出来ただけでは何の価値もないどころか、マイナスからのスタートなのです。

しかし、開発ベンダーにしてみると、作ったソフトウェアがお客さまに検収されたら、お金が振り込まれて、自社にしてみるとビジネス価値が産まれたと考えてしまいます。そうなると、作ることだけが価値だと考えてしまうことになり、なるべく沢山作ろうということになってしまいます。しかし、お客さまからすると、沢山つくったところで、価値を生まない間はソフトウェアは負債のようなものなのです。

受託開発でなくて、自社サービスの場合であっても同じです。内製のエンジニアがいて、たとえ一生懸命に作ったからといって、それでビジネス価値が産まれていなければ、給料分の働きをしているとは言えないのです。

エンジニアは得てして、ビジネス価値よりも、作ることに価値があると思いがちですが、ことビジネスの世界においては、お金の流れはソフトウェアを作ることだけでは何も生み出せてはいないのです。ビジネスの世界とは違うところで生きるエンジニアであれば、そんなことは気にしなくても良いと思いますが、ソフトウェア開発をお金を得る仕事として考えるならば、そのことを理解しておく必要があるのではないでしょうか。

つまり、ソフトウェアを持つ側の会社全体の視点で見たときに、「ソフトウェアの完成」だけではなんの意味も無いことなのです。たとえ「ソフトウェアの完成」を望む担当者がいたとしても、もしその会社の社長であったら、完成だけを求めはしないと思います。

「ビジネスの成長」を目指すのか?

アジャイル開発では、保守性を高め、様々な変化に対応していくことのためのものであり、長く続けていくことで価値が出てきます。アジャイル開発が向いているのは、作っているものが刻々と変化していくようなソフトウェア開発が向いています。そして、この世は刻々と変わるものなのです。

アジャイル開発では「全てを作らないことで、変化に対して柔軟に開発していく」ということのため、ときに、ソフトウェアの機能を作らないという選択肢を取ることさえあります。使わないかもしれない機能を作るコストは、何の価値も生み出していないからです。

アジャイル開発に向いているニーズとは、「ソフトウェアの完成」を目指すのではなく、継続的に「ビジネスの成長」を求めることです。ソフトウェアを活用して「ビジネスを成長」させたいと考えたとき、そのソフトウェアが価値を生み出さなければ意味がないため、ただ完成することだけを求めたりはしないはずです。

「ビジネスの成長」を望むのであれば、どこか1点で終わりがあるわけではなく、ずっと成長を続けたいと願うはずです。どこかで完成しておしまいということはありません。そこで大事なことは「ビジネスの成長」にあわせて、ソフトウェアが柔軟に共に成長していってくれることです。

たとえば、私たちソニックガーデンの提供する「納品のない受託開発」の場合は、「ビジネスの成長」を望むお客さまに対して、ソフトウェアのエンジニアリングの全てを担当するというサービスを提供させて頂いています。ビジネスに必要なソフトウェアの検討から、設計、実装、そして運用のすべてを担当させて頂くことで、お客さまには「ビジネスの成長」だけに集中して頂いてもらうのです。

「ソフトウェアの完成」ではなく、「ビジネスの成長」を望むのであれば、作らないことにも価値があるのです。私たちは月額定額にして、たくさん作ったとしても開発ベンダー側の利益にならないような制約を持つことで、余計な機能は作らないし必要以上にコストもかけないので、お客さまが求めるソフトウェアをもっとも効率よく提供することが出来るのです。

本当は作ることも、作らないことも含めて、ソフトウェアの開発なのだと思います。

まとめ

・提案する前に、相手のニーズを変えてしまわなければ、何を言っても通らない
・アジャイル開発に向かないのは「ソフトウェアの完成」を目指すプロジェクト
・アジャイル開発が向いているのは「ビジネスの成長」を目指すプロジェクト