電話で相談する

フリーダイヤル

0120-917-819

営業時間 平日10~19時

公開日: 更新日:

システム開発の工程・スケジュールの立て方をわかりやすく解説!

とある統計によると、「新規システム開発プロジェクトのうち3割前後は失敗する」とされています。失敗する原因にはコミュニケーションエラーや能力不足などがありますが、事前のスケジュール設計が甘いことも理由の1つとして挙げられるでしょう。
システム開発の工程やスケジュールを最適化していなければ、納期遅れや成果物の品質低下などの事態を引き起こしてしまうかもしれません。

この記事では、システム開発のスケジュールについて、WBS(Work Breakdown Structure)の作り方や注意点など全体の工程をご紹介します。

目次

システム開発のスケジュールについて

システム開発を滞りなく成功させるには適切なスケジュール設定が必要です。まずはスケジューリングに欠かせないシステム開発全体の工程をご紹介します。

システム開発の工程

システム開発には、大きく分けて以下の7工程が存在します。

1.要件定義
2.外部設計
3.内部設計
4.プログラミング
5.システムテスト
6.リリース
7.運用・保守管理

はじめに、どのようなシステムを開発するのか、最終目的を開発元と発注者の間ですり合わせる要件定義を行います。納期や人員、予算などといったスケジュールを組み立てるため、計画性を保ってシステム開発を行うには要件定義が必要不可欠です。

その後、実際に利用するユーザーに影響を及ぼす外部設計を行います。ユーザーインターフェースを始めとしたシステムの使い勝手を左右するため、発注者側の要望をうまく反映する必要があるでしょう。
続いて、開発者視点からどのようにプログラミングをするかを設計する内部設計を行います。

各設計を完了させることで、実際にシステム開発のプログラミングを開始することができるでしょう。
プログラミングがある程度進行したのち、小さなプログラムから徐々にテストを行い、全体を通して問題がなければリリースされるというのがシステム開発の工程です。

最終的には、運用がうまくいくよう管理を行ったり、システムを更新するためのアップデートを行ったりすることも必要になります。
開発したシステムの運用・保守のことまで考慮したうえでスケジュールを組む必要があるでしょう。

システム開発にどのくらいの期間かかる?

システム開発に掛かる期間は制作するシステムの具合によって大きく異なるでしょう。
すべてのシステムを1から制作する「フルスクラッチ」型では、一般的に最短で6ヶ月ほど時間が掛かるとされています。一方で、ある程度のモジュールを組み合わせて開発ができる「クラウド」型であれば、最短2ヶ月ほどで開発できるケースがあるのも事実です。

とはいえ、実際のシステム開発スケジュールは構築したいシステムや開発工程よって大きく変動します。あくまで目安の期間となるため、動員されるエンジニア・プログラマーや予算をもとに、両者が納得する納期を設定することが大切です。

ウォーターフォールモデルとアジャイルモデル

システム開発のスケジュールは、採用する開発工程によって大きく変わります。大きく分けると「ウォーターフォールモデル」と「アジャイルモデル」の2つがあります。

「ウォーターフォールモデル」では、最初の企画段階で開発するシステム全般の機能を決定します。その後、上流工程から下流工程まで1つずつ作業内容を確認しながら進めていくなど、各工程の仕上がりを重視した開発モデルです。システム開発のスケジュールや予算の見積もりが容易になるメリットがあります。

「アジャイルモデル」では、機能ごとにシステム開発とテスト、納品を行います。そのため、「ウォーターフォールモデル」よりも短いサイクルでプロダクトを進めていくことが可能です。細かく開発するため、作業途中でもユーザーの意見を反映させやすいといったメリットがあります。

「アジャイル(Agile)」は「敏捷」という意味を持ち、「ウォーターフォールモデル」よりも開発速度が早い特長を持ちます。全体の作業工程を安定して品質を保てる「ウォーターフォールモデル」、途中でも細かく修正を入れて市場ニーズにも対応できる「アジャイルモデル」と特徴が異なるため、プロジェクトに適した開発モデルの導入が重要です。

システム開発のスケジュール作成

ここでは、システム開発のスケジュール作成で元となるWBSについて、どのようなものかメリットなどをご紹介します。

WBSとは

「WBS(Work Breakdown Structure)」とは、プロジェクト全体のタスクを細かく分解して、進行順序を整える手法です。システム開発のスケジュール管理資料であり、プロジェクトを完了させるまでに必要な作業を細かく分類するためにWBSの導入が行われます。

端的に言えば、「WBSは作業項目の洗い出し」です。プロジェクトを大まかなタスクに分解し、細かいタスクなどは粒度に応じてツリー構造で引き下げていきます。メリットとして、プロジェクトに必要なタスクの抜け漏れといった可能性を抑えやすいといった点が挙げられるでしょう。

また、各タスクの作業内容や掛かる納期目安なども把握できるため、綿密なスケジュール作成をしやすいのもメリットです。そのため、システム開発のスケジュール作成にはWBS導入が欠かせません。

WBSガントチャート

WBSはタスクを細かく分類し、プロジェクトに必要な細かい作業や納期を把握する手法です。それに加えて、システム開発では「ガントチャート」が用いられています。ガントチャートとは、プロジェクトの進捗や全体像を視覚的に表現できるスケジュール表です。棒グラフのようなもので、簡単にプロジェクトの進捗状況を表すことができます。タスクごとに細かく作業の進捗状況を表せるため、WBSと合わせてガントチャートを利用することが一般的です。

WBSはあくまでツリー構造にて各タスクを洗い出すだけですが、ガントチャートでタスクを管理することにより、「視覚的にわかりやすい」「進捗を確認しやすい」といったメリットがあります。

スケジュール作成でWBSを導入するメリット

WBSではタスクを細分化しツリー構造で管理することにより、プロジェクトの進行で必要な作業の把握漏れを抑えることができます。メリットとして、システム開発のスケジュールをより綿密に作成できるという点が挙げられるでしょう。

細かいタスクを割り振ることで、プロジェクトに携わるメンバーの作業分担もやりやすくなります。システム開発の内容に変更があった際も、ツリー構造でタスクが一覧できるため「不要になったタスク」を可視化することが可能です。

また、プロジェクトを受注・発注する際の見積もり段階で各工程を細かく分類することで、どのような作業が必要なのか、必要な予算などを具体的に提示しやすくなります。双方が納得した作業感・納期を提示しやすくなるため、スケジュール作成でWBSを導入することはお互いの信頼感にも繋がるメリットがあるとも言えるでしょう。

WBSの作り方

システム開発のスケジュールにWBSが必要不可欠とはいえ、正しい作り方でなければ効果は薄いでしょう。WBSの作り方についてご紹介します。

成果物を明確にする

WBSを作る場合は、求められる作業についてあらかじめ把握しておくことが重要です。特に機能要件と非機能要件の2つについては、発注者側が明確に提示する必要があるでしょう。

機能要件とは「かならず搭載する予定の機能」など発注者側が望んでいる機能のことです。直接ヒアリングにて詳しい要件を伝えることで、より明確化することができるでしょう。一方で、非機能面要件とは機能要件を除いた仕組みを指します。たとえば、システムのセキュリティやレスポンス、ユーザビリティといった顧客の満足度に繋がる要素です。

機能要件は”かならず搭載しなければいけないもの”であり、納品物に機能が未実装であれば、システム開発のプロジェクトは失敗とも言えます。とはいえ、非機能面要件がおろそかになってしまうと、満足度の低くい仕上がりになってしまうでしょう。WBSで成果物に求められている機能要件と非機能要件を明確化することが、プロジェクトの成功に繋がると言えます。

作業を構造化する

WBSは各タスクをツリー構造で管理することが重要です。たとえば、「基本設計→画面設計、帳票設計、データベース設計」と基本設計を3つに分けます。そのあとで、「画面設計→画面レイアウト、画面処理設計」「画面レイアウト→顧客情報管理画面、案件管理画面」といったツリー構造を明確化します。

作業を構造化することで、細かいタスクの抜け漏れを防ぐことが可能です。また、作業内容に変更があった際、「この部分の作業がなくなるなら、以下のツリーに連なるタスクが不要になる」という具合に作業全体の進行も効率化しやすくなります。

担当者と予定を決める

細かいタスクを分類することができたら、ガントチャートと合わせて担当者と予定をすり合わせることが重要です。基本的にどれだけWBSを細かく作成しても、担当者を決めずに「誰かがやるだろう」という形で放置をしていると、最終的には誰も手を付けずスケジュールに遅延が発生してしまう可能性もあります。
もし、タスク内に複数の担当者がいる場合はかならず主担当者を明らかにしておきましょう。基本的には、1つのタスクに1人の担当者が好ましいです。

また、実際の作業感についても担当者と相談する必要があります。場合によっては、PMと担当者の間で「タスクが完了するまでの所要時間に認識の相違が生まれてしまう」ケースがあるのも事実です。担当者に相談したうえで予定を決めることで、そのようなギャップが生じる可能性を抑えることができます。

WBSを作成する際の注意点

WBSを作成する場合は、「クリティカルパス」を見逃さないよう注意する必要があります。クリティカルパスとは、絶対に遅延できないプロジェクトツリーの下に連なるタスクをつなぎ合わせた時、開始から終了までもっとも時間の掛かりそうなタスク郡のことです。全体を通して作業に時間が掛かるタスクは、システム開発のスケジュールに強い影響を与えるため見逃してはいけません。

「前工程が完了しなければ次へ進めない」という関係性のタスクを洗い出すことで、全体の所要時間を明確化することができます。クリティカルパスを発見できることはWBSを作成するメリットでもあるため、スケジュールの工程管理に役立てるようにしましょう。

また、洗い出したタスクに具体的な内容性が伴っていないという事態も避けるべきです。タスクの内容があやふやでは、PMと担当者の間で作業範囲に認識のズレが生じる場合もあります。「画面の設計」ではなく、「画面遷移図の設計」など、タスク内容を細かく策定することが大切です。

WBSテンプレート・サンプルを作ろう

WBSのテンプレートやサンプルを作ることで初期の設定を簡略化しやすくなります。システム開発社内やチーム内ですでにテンプレートが作成されている場合は、必要事項の漏れや他プロジェクトと連携するためにも、既存のテンプレートを利用することがベストです。

もし、社内やチーム内でテンプレートが用意されていないという場合は、web上に公開されているWBSのテンプレート・サンプルを利用してみることをおすすめします。日付や担当者の設定が容易にできる無料のテンプレートもあるため、それらを元にチーム内で活用しやすいよう独自にアレンジするのも方法の1つです。

システム開発におけるスケジュール管理

システム開発は全体像を掴んでからスケジュールを管理する必要があります。スケジュール管理とはどのようなものか、準備や運営についてご紹介します。

スケジュール管理では何をするのか

WBSはスケジュールを作成するための資料に過ぎません。システム開発のスケジュール管理では、タスクごとに掛かる時間や納期、作業予定の日時を明確化する必要があります。基本的には、システム開発全体をスケジューリングした「マスタースケジュール」と、細分化したタスクを担当者に割り振った「WBSガントチャートのスケジュール」の2つを利用するとよいでしょう。

プロジェクトの規模が大きくなるほど、全体工程の流れが把握しづらくなってしまうのも事実です。そのため、マスタースケジュールとガントチャートの2つに分けて管理することで、「プロジェクト全体の立ち位置」と「タスクごとの細かい進捗」を把握しやすくなります。

システム開発に求められるスケジュール管理は、一般的なスケジュール管理と大差ないと言えるでしょう。

スケジュール管理の準備

スケジュール管理の準備では、主に「スケジュールの組み立て」と「運用ルール」を定めます。担当者と相談をして細分化したタスクを割り振るほか、進捗状況を報告・共有する頻度や間隔を定めることが重要です。システム開発中に思わぬトラブルが起きてしまう場合もあるため、「Aのタスクが◯日遅れたら人員増加などのリカバリー策を取る」「ガントチャート上で二重にタスクが重なっている担当者がいないようにする」といった方策をあらかじめ決めておきましょう。

また、各スケジュールの合間に「マイルストーン」を設置するのもポイントです。マイルストーンは中間目標地点であり、特定の成果物が完成していなければいけないタイミングや、工程完了のミーティング実施といったイベントを設定します。そうすることで、メンバー全体のモチベーションを保ってのシステム開発を進めやすくなるでしょう。

スケジュール管理の運営

スケジュール管理の準備で運営ルールや実際にスケジュールを組み立てたら、次は運営ルールも定める必要があります。スケジュールの運営段階ではプロジェクトがスケジュール通りに進んでいるか定期的にチェックする内容がメインです。新たなタスクが発生したり、あるいは一部のタスクで遅延が起きていたり、事前に計画したスケジュール内容から変更が合った場合は速やかに対策を検討する必要があります。

もしプロジェクトの進行時に問題が合った場合は、タスクの入れ替えや前後調整を行わなければいけません。タスクのさらなる細分化が可能であれば、人員を増やして一時的な作業スピードの向上を図るなどの工夫が必要です。

システム開発のスケジュール作成で失敗しないためのポイント

システム開発のスケジュール作成で失敗するケースでは、担当者がこなせる作業量を見誤ってしまうことがあります。担当者のキャパシティを超えたタスクを割り振ると遅延が発生しますし、逆にスキルがある人のタスク量が少ないとプロジェクト全体の進行具合が遅れてしまうでしょう。そのため、スケジュール作成では担当者のスキルを把握したタスクの割り振りが重要です。

また、かならず「クリティカルパス」を浮かび上がらせておきましょう。特定のタスクで発注者の承認になるケースもあり、前提条件のタスクに遅れが出ることで、連なるタスク全体に大きな遅れが発生してしまう場合があります。クリティカルパスができる限り短くなるよう工夫をすれば、スケジュール作成に失敗する可能性も抑えることが可能です。

しかし、システム開発ではスケジュール通りにいかないことも多々あるでしょう。そのたびにリスケジュールをするとコスト増加などさまざまな問題が発生するため、スケジュール通りに進行できない場合のリカバリー策もあわせて用意することがベストです。

まとめ

今回はシステム開発のスケジュールについてご紹介しました。スケジュール設定に無理があれば、システム開発のプロジェクト全体に悪影響を及ぼしかねません。場合によっては、プロジェクトが炎上してしまう可能性もあります。

もし、スケジュールに沿った高品質なシステム開発を行いたい場合は、実績豊富なシステム開発会社への外注がおすすめです。開発からデザイン、プロジェクト管理のプロに任せることで、求めているシステムをスムーズに実現しやすくなると言えるでしょう。

「どのようなシステム開発会社が良いかわからない」とお悩みの場合は、ぜひ一度アイミツへお問い合わせください。実績を熟知したコンシェルジュが、あなたにマッチしたシステム開発会社をお探しいたします。

アイミツ

著者

imitsu編集部

運営に関するお問い合わせ、取材依頼などはお問い合わせページからお願い致します。