コンテンツにスキップ

アジャイルプロジェクトマネジメント

アジャイル開発とは

対比して語られる開発手法 - ウォーターフォール手法 - アジャイル

アジャイル手法は、対象を小さな機能に分割(イテレーション or スプリント)して開発する
成果物を短期間で完成させ、機能を少しずつ拡張させていく

成功するアジャイルプロジェクトとは

  • スプリントが4~12週間
  • 対面でのコミュニケーションに重点を置く
  • 業務部門と技術部門が緊密に連携している
  • アジャイルを全面的に支持するスポンサーの存在
  • ニーズの変化を先読みして取り入れる

アジャイルプロジェクトの成功に必要な条件

  • (目的)ゴールへのビジョン
  • 基本的なプロジェクトのライフサイクルに従う
  • 要件の理解
  • スケジュールの共有・管理
  • 専任チームが作業に専念できること
  • 関係者全員が緊密にコミュニケーションできること

アジャイルのフェーズ

[構想]→[思索]→[探索]→[適応]→[思索]に戻るを繰り返す
最後に[集結]を実施

構想

プロジェクト憲章を作成する - 開発するものを顧客と決める - チームに必要な人材、価値観・規範を確認 - プロジェクトのスコープ、目標、関係者を定める - チームのコラボレーションツールのセットアップ

プロダクトのビジョン(概要の記載)、ターゲットの顧客、メリット、プロジェクトの目的
プロジェクトのスポンサーとマネージャーの責任・権限を明記
チームの規範の例(1日8時間、〇日間作業、〇曜日に休日をとる、毎日〇時にミーティングを行う等)

思索フェーズ

計画を立てるフェーズ - フィーチャー単位の提供計画(分類、優先順位付け) - 見積り - リスク

スプリントの要件、要件に基づいて開発するフィーチャーの一覧を作成
開発するフィーチャーの作業量を見積り、リスクを特定・更新(新規、未処理、未完成のフィーチャー)

※ フィーチャーとは - 特定のビジネスニーズに絞った機能 - 顧客によって重要な小さな業務を行為と結果で表したもの

  • イテレーション
  • マイルストーン
  • リリース計画

探索フェーズ

  • フィーチャーの実装
  • 毎日のスタンドアップミーティング(15~30分程度)
  • 内部でフィーチャーをレビュー

スタンドアップミーティングでは、前日の成果・今日の予定・必要なサポート等を共有
フィーチャーを課題登録簿で管理

適応フェーズ

フィーチャーを開発したら、イテレーションの終わりに振り返りを行う - 顧客によるフィーチャーのレビュー - チームによる振り返りのミーティング・記録(成果と計画を比較し、良かった点・悪かった点等を話し合う) - 前回の適応フェーズの教訓と同じ傾向が見られないかを確認 - 問題解決のためのブレインストーミングを行う

これによって、頻繁にフィードバックが得られる(アジャイルの利点)
適応によって得られた教訓を共有、次のスプリントの計画を見直して調整する

終結フェーズ

  • 成果物が完成
  • 学んだ教訓が記録されていることを確認
  • 人員を他のプロジェクトや業務に割り当てる
  • プロジェクト全体の成果を伝える
  • 開発したフィーチャーが業務で成果を上げているかを監視

PDS(プロダクトデータシート)

  • 計画書、プロジェクトの概要をまとめたもの
  • 構想フェーズで作成される

制約の種類

  • 環境
  • 安全
  • 経済
  • 技術
  • 政治
  • スケジュール
  • チームまたは開発するプロダクト

スプリント計画

スプリントの期間と開発するフィーチャー数を決定する
スプリントの期間を短くして焦点を絞るのが効率的

フィーチャーの分類基準 - 業務部門における優先順位 - 対応可能な技術者 - 利用可能な資源 - 事業分野

リスク管理

最初のスプリントはフィーチャーの難易度を下げて、後のスプリントで徐々に上げていく
アジャイル開発に慣れた段階で、難易度の高いフィーチャーに着手

思索:アジャイルプロジェクトの進め方

要件定義

  • ビジネス部門が開発部門に先行してアジャイルで要件を定義する
  • 新しいフィーチャーを定義(ユースケース、パフォーマンス要件カード等を活用)
  • ニーズの変化に伴い不要になった既存のフィーチャーを特定

スタンドアップミーティング

  • 重要な情報の共有
  • 15分程度、毎日同じ時刻
  • 立ったまま行うことで頭が冴え、楽観的でアクティブな状態を維持
  • プロジェクトマネージャーは会議の進行役はせず、メンバーにタイムキーパーを割り当てる
  • 必ず前向きな雰囲気で終わらせる(成功体験を共有する等)

ベロシティで生産率を把握する

ベロシティとは - 平均的なスプリントでチームが完了する機能の数 - ベロシティが低下している場合、その原因を調査する

探索:開発プロセスを管理する

プロジェクトマネージャーの役割

チームがプロダクトの開発に専念できるような動き - 観察して相談に乗る - コントロールするのではなく、コーチングで導く - 障害を取り除く - スタンドアップミーティングでしっかりと耳を傾ける - フォローアップを行う

問題とリスク管理

互いに信頼を築き、問題が発生したときに誠実に話し合える場を建設する - 人ではなく、問題を非難する - 対立に真正面から取り組む - 事実ベースで伝える - 賛否両方のシナリオを示す

決定を行う必要がある場合 - 明確にする - 根拠を示す - 支援を要請する

適応・終結:納品前に微調整する

スプリントで学んだ教訓を確認する

適応フェーズを待たずにフィードバックが得られるように、いつでもメンバー間で感じた点をメモできる場を設ける
問題を解決できずとも、フィードバックを書き留めるだけでOK

変化するビジネスニーズに対応する

優先順位が低いとされていても、後で開発すると開発効率が悪くなる(コストアップする)場合、業務部門に相談して判断を促す

フィーチャーの再構築 - 計画が必要、変更があれば見直す - 新しい順序があれば確認する(必須な機能を先行して開発する等) - 正確な見積りを可能にする

振り返りとは

プロジェクト(またはスプリント)の教訓を文書化すること

終結フェーズ - フィーチャーを全て実装した - 時間が残っていない - 資金が残っていない

プロジェクトを終結する場合の検討事項 - バックログリストの見直し - 未処理リストから残りのフィーチャーの重要性を判断 - 新しいフィーチャーが必要かどうかを考える

アジャイルのヒント・コツ

トラブルシューティング

トラブルの兆候 - 未処理のフィーチャー - 優先度の低いフィーチャーの開発 - 不適切なフィーチャー - 修正が必要なフィーチャー - その他(チームの出席率、プロジェクトバッファを使い切っている)

スノープラウイング手法
完了した作業をチェックし、計画と相違ないことを確認する作業 スプリント終了時にフィーチャーを次に持ち越さない

問題の根本的な原因 - 適切な質問をしなかった - 何を開発しているか顧客が理解していない - ビジネスニーズを正確に把握できていない

プロダクトレビューを行い、バックログリストを修正する