今回は、先日のブログで「開発スケジュールの作成について次回詳しく話す」と豪語した通り(汗)、
その手順についてをお話したいと思います。
まだ先日の記事を読んでいない方は、ぜひこちらからご覧ください。
今回はシステム開発のプロである我々が、納期を守るために普段から実施している進捗管理についてお伝えしたいと思います。進捗管理とは、計画したスケジュール通りに作業が進捗しているかの確認、スケジュールに遅れが生じている場合はそ …
プロジェクトの成功を左右するスケジュール
システム開発のスケジュール作成は非常に重要な作業です。
プロジェクトの成功を左右すると言っても過言ではありません。
既存システムのカスタマイズや運用・保守作業といった、既存システムや運用を把握している場合は、
作業が計画通りに進むことが多いです。
ただ、新規開発となるとなかなか計画通りには進みません。
だからこそ、適切なプロジェクトマネジメントが欠かせないのです。
実際、システム開発には予測が難しい部分が多くあります。
他の業界でも同じような感じなんでしょうか…?
それでは、私たちがどのように開発スケジュールを作成しているか、具体的にご紹介したいと思います。
その1~タスクを抽出する
まずは、プロジェクト完了までに必要なタスクをすべて洗い出すことが重要です。
これができるようになるには、やはり経験が必要となります。
この段階でのミスは、後々大きな問題に発展してしまいます。
例えば「あぁ、このタスクが抜けていた…」となると、スケジュール全体が大幅にズレ込む原因になります。
特に見積もりの段階で、タスクをしっかり洗い出しておくことが非常に重要です。
ここで見落としがあると、最終的には自分たちが苦しむことになります。
だからこを、この作業には十分な時間と労力を割きましょう!
その2~抽出したタスクをさらに細分化する
次に、抽出したタスクをさらに細かく分けていきます。
細分化する理由はシンプルで、進捗を正確に把握できるようにするためです。
例えば、「設計」という5人日かかるタスクがあるとします。
2日経過して「進捗50%です」と報告されても、それが正確かどうかを判断するのは難しいものです。
このような場合、タスクを細かく分けることで、進捗をより正確に管理できるようになります。
具体例として、以下のように分けてみましょうか。
・タスク1:2人日
・タスク2:1人日
・タスク3:2人日
この場合、2日後に「タスク1だけ完了した」と報告されたなら、進捗率は40%だとすぐに判断できます。
担当エンジニアも自分の進捗が正確に把握できることで、夜も安心して眠ることができますしね(笑
「タスクを細分化できない」ということは基本的にはないと考えています。
もし細分化できないのであれば、そのタスクが十分に見積もられていない可能性が高いです。
そういったタスクがあるようなら、要件定義や見積り段階の前に検証しておくべきです。
また、1つのタスクはどんなに長くても2~3人日程度に分けるのが理想かと思っています。
その3~タスクにリソースを割り当てる
次に、誰がどのタスクを担当するかを決めます。
ここでは、メンバーの得意分野やスキル、生産性を考慮しながら割り振りしていくのがポイントです。
たとえば、経験の浅いメンバーには余裕をもって多めに時間を割り当て、
一方で、上級エンジニアには作業日数を少なめに設定する、といったような様々な調整を行います。
その4~タスクをつなげる
次は、タスク同士の順番を決めます。
タスクには依存関係があるため、適切な順序を守る必要があります。
例えば、
「設計が終わっていないのにプログラミングはできない」
や
「テスト設計が完了していないのにテストは始められない」
といったケースがあります。
これらの依存関係を考慮して、タスクの実行順序を決めていきます。
スケジュールは、タスクの順序と作業日数が決まれば、自動的に組みあがっていきます。
ただし、忘れずに祝日やメンバーの休暇も考慮しておきましょう。
その5~職人芸の発揮
さて、これでスケジュールが完成!
…と言いたいところですが、現実はそう甘くありません(涙)。
ここからが職人芸の出番です。
タスクの数は小さいプロジェクトでも数百に上り、少し規模が大きくなると数千に達することも珍しくありません。
そして、数多くのタスクをつなぎ合わせた結果、
「納期に間に合わない」
「リソースが足りない」
といった問題が発生することもしばしば。
ここからが本番。
リソースの割り当てを調整したり、場合によっては増員を検討したりしながら、スケジュールを仕上げていきます。
まさにパズルを解くような作業です。
まとめ
システム開発におけるスケジュール作成は、プロジェクトの成否を左右する非常に重要なプロセスです。
タスクの抽出から細分化、リソースの割り当て、最終的な調整に至るまで、どのステップも気を抜くことができません。
特に新規開発では、予期せぬ事態が多発するため、スケジュール管理の精度がプロジェクトを成功のカギを握ります。
しっかりとしたスケジュールを作成しで、チームをスムーズに導いていきましょう!
最後までご覧いただきありがとうございました。