私はなぜアジャイル開発がしたいのか
検索エンジンプロダクトを一緒に開発してた同窓会 Advent Calendar 2023 の13日目です。
私はこれまでアジャイル開発の手法の一つであるXP(eXtreme Programming)に取り組んできました。個人的にはXPやスクラムなどの具体的な手法よりも、その背後にあるアジャイルの考え方に魅力を感じています。
でもなぜアジャイル開発をしたいのか、言語化できていなかったので考えてみます。
エンジニアの仕事
そもそもエンジニアはなぜソフトウェアを開発するのでしょうか。それはソフトウェアでユーザーが抱える課題を解決するためです。
そしてそのソフトウェアを開発して、課題を解決するのがエンジニアの仕事です。
ただ、プロダクトをつくるのではなく、ユーザーへの価値をチームのみんなで作り上げる仕事がしたいと思っていました。
アジャイルソフトウェア開発宣言
ユーザーに価値を届けるためには、目まぐるしい市場の変化に対応する必要があります。現代のような経済のグローバル化や技術の発展により、未来の予測が難しくなる状況のことをVUCAの世界/時代と言います。
その時代に柔軟に対応するために、ビジネス側の人と開発者が一緒に話し合いプロダクトを作ったり、動くソフトウェアをリリースして素早く仮説検証を行うことが大事だと私は考えます。
この考え方の根底には、アジャイルソフトウェア開発宣言があります。この宣言は、従来型のソフトウェア開発のやり方とは異なる手法を実践していた17名のソフトウェア開発者が、それぞれの主義や手法についての議論を行い公開されたものです。
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
引用: アジャイルソフトウェア開発宣言より
アジャイル開発の考えを開発プロセスに取り入れることで、ユーザーに届ける価値を最大化したい。これが私がアジャイル開発に取り組みたい理由だと思いました。
そのために出来ることを、いくつか挙げてみます。
ビジネス側の人と開発者が一緒に話し合いプロダクトを作るには
ユーザーストーリーマッピングという書籍をご存知でしょうか。私はこの書籍の中で、ケーキ屋の店員さんとお客さんとのやり取りがとても印象に残っています。
お客さんが店員さんに
紫でさよならアリシアでお願いします
まわりに星も入れられますか?
しかし、結果はこのようになりました。
引用: ユーザーストーリーマッピングより
ソフトウェアの世界は要件がもっと複雑ですが、文字通りの解釈を行うとこのケーキ屋さんのように意図した結果にならないことがあります。
そのためにシステムに対する要件は、ユーザーストーリーを使って共通理解を促します。ユーザーに届ける価値を書き出すのです。そして、ユーザーストーリーは書いて終わりではありません。
ストーリーについて語り、どのように使われるか話し合うことで得られる共通理解に価値があります。より複雑性や不確実性が高い機能であれば、ユーザーストーリーマッピングや実例マッピングを使って、対話をすれば良いのです。
実例マッピングは、ブロッコリーさんの事例から学ぶ実例マッピングのやり方 / Example Mapping - Speaker Deckが参考になります。
動くソフトウェアをリリースし素早く仮説検証するには
素早く仮説検証するには小さくリリースして、ユーザーから早くフィードバックを貰うことが大事です。いくら仮説を社内で議論しても、リリースするまでその機能の価値は分かりません。
そのために機能を開発する際は、MVP(Minimum Viable Product)で考えます。MVPとはプロダクトを提供する上で必要最小限の機能のみをもつ、最もシンプルなプロダクトです。ユーザーストーリーを使うことで、ユーザーへの価値が表現されるため、どこまでをスコープとしてリリースすべきかの見極めが容易になります。
ただし、早くリリースすることを求めてスコープを小さくし過ぎるとユーザーにとって価値のないプロダクトが提供されてしまいます。次の画像は乗り物に乗って移動したいのに、最初にタイヤだけを渡される例です。
そうではなく、機能として移動手段を提供しつつ、小さく軌道修正しながらユーザーの価値を届けます。
つまり、MVPはユーザーに価値があり、利益を生み出せる最小限のものでなければなりません。
画像の引用: ユーザーストーリーマッピングより
最後に
今回は「私はなぜアジャイル開発がしたいのか」について考えました。
アジャイルのプロセスを作業として行うのではなく、なぜアジャイル開発に取り組むのかを考え向き合うことで、価値を体現できると思います。
今後もアジャイルリーダーシップを発揮できるよう努めていきたいです。
アジャイルになることが目標ではないんです。もっとアジャイルになっていくためのやり方を知ることが目標です。アジャイルさは、マインドセットから生まれるものであって、プロセスからではありません。
引用: アジャイルリーダーシップ 変化に適応するアジャイルな組織をつくる
Discussion