スクラムマスダーの日記

アジャイル、スクラムに関連した内容が多めです。

「アジャイルな開発だと、プロダクトの価値から作り始めることが出来た」は結果論だと思う

アジャイル開発が浸透するにつれて、プロダクトの責任者(スクラムの場合、プロダクトオーナー)だけでなく、開発者が「プロダクトの価値とはなにか?」を考えることが多くなってきたと感じています。

そして、プロダクトが成功したといえる場合、「アジャイルな開発だと、プロダクトの価値が高い部分から作り始めることが出来た!」という理解になると思います。
しかし、その考え方は、生存者バイアスだと、私は思っています。
※プロダクトが成功したと言える状況の時点で、素晴らしいことではあります。

なぜ「アジャイルな開発だと、プロダクトの価値から作り始めることが出来た」は結果論なのか、なぜ「アジャイルな開発は、プロダクトの価値の高い順番で開発する」という捉え方があまりよくないのかを記します。

そもそもプロダクトの価値とは?

プロダクトの価値とは、一体何なのでしょうか?
もちろん、それぞれのプロダクトで、様々な指標があると思います。

ただ、一点言えるのが、「そのプロダクトの価値で儲けることができるのか?」ということです。

単にお金を得るだけであれば、様々なやり方があるとは思います。

  • 顧客から対価をもらう
  • 投資家から投資をしてもらう
  • 社長から予算を承認してもらう

などです。

しかし、儲けるということは、基本的に、顧客から対価をもらうに収束すると考えています。

なぜなら、投資や予算の承認を継続するには、顧客から対価をもらうが必須だからです。 投資家は、そのサービスが稼ぐことで株価を増やしたいという目的があります。社長から予算をもらうといっても、そのサービスで売上や利益を見込めないのであれば、事業として畳むでしょう。

アジャイル宣言の背後にある原則にある継続

アジャイル宣言の背後にある原則には、

アジャイル・プロセスは持続可能な開発を促進します。
一定のペースを継続的に維持できるようにしなければなりません。

と記載されています。
持続可能な開発をアジャイルは目指しているわけですが、仕事で実践する限りは、お金が必要なことは明白です。
無給で働く人はいないですし、会社を運営するだけでも色々な税金や経費はかかっているからです。
※個人やコミュニティで開発する上でも、どこかからはお金を引っ張ってくる必要があます(PCでプログラミングするだけでも、PCを買ったり、電気代やネット代を支払っているので、お金は必須。)

プロダクトの価値は市場に出さないと分からない

では、「プロダクトの価値」が儲ける内容であるかは、いつわかるのでしょうか?
結論としては、市場に出して初めて分かると、私は考えています。

もちろん、市場に出す前に、仮説検証で、将来の顧客やユーザーにヒアリングや実際に使ってもらうことは可能です。
しかし、これらの活動はあくまで仮説の確度を高めるために行っており、実際に顧客から対価をもらっていないからです。
※もちろん、プロダクトの成功する確率を上げるために、市場に出す前の仮説検証という行為自体は必要だと、私は考えています。

そのため、アジャイル開発では、プロダクトの価値の高い順番で開発することはなく、あくまで市場に出す順番で開発しているということになります。

プロダクトの価値は変化する

また、プロダクトの価値は常に変化します。それは、市場や顧客のニーズが変化するからです。

今後作る開発内容については、もちろん開発する順番を変更することで、市場や顧客の変化に対応することが可能です。
しかし、すでに開発済みのプロダクトの開発した順番を変更することはできません。

市場に出すまでに、顧客のニーズが変わったり、競合企業の状況によって、顧客が購入した決め手は、開発した順番の1番目や2番目ではなく、10番目であることも十分に想定できます。 1番目に開発した価値より10番目に開発したプロダクトの価値が高いことも十分あるのです。

つまり顧客にとっては開発する順番は関係なく、その中でアジャイル開発で変化に対応するサイクルを回しているかは全く関係ないのです。

プロダクトの価値だけを作っても市場には出せない

プロダクトの価値は、そのプロダクトの本質といえる部分で非常に重要なのですが、それだけを開発してもプロダクトをリリースすることができません。
おそらくログイン・ログアウトといった機能やユーザー登録機能は必要ですし、Webサービスであればインフラを構築する必要があります。
つまり、本質的にプロダクトの価値につながらない内容であっても、リリースするために必要な開発内容があるということです。

アジャイルで開発しようが、ウォーターフォールで開発しようが、市場に出すまでに開発する必要があるものは開発する必要があるのです。

アジャイルな開発な場合、むしろ継続的インテグレーションや継続的デプロイを効果的に運用するために、開発初期段階で、インフラの構築やユニットテストの自動化といったことを行うことが多いです。

プロダクトの価値につながる開発を実施しする前に、上記のような足回りの整備をしてから取り組んだ方がよいと考えています。

おわりに

色々と書きましたが、市場に出さない限りはわからないし、市場に出すことこそが改善のサイクルを回す最大の原動力になるので、改善のサイクルを回して、顧客から対価をもらえるように、アジャイル開発をうまく利用しようということでした。

ただ、「アジャイルな開発だと、プロダクトの価値から作り始めることが出来た」という考えれる状況って素晴らしいと思うんですよね。なんたって、顧客から対価を継続的にもらえているのですから。