スケジュール設定

スケジュール設定はプロジェクトのQCDに大きく関わる作業です。 納期に向けて、適正なコストで品質を確保するよう計画を立てる必要があります。

スケジュールを守ることが理想です。
しかし、一方で個別のフェーズなどにおいて遅延が見込まれる場合など、どういった対策を打ち、いつまでにリカバリするかといった指針を決める際にも、スケジュールの存在が必要となります。

開発速度と品質#

実装とレビューのサイクルを早め、1つ1つの実装タスクが早く片付くようにすることは可能です。
ただし前提として、実装の品質が高く、レビューの質が良い状態が必要となります。

実装の品質が低く、レビューの質が悪い状態であっても、一見開発は早く進むように見えます。 しかし、テストフェーズ以降でバグが多発し、リリース後の瑕疵対応が必要になることは避けて通れないでしょう。 定められた品質をクリアできなければ、テストフェーズでコストが膨れ、瑕疵対応で請求できないコストが嵩むといった悪循環に陥ります。

開発速度は重要ですが、品質を担保することが必要です。

品質向上のためには、PMだけでなく、各エンジニアが「開発品質ガイドライン」を理解し、ガイドラインに則って開発していくことが重要です。

PMがスケジュールを設定する際に気をつけるべきこと#

お客様と決めたマイルストーンによって、スケジュールの立て方も異なってきます。

例)

a) モックを触ってイメージを掴みたい  
b) 重要な機能から順に動作確認していきたい(場合によっては重要機能のみ対応で早期リリースしたい)  
c) 全機能が揃ってから動作確認したい  
など

各マイルストーンでは、完璧と言わずとも、お客様へアプリ品質に納得いただく必要があります。 そのためにも「何がいつできる」「このタイミングでは何が動かない」といった情報を合わせて提供する必要があります。

また、アプリリリースに必要な作業を余すことなくスケジュールに含めるようにする必要があります。

  • インフラ構築
  • 総合テスト
  • 審査

開発スケジュールの立て方イメージ#

開発スケジュールのイメージとして一例を示します。

  1. はじめにモック確認を行う
  2. MVPで開発、リリースする
  3. 運用保守で機能を追加開発(BIツールを用いた分析を行い、効果の高い追加機能開発の検討が可能です)

エンジニアがスケジュールを守るために気をつけるべきこと#

スケジュールは1つ1つのタスクの予定工数の積み重ねで作られています。
予定工数が膨れることはスケジュールの遅延リスクがあることを意味します。
1ヶ月先までのタスクについて予定工数を見込むことができれば、仕掛かり中の作業に遅延が発生した場合であっても、先の予定が見えているため調整を容易に行えます。

エンジニアがスケジュールを守るためには、以下の項目を理解して、取り組むことが重要となります。

2.チケット仕様確認

3.実装

バッファをもたせる#

アプリ開発においては、予測不能な事象を正確に予定工数として見積もることが難しく、場合によっては実工数が大きくなり、遅延してしまう可能性があります。 そういった予測不能な事象としては、以下のようなものがあります。

事象の例

  • レビュー指摘対応にかかる時間
  • 技術調査にかかる時間
  • 外部要因で発生する待ち時間
  • テスト時のバグ対応にかかる時間
  • など

一つ一つのタスクについて、上記が発生する可能性があります。 従って、「なにか問題が発生したとしてもこの期間に収めるようにコントロールする」といったバッファを設ける必要があります。

プロジェクトの状況によって妥当性は変わりますが、バッファの基準値を決めておくと担当者が判断しやすくなり、スムーズに計画できるようになります。

バッファの基準値の例

  • レビュー指摘対応: 実装工数の50%程度をバッファにする
  • 技術調査: 1~3日程度をバッファにする
  • 外部要因の待ち時間: 外部要因の性質に依存
  • バグ対応: 実装工数の20%程度をバッファにする
  • など