プロジェクト管理のメモ

ミスコミュニケーションを少なくすることが要点

  • 顧客とのコミュニケーション(要求、設計、スケジュール、開発費の認識あわせ)
  • 開発者とのコミュニケーション(要求、設計、スケジュールの認識合わせ)
  • 開発者/テスター間のコミュニケーション(実装、テスト、修正の進捗管理)

参考:

人の管理

  • プロジェクトマネージャー/プロジェクトリーダー
    • 全体(顧客の要求/開発の進捗、担当者)を把握、顧客対応
  • 開発者/テスター
    • 担当個所の要求/進捗を把握

要求の管理

  • 機能に関する要求
    • Wordファイル、テキストファイル、メールなどの文章(メモ書き、箇条書き含む)で機能要求が来る。加えて、ミーティング時の口頭説明がある場合も。
  • 画面に関する要求
    • PowerPointファイル、Excelファイル、画像ファイルなどの図示で、こういうイメージで作りたいという要求が来る。これらのファイルにコメントを追記し、ファイルのキャッチボールで要求を詰めていく。要求が実現できない場合は代替提案をする。
  • これらの要求から課題を明らかにする。これが基本設計(機能設計、画面設計)となる。
  • 基本設計を元に実装方法を検討する。開発フレームワーク/ライブラリの選定をする。
  • 進める中で顧客と認識に食い違いが起こるので適宜調整する。
    • 設計書の更新がしやすいよう文書管理をする。また実装の変更がやりやすいように、開発フレームワーク/ライブラリを選ぶ。最初の設計でガチガチに作り込まないようにする。といっても実践は難しい。

スケジュールと工数の管理

  • 要求からスケジュールと工数を見積もる。要求を基本設計くらいまで落し込めてれば見積もりやすいが、その前の要求ベーズでざっくり見積もるのも大切。乖離があっても顧客に納得してもらえる説明ができればよい。
  • スケジュールの見積もりは慎重にする。とにかく顧客はスケジュール厳守を求める。当たり前だが。
    • 不確実性に備えて多めに期間をとる (スケジュールバッファ) という手もある。この「多め」のさじ加減が難しい。
    • リリース期限が決まっている場合は、見積もりの段階で必須機能とオプション機能を選り分けて、オプション機能を見送りできないか顧客と調整する (フィーチャーバッファ) という手もある。
  • 工数を元に人的リソース(開発者、テスター)を割り当て、顧客に提示する開発費を算出する

タスクの管理

  • チケット管理システム(Redmineなど)を使って作業の進捗を追えるようにする。
  • 実装/単体テスト/総合(結合)テストのときは、不具合を検出 -> バグ登録(再現手順を記載) -> 改修者の割当て -> 原因記載、改修内容(コード)レビュー -> 改修適用 -> テスターに改修確認を依頼 -> 修正確認 -> 修正完了 のような一連の進捗管理に用いる。再現不可によるさし戻し、テスターに再現手順の明確化を依頼するなどもチケットで行う。
  • 顧客向けにチケット管理システムを閲覧できるようにするか、顧客向けには別途進捗をExcelファイルなどで管理するか(たいてい顧客はこっちを要望する)は案件による。