スケジュール設定
スケジュール設定はプロジェクトのQCDに大きく関わる作業です。 納期に向けて、適正なコストで品質を確保するよう計画を立てる必要があります。
スケジュールを守ることが理想です。
しかし、一方で個別のフェーズなどにおいて遅延が見込まれる場合など、どういった対策を打ち、いつまでにリカバリするかといった指針を決める際にも、スケジュールの存在が必要となります。
開発速度と品質
実装とレビューのサイクルを早め、1つ1つの実装タスクが早く片付くようにすることは可能です。
ただし前提として、実装の品質が高く、レビューの質が良い状態が必要となります。
実装の品質が低く、レビューの質が悪い状態であっても、一見開発は早く進むように見えます。 しかし、テストフェーズ以降でバグが多発し、リリース後の瑕疵対応が必要になることは避けて通れないでしょう。 定められた品質をクリアできなければ、テストフェーズでコストが膨れ、瑕疵対応で請求できないコストが嵩むといった悪循環に陥ります。
開発速度は重要ですが、品質を担保することが必要です。
品質向上のためには、PMだけでなく、各エンジニアが「開発品質ガイドライン」を理解し、ガイドラインに則って開発していくことが重要です。
PMがスケジュールを設定する際に気をつけるべきこと
お客様と決めたマイルストーンによって、スケジュールの立て方も異なってきます。
例)
a) モックを触ってイメージを掴みたい
b) 重要な機能から順に動作確認していきたい(場合によっては重要機能のみ対応で早期リリースしたい)
c) 全機能が揃ってから動作確認したい
など
各マイルストーンでは、完璧と言わずとも、お客様へアプリ品質に納得いただく必要があります。 そのためにも「何がいつできる」「このタイミングでは何が動かない」といった情報を合わせて提供する必要があります。
また、アプリリリースに必要な作業を余すことなくスケジュールに含めるようにする必要があります。
- インフラ構築
- 総合テスト
- 審査
開発スケジュールの立て方イメージ
開発スケジュールのイメージとして一例を示します。
- はじめにモック確認を行う
- MVPで開発、リリースする
- 運用保守で機能を追加開発(BIツールを用いた分析を行い、効果の高い追加機能開発の検討が可能です)
エンジニアがスケジュールを守るために気をつけるべきこと
スケジュールは1つ1つのタスクの予定工数の積み重ねで作られています。
予定工数が膨れることはスケジュールの遅延リスクがあることを意味します。
1ヶ月先までのタスクについて予定工数を見込むことができれば、仕掛かり中の作業に遅延が発生した場合であっても、先の予定が見えているため調整を容易に行えます。
エンジニアがスケジュールを守るためには、以下の項目を理解して、取り組むことが重要となります。
2.チケット仕様確認
3.実装
バッファをもたせる
アプリ開発においては、予測不能な事象を正確に予定工数として見積もることが難しく、場合によっては実工数が大きくなり、遅延してしまう可能性があります。 そういった予測不能な事象としては、以下のようなものがあります。
事象の例
- レビュー指摘対応にかかる時間
- 技術調査にかかる時間
- 外部要因で発生する待ち時間
- テスト時のバグ対応にかかる時間
- など
一つ一つのタスクについて、上記が発生する可能性があります。 従って、「なにか問題が発生したとしてもこの期間に収めるようにコントロールする」といったバッファを設ける必要があります。
プロジェクトの状況によって妥当性は変わりますが、バッファの基準値を決めておくと担当者が判断しやすくなり、スムーズに計画できるようになります。
バッファの基準値の例
- レビュー指摘対応: 実装工数の50%程度をバッファにする
- 技術調査: 1~3日程度をバッファにする
- 外部要因の待ち時間: 外部要因の性質に依存
- バグ対応: 実装工数の20%程度をバッファにする
- など