アジャイル開発の主導者が、プロジェクト発足時にやるべきこと
ウォーターフォールの歴史
プロダクト開発におけるウォーターフォールの歴史。それを遡ると、1970年にウィンストン・W・ロイスが発表した論文「Managing the Development of Large Software Systems」から始まる。
この論文で、彼は、開発の流れを段階的に進める取り組みについて論じ、それが「ウォーターフォール」として広く知られるようになった。僕が興味深いのは、彼自身がこのウォーターフォールを推奨していたわけではないということ。このモデルの限界やリスク、それが含まれていることを強調している点だ。
ウォーターフォールは、プロダクト開発を指揮するディレクターなら、誰しも聞いたことがあり、馴染み深いものだろう。
顧客からの要求を整理し、要件を定め、設計、実装、テスト、受け入れと進む。さらりと書くとこのようなものだが、「要求整理」と「要件定義」という初期段階の計画がとても重要になってくる。
例えば、初手で致命的なミスや取りこぼしがあった場合、細かな変更やフィードバックに対して柔軟に対応できない。それは、現代の複雑かつ変化に富むプロジェクトには適さないことが多くなり、より適応力のあるアジャイルが注目されるようになってきた。
ウォーターフォールからアジャイルへ
最近、弊社で対応する案件の様相も変わりつつあり、特にアジャイルを取り入れたプロダクト開発の相談が多い。プロダクトオーナーといっしょに、サービスの構想段階から一緒に考えてほしいというものもあれば、設計者としてプロダクト全体の構造化と画面設計を担当する場合もある。
そこで、いつかnoteにまとめようと思っていたのだが、アジャイル開発における初期段階の進行方法、特にプロダクトバックログとインセプションデッキの作成について、これらのドキュメントを効果的かつ効率的にまとめる方法を探りたい。
僕は、さまざまな立場でアジャイル開発プロジェクトに関わってきた。そのため、これがウォーターフォールにおけるプロジェクト計画や要件定義と類似した部分を持ちながらも、アジャイルならではの変化に適応するノウハウが詰まっている工程だと感じている。そのあたりを経験の浅い若手ディレクターでもわかるようにまとめたのが本記事になる。
アジャイル開発におけるプロジェクト発足時の進行
アジャイル開発の初期段階では、そのプロジェクトの全体像を構築するための重要なステップがある。その中で、特に僕が重要だと感じるものは、
・プロダクトビジョンの策定
・初期プロダクトバックログの作成
・インセプションデッキの作成
この3つだと考える。これらをアウトプットする工程を「Discovery Phase(発見)」、「Inception Phase(方向付け)」と置いて考えた時、どのような進行で進み、その時に何が大切かを順番に見ていく。
1. Discovery Phase(発見)
アジャイル開発において最初に行われるのが、Discovery Phaseと呼ばれる工程。デザイン思考の価値探索や問いの設計に重なるところが多くあり、それはプロジェクトの全体的な目標とビジョンを明確化するために、プロダクトビジョンを策定していくことにつながる。
プロダクトビジョンの策定
プロダクトビジョンは、プロジェクトが解決すべき問題、提供すべき価値を簡潔に表現したもの。プロジェクトに関わるチーム全員が共通認識を持って取り組むための「旗印」とも言える。このようなドキュメントを成果物として作成支援する場合、弊社では以下のような要素を含めて、後半に記載する各種ツールを使ってドキュメント化している。
これらの項目。僕のこれまでの経験からすると、ウォーターフォールにおけるプロジェクト計画にも記載されることが多いと感じる。いずれの場合でも、最初の段階でプロジェクトの目指すべき方向性を定める役割を果たしていることに違いはない。
ただ、アジャイルにおけるこれらのビジョンは「決して変わらないもの」として存在するのではない。僕の理解だと、状況に応じて調整可能なビジョンとして捉えられるもの。プロジェクトが進行する中で、新たな発見や変化に応じ、このビジョンを微調整、より良い方向へ進められるという点に置いて、若干の相違がある。
初期のプロダクトバックログ
プロダクトビジョンが明確になると、次に行うのが初期のプロダクトバックログの作成だろう。スクラムに代表されるフレームワークを使うと、だいたい耳にする言葉になる。念のため補足しておくと、これはプロダクトに求められる機能や要件のまとまりであり、リストごとに優先順位がつけられた形で管理される。管理者はプロダクトオーナーだ。
例えば、ウォーターフォール開発の要件定義を考えたい。顧客から提供されるRFPをもとに、案件担当のディレクターが、それらに対応する形で細かな要件を文書化、機能要件として管理していく。一方、アジャイル開発におけるプロダクトバックログも、プロダクトに必要な機能をリスト化する点で類似しているが、アジャイルでは常に優先順位を見直し、状況に応じて柔軟な変更を許容する。
2. Inception Phase(方向付け)
前段のDiscoveryフェーズを受け、次のInceptionフェーズでは、今回の取り組みが何を達成し、どのように進行するかの大枠を定めていく。そして、みんなで作るべきものの共通理解を促していくことが大切だ。特に、アジャイル開発においては、初期計画が変更されることが前提とされるため、個々の詳細な計画よりも柔軟に変更に対応できる基盤作りが重視される。
インセプションデッキの作成
インセプションデッキは、プロジェクトの初期段階でチームが共通認識を持つための資料となる。これにより、プロジェクトのビジョン、目標、成功基準、リスクなどが明確になり、チームが一貫した方向で開発を進めるための道筋を示すことができる。
これらの項目を眺めると、まとめるのが億劫だなと感じてしまうかもしれない。でも、アジャイルの場合は、後工程での柔軟な変更も許容していくことが前提であり、ウォーターフォールの詳細なプロジェクト計画書とは質が異なる。インセプションデッキは、とても軽量なドキュメントであることを忘れてはいけない。
インセプションデッキを資料にする目的は、プロジェクトの初期段階でチームが共通認識を持つことにある。そこで、この目的を達成するために軽微にまとめるための雛形を作成したので参考にしてほしい。
これらの成果物をどのように管理するか
以上、見てきたように、アジャイルのプロジェクトでは、プロダクトビジョン、プロダクトバックログ、インセプションデッキなど、あとで柔軟に変更が加えられるドキュメント管理が非常に大切になってくる。
会議の中で、リアルタイムにフィードバックを反映したり、チーム全員が最新の情報にアクセスできる環境が求められるため、それに適したツールを使って管理することが望ましい。(以下は、弊社でも使っているツールとその特徴)
1. Notion
Notionは、アジャイル開発のドキュメント管理に非常に適したツールであり、弊社でもよく使っている。
2. Jira
次にJira。プロジェクトによってはJiraを指定されることも多い。
3. Confluence
Confluenceは、Jiraと同じくAtlassianが提供しているコラボレーションツールで、特にドキュメント管理特化型のもの。
弊社が関わる案件だと、ドキュメント管理として上記3つのツールを使うことが多い。こちらも参考までに。
まとめ
以上、説明してきた通り、アジャイル開発の初期段階では、これらの工程がプロジェクトの成功を左右する重要なプロセスとなっている。そして、ウォーターフォールの計画段階や要件定義に似た側面を持ちながらも、アジャイル特有の柔軟性と反復的な改善が大前提となる。
プロダクトオーナーやディレクターにとってみれば、これらをどのように組み立てるのか?初手としてどのように着手するか?
このあたりが非常に悩ましいところだろう。かくいう僕の本業は、プロダクトオーナーでもディレクターでもない。そのため、近年のプロダクト開発の大きな変更を目の当たりにして感じることがある。
それは、このようなプロジェクトの主導者に抜擢された人は、自身に求められる守備範囲が膨大になっていて、果たして勉強量もこれまでの経験も、両方を兼ね備えた者が世の中にどれだけいるのだろう?という素朴な疑問。
そんなスーパーマンはいないはず。でも世の中的には求められているわけで、そこに風穴を開けるだけの、わかりやすく柔軟な教育プログラムの作成が必要不可欠なのかもしれない。
この記事が気に入ったらサポートをしてみませんか?