🥷

精読「アジャイルサムライ」(第二部  アジャイルな方向づけ)

に公開


アジャイルサムライ――達人開発者への道
アジャイル開発を実践するための具体的な方法論と心構えを学べる一冊です。チームで成果を出す秘訣や、迅速かつ柔軟に価値を届けるためのツールや考え方をわかりやすく解説。初心者から経験者まで、アジャイルの本質を知りたいすべての人におすすめのガイドブックです!

関連記事

みんなをバスに乗せる

プロジェクトに対する期待をマネジメントするためのツールであるインセプションデッキを紹介する

インセプションデッキを活用すれば、プロジェクトというバスに然るべき人が乗っているか、バスが叱る駅方向を向いているかを確認できるようになる

ボンネットバスのイラストより

プロジェクトがだめになるのはなぜか

関係者全員でプロジェクトについて話し合うよりも前にプロジェクトを始めてしまうから

手ごわい質問をする

プロジェクト初期の段階で手ごわい質問をすることで、手遅れを回避することができる。それを手助けするツールがインセプションデッキだ。

インセプションデッキのご紹介

インセプションデッキは10の手ごわい質問と課題から構成されていて、いずれの課題もプロジェクトを開始する前に聞いておかないとまずい質問ばかり


【導入必須】スクラム開発におけるインセプションデッキの作成方法・具体例より

インセプションデッキの仕組み

プロジェクトに関わる全てのステークホルダーが集まり、適切な質問を通じてプロジェクトの目的や期待を共有し、認識を合わせるための生きた成果物であり、必要に応じて改訂しながら活用すべきもの

インセプションデッキの課題一覧

  1. 我われはなぜここにいるのか?:プロジェクトの目的や背景、顧客を再確認する。
  2. エレベーターピッチを作る:プロジェクトを短時間で効果的に説明する内容を考える。
  3. パッケージデザインを作る:プロダクトの魅力を伝える広告イメージを考案する。
  4. やらないことリストを作る:優先度外の取り組まない事項を明確にする。
  5. 「ご近所さん」を探せ:関連ステークホルダーを特定し関係を築く。
  6. 解決案を描く:概要レベルでのアーキテクチャ設計を共有する。
  7. 夜も眠れなくなるような問題は何だろう?:最悪の事態を想定し、それに対する対策を議論する。
  8. 期間を見極める:プロジェクトの必要期間を見積もる。
  9. 何を諦めるのかをはっきりさせる:スコープ、期間、予算、品質などの優先順位を決める。
  10. 何がどれだけ必要なのか:必要な期間、コスト、チームの規模を見積もる。

全体像を捉える

プロジェクトの背後にある「なぜ」を明らかにするための5つの質問と課題

我々はなぜここにいるのか?

なぜ」を理解することで、以下のような効果が得られる

  • 的確な判断を下せるようになる。
  • 対立やトレードオフのバランスをうまく保てる。
  • 自ら考え、斬新な解決案を生み出せる。

そのために、「司令官の意図」の把握が重要。プロジェクトの目標や目的を簡潔に表現する「司令官の意図」は、チームが自律的に判断する際の指針となる。

エレベーターピッチを作る

短時間でアイデアやプロジェクトの本質を簡潔に伝える方法。由来は、エレベーターで同乗した短い時間にプレゼンする状況からきている。

主な効能は以下の通り

  • 明快になる:顧客や目的に焦点を当て、曖昧さを排除。
  • チームの意識を顧客に向ける:顧客が価値を感じるポイントを明確にする。
  • 核心を捉える:プロジェクトの重要事項を浮き彫りにし、優先順位を定める。

パッケージデザインを作る

プロダクトの価値を明確にするために、自分たちのソフトウェアが「スーパーマーケットに並ぶ商品」だと仮定して、そのパッケージをデザインする方法が有効。

以下の3ステップで進める

  1. 効能のブレインストーミング:顧客が得られるメリットを洗い出し、トップ3を選ぶ。
  2. キャッチコピーの作成:魅力的で簡潔なキャッチコピーをチームで考案する。
  3. パッケージデザイン:メリットとキャッチコピーを盛り込んだパッケージを創作。

やらないことリストを作る

「やらないことリスト」を作ることで、プロジェクトのスコープ内外を明確化し、チームが重要なタスクに集中できるようになる。

作成時には以下を意識する

  • やる:スコープ内で取り組むべき項目をリスト化する。例:検索機能、簡易帳票、印刷機能など。

  • やらない:スコープ外とする項目を明示する。例:既存システムとの連携やオフライン利用など。

  • あとで決める:現時点で決定できない項目を記載する。例:物流追跡システムとの統合。

このリストは視覚的にプロジェクトの範囲を示し、チームと顧客の間で期待を調整するのに役立つ。

「ご近所さん」を探せ

プロジェクト成功のためには関係者との早期の信頼構築と、積極的な関与を引き出すことが重要。

具現化させる

具体的な解決案と、どこからどこまでをプロジェクトの陣地とするかを決める方法を紹介する

解決案を描く

解決案を可視化することで、技術的課題が明確になり、リスクを事前に把握できる。進め方は、アーキテクチャを図で示し、リスクを特定し、全員の同意を得ることです。

夜も寝れなくなるような問題は何だろう?

プロジェクトのリスクについて早期に話し合うことが重要。リスクを無視せず、チームで共有して解決策を考えることで、問題が現実化する前に対処できる
リスク管理の一環として、可能性が低いが対処できるリスクに焦点を当て、早期に対策を講じることが大切。

期間を見極める

プロジェクトの期間を見極める際、精密な予測は難しいが、大まかな計画を立ててステークホルダーに伝える必要がある。期間は6ヶ月以内が理想とされ、長期のプロジェクトはリスクが高い。
計画を提案する際、期日を固定するか、機能に重点を置いて柔軟性を持たせるかの選択肢がある。重要なのは、計画があくまで予測であり、検証が必要であることを理解すること。

何を諦めるのかをはっきりさせる

プロジェクトには、時間予算品質スコープという4つの重要な要素(荒ぶる四天王)があり、それぞれがプロジェクトに影響を与え、対立しがち。
アジャイル開発では、これらの要素を適切に管理し、バランスを取ることが求められる。

  • 時間、予算、品質は固定とし、スコープだけを柔軟に扱うことが基本
    これにより、スコープを削減して対応することができます。時間や予算が厳しい場合、必要に応じてやるべきことを減らし、計画を調整します。

  • トレードオフ・スライダー
    トレードオフ・スライダーというツールを使って、顧客とともにプロジェクトの優先事項を調整し、時間、予算、品質、スコープのバランスを確認する。

  • 捉えどころのないもの
    捉えどころのないものもプロジェクトに大きな影響を与えるため、これらの要素も考慮し、顧客と共有して理解を深めることが大切。

最終的には、これらを管理しながらプロジェクトの計画を立て、スポンサーに必要なリソースや調整を説明する。

何がどれだけ必要なのか

この文章は、アジャイルプロジェクトにおける計画立案の最終段階について説明しています。

  • 必要なチームの編成
    プロジェクト達成に必要な役割とその期待スキルを明確化する

例)

役割 スキル/期待されること
UXデザイナー プロトタイピング、HTML/CSS、ワイヤーフレームやモックアップ、画面フローの作成
プロジェクトマネージャ 不確実性に対応、指示型でないマネジメント
開発者 C#、TDD、ASP.NET、MVCアーキテクチャ、ユニットテスト、リファクタリング、継続的インテグレーションの実務経験
アナリスト ストーリーカードを用いた開発支援、必要な分析を必要なときに実施
顧客 チームと定期的にコミュニケーション、プロジェクト方向性を決定、決断を下す権限と時間の確保
テスター テスト自動化の実務経験、探索的テスト、開発者や顧客との協調
  • 顧客の重要性と役割

    • 顧客がプロジェクトの「運転手」として責任を持つことが重要
    • 必要な決定を下す権限と時間を確保することが求められる
    • 最終決定権者(バスの運転手)を明確化することで混乱を防ぐ
  • コストの見積もり

    • チームメンバーの人数に期間や時間単価を掛けて、概算の予算を算出する
    • ソフトウェア費用や特殊な会計項目も考慮する必要がある
    • 最もコストがかかるのは人件費
  • 最終スライドの作成

    • ステークホルダーが知りたいのは「いつ完了するのか」「いくらかかるのか」という点
    • 現段階では数値に完全な確信は持てないが、仮の見積もりを提示する
    • スライドの例として「最初のリリース」のタイムラインが挙げられている

参考


https://agilemanifesto.org/iso/ja/principles.html
https://do-scrum.com/inception-deck/
https://github.com/agile-samurai-ja/support/blob/master/blank-inception-deck/blank-inception-deck1-ja.pdf

Discussion