フォーカスノート
システム開発のスケジュールは?WBSなどの作成方法・上手に管理するコツを解説
目次
「システム開発におけるスケジュールは、基本的にどのような流れになっているのか」
「スケジュール管理にはどのような手法があるのかな?」
システムを開発するうえで、このような疑問を抱く方がいるかもしれません。システム開発におけるスケジュールの流れは手法によって異なりますが、基本的には以下のようになっています。
- 要件定義
- 各種設計
- 開発
- テスト
- 運用
流れ自体は単純ですが、スケジュール管理はシステム開発において極めて重要です。スケジュールに基づき、期限の管理・リソース割り当てなどが行われるためです。そのため今日では、WBSやガントチャートなど多様なスケジュール管理手法が生み出されています。スケジュールを円滑に進めるためにも、このような手法を利用していくとよいでしょう。
そこで本記事では、システム開発におけるスケジュールの基本事項・管理方法・コツ・重要な要素を解説いたします。よくある質問についても触れていくため、システム開発のスケジュールについて理解したい方は、ぜひご参考ください。
要件定義など!システム開発のスケジュールを解説
システム開発のスケジュールは、基本的に以下のように進んでいきます。
- 要件定義
- 各種設計
- 開発
- テスト
- 運用
要件定義
システム開発で最初に行うことは『要件定義』です。このステップで決められることは以下の項目が挙げられます。
要件の例 | 具体例 |
---|---|
機能要件 | データ入力 ユーザー管理 レポート生成 |
非機能要件 | システムの応答時間 処理速度 スループットにおけるパフォーマンス |
セキュリティ要件 | アクセス権限 データの暗号化 バックアップ |
ここで定めた要件はシステム開発の基準になるため、可能な限り厳密に定義しておくことが必要です。要件定義があいまいなままでは、開発途中で仕様の変更などが起こりやすく、工期やコストが増加するおそれがあります。システムに必要だと思われる機能を多方面から探るため、時間をかけて定義していくことをおすすめします。そのことを念頭に置き、スケジューリングしましょう。
各種設計
要件定義書に沿って、各種設計を行っていきます。設計には主に『外部設計・内部設計』の2種類があり、それぞれの役割は以下の通りです。
外部設計の例 | 内部設計の例 |
---|---|
サービス提供に必要なサーバー ユーザーが利用するクライアント システムのハードウェア | 内部的に実行されるシステムの基盤 ソフトを処理するロジック 内部データの構造 |
簡単に言えば『外部設計』は、操作画面など目に触れる部分を設計するステップを指します。利用する際に触れる部分になるため、見た目や使いやすさにも気を配る必要があるでしょう。
一方『内部設計』とは、データ構造など操作の裏で実行されるソフト部分の設計です。「要件定義で定められたシステムの機能を、どのような形にすれば実現できるのか?」といった点を考えるステップだと言えます。
開発
各種設計が完了したら、実際に開発を行います。内部設計の段階で作成された設計書に基づき、基本的にはプログラマーが手を動かします。プログラミングで使われる言語は以下の通りです。
プログラミング言語の例 | 使用例 |
---|---|
C言語 | プログラミングや組み込みシステム開発などに使われます。 |
C# | ウェブアプリケーション・モバイルアプリケーションの開発などに使われます。 |
Python | データサイエンス・人工知能・科学計算などに使われます。 |
※開発目的や状況により使用言語は異なります。また上記言語は例であり、実際には別の使われ方をすることもあります。
プログラミング言語を使ってコーディングし、各コンポーネントやモジュールを実装します。設計段階で定められた仕様に基づき、ソフトウェアのソースコードを編集します。プログラミングの文字が1文字違うだけでもシステムは正しく動かないため、システムの規模が大きくなるほど開発にも時間がかかると考えられるでしょう。
テスト
開発が完了した後は、各種テストを行いシステムが正確に動作するかを確認します。テストの種類は以下の通りです。
テスト名 | 具体例 |
---|---|
単体テスト | 無効な入力が与えられた際に関数が適切な例外を返すか |
結合テスト | 支払い処理システムと在庫管理システムが連携して動作するか |
システムテスト | 検索、選択、購入一連の全プロセスを通じて、アプリケーションが正常に動作するか |
単体テストとは、個々のコンポーネントやモジュールが正しく機能するかを検証するプロセスのことです。主にソフトウェアの最小単位、例えば関数などに焦点を当て、それらが仕様どおりに動作するかを確認します。初期段階で単体テストを実施することにより、後々、より大きな問題となるのを防ぐことができます。
結合テストは、個別に開発されたモジュールやコンポーネントが正しく連携して機能するかを検証するプロセスです。システムの異なる部分が互いにどのように連携するかを確認します。システム全体としての品質を保証するために不可欠なプロセスと言えるでしょう。
最後にシステムテストとは、開発されたシステム全体が設計された要件や仕様に従って正しく機能するかを検証するプロセスを指します。この段階での徹底した検証は、製品の品質を保証し、ユーザーにとっての信頼性を高めるために極めて重要です。
運用
システムがリリースされた後は、運用を行うことになります。ここでいう運用とは、完成したシステムが現場で正しく使用および保守され、目的に沿って安定的に機能している状態を指します。具体的には以下のようなものがあるでしょう。
運用の例 | 具体例 |
---|---|
システムの利用 | 規定やマニュアルに沿って正しく使用 |
システムの監視と管理 | システムパフォーマンスなどを監視 |
メンテナンス | システムの定期的な更新などを実施 |
問題解決と改善 | エラーなどが発生した際に問題を特定し解決 |
セキュリティ管理 | 定期的なセキュリティチェックとアップデートを実施 |
正しく使うことはもちろんですが、定期的なメンテナンスを行い、万が一トラブルなどがあれば迅速に対処することが求められます。運用状況の監視を通じて、システムの改善点を見つけ出し、継続的に品質を向上させることも要求されます。
このことを考えますと、『目的を達成するまでがシステム開発』と言えるかもしれません。むしろ運用が始まってからが本番と言えるでしょう。
なおシステム開発の工程に関する詳細は以下の記事をご参考ください。
システム開発の工程は?流れやウォーターフォールモデルなどの種類を解説
WBSなど!スケジュール作成および管理方法を解説
システム開発のスケジュール作成、および管理方法については以下2つの方法が代表的です。
- WBS
- ガントチャート
WBS
WBS(Work Breakdown Structure)とは、プロジェクトの範囲や要件を明確にするためのツールのことです。日本語に訳すと『作業分解構造図』と呼ばれます。プロジェクトを構成する作業やタスクを階層的に分解し、より小さな単位で管理しやすくすることを目的としています。
そんなWBSを活用するメリットは以下の通りです。
- タスクが明確になる
- 役割分担が明確になる
作業のタスクを拾い上げることで、プロジェクトを進めていくうえで必要なタスクを可視化することができます。タスクを可視化することで、やるべきことを漏れなく確認できるようになるでしょう。
またWBSではタスクを構造化するため、関連性の高いタスクをひとまとめにできます。関連性の高いタスクがまとまっていれば、誰がどのタスクを進めるべきかの役割分担も明確にすることが可能です。
そんなWBSを利用する際のポイントは、作業を洗い出し、やるべき順序を設定した後の構造化にあります。大きな粒度のタスクを並べ、その下に関係する1段階粒度の小さなタスクを並べていきましょう。どのタスクが他のタスクの完了に依存しているかを明確にすることで、適切な実施順序を決めやすくなります。最終的にはプロジェクトの全体像が明確になり、各タスクの管理が容易になるでしょう。
ガントチャート
ガントチャートとは、横軸に時間、縦軸に作業内容を置いた棒グラフ状の一覧表を指します。プロジェクトのスケジュールを時間軸に沿って表すことで、タスクの期間と順序を明確にします。
ガントチャートを活用するメリットは以下のものが挙げられるでしょう。
- プロジェクトを見える化できる
- 関係者に進捗を共有しやすくなる
ガントチャートはプロジェクト全体の計画を見える化できるため、自身のタスクはもちろん、プロジェクト全体の進み方も一目で確認できます。プロジェクトが遅れがちになっている場合も、どの工程に問題があるのかが一目瞭然です。
またガントチャートではプロジェクトの進捗状況を見える化できるため、関係者に進捗を共有しやすくなります。透明性の確保が容易になることでしょう。
そんなガントチャートの作成ポイントは、各タスクにかかる所要時間の割り出しでしょう。前例などを用いて、1つのタスクにかかる時間を見積もりますが、基本的には多めの時間を見積もっておくことがポイントです。時間を節約しすぎると、結局プロジェクト全体の時間配分を考え直すケースもあります。時間をかけすぎないことも重要ですが、担当者が厳しいと感じるような時間配分にしないようご注意ください。
ちなみにガントチャート自体は、エクセルなどでも作成が可能です。専用のテンプレートなどもあるため、使いやすいタイプを選択すると良いでしょう。
スケジュール管理を上手に行うコツを解説
スケジュール管理を円滑にするには以下3つのコツを知っておくことが重要です。
- 成果物のOKラインを明確にする
- 担当者のスキルやキャパシティに気を付ける
- マイルストーンを設置する
成果物のOKラインを明確にする
成果物のOKラインを明確にしておきましょう。あいまいなままでは、どこまで完成度を追求すべきかわからないためです。
OKラインがあいまいなままでは、個人によって良しとするラインが異なります。人によってタスクを終えるまでの時間がバラバラになるだけではなく、成果物の質を統一することもできません。結果的に後から作り直しが必要になったり、必要以上に凝ることで、プロジェクト全体の進行に遅れが出てしまったりするおそれがあります。したがって最終的なOKラインはもちろん、成果途中のOKラインなどを細かく設定しておくと良いでしょう。
成果物のOKラインを明確にする際に役立つのが、SMART基準です。SMART基準とは、目標設定のための一般的なフレームワークのことです。以下を意識するだけで、成果物のOKラインが一気に明確になります。
SMART基準の各段階 | 内容 |
---|---|
S (Specific) | 達成すべき目標が具体的である |
M (Measurable) | 測定可能である |
A (Achievable) | 達成可能である |
R (Relevant) | 企業目標や戦略との関連性が明らかである |
T (Time-bound) | 期限が厳密である |
ご参考ください。
担当者のスキルやキャパシティに気を付ける
担当者のスキルや、キャパシティにも気を付けましょう。スケジュール管理には、決められた時間内でタスクを終えられるかどうかが重要です。
スキルが足りない人物を担当者にした場合、成果物の質を担保することは難しいでしょう。また成果物の質が担保できたとしても、必要以上に時間がかかってプロジェクト全体に遅れが出るおそれもあります。
1人に作業可能な量を超えてタスクを割り振った場合、結局うまくプロジェクトを進めることはできなくなります。担当者にタスクを割り振る段階で、任せようとしているタスクの量や難易度が担当者に合っているかを吟味しましょう。
この際に役立つのが従業員のスキルマッピングです。スキルマッピングとは、チームメンバーの能力とスキルを評価し、見える化する方法のことです。これにより、組織内の人材の強みと弱みを理解し、適切な人材配置や作業の割り当てやすくなります。チームの能力を最大限に引き出すことができるでしょう。
マイルストーンを設置する
マイルストーン※の設置もプロジェクトのスケジュール管理には有効です。
※マイルストーンとは、プロジェクトや作業における一種の到達点を指す言葉です。
マイルストーンへの到達具合で、進捗を確かめることが可能になります。マイルストーンまでの進捗が想定より早ければ、残りの行程も順調に進められるだろうと予測がつくでしょう。
またマイルストーンはプロジェクトメンバーの全員が確認できるため、個人レベルでプロジェクトの進行具合を確認することも可能です。結果として、管理者だけが進捗状況を管理するにとどまらず、メンバー全員で的確にタスクを管理できるようになります。
なおマイルストーンを設置する時点は、プロジェクトの半分と決まっているわけではありません。また設置する数も1つだけとは限らないため、プロジェクトの性質やスケジュール管理のしやすさを考慮して設置しましょう。
システム開発のスケジュールに影響を与えうる要素
システム開発のスケジュールに影響をおよぼす要素は、以下の3つが挙げられるでしょう。
- 開発する機能数
- 各機能の開発レベルの高さ
- 連携先のシステム数
開発する機能数
開発する機能の数によって、開発スケジュールが前後することが考えられます。機能数が多いほど、開発の手間がかかるためです。
機能の数が多ければ、その分開発に時間がかかるため、スケジュールを長くすることが必要になるでしょう。無理に短期間で開発しようとしても、必要な機能を揃えられなければ、リリースはおろかテストもできません。
したがって無理に短期間のスケジュールを組むより、最初から機能数に合わせたスケジュールにしておく方が無難です。
開発する機能数は、要件定義の段階で明確に定められます。できるだけ早期の段階で必要な機能を絞り込み、スケジュールに組み込んでおくことが重要だと言えるでしょう。
各機能の開発レベルの高さ
各機能の開発レベルの高さもスケジュールに影響を与える要素です。レベルが高ければ高いほど、開発難易度が上がります。
そもそも開発レベルが高い案件の場合、実際の開発だけではなく、設計段階でも大幅に時間がかかるおそれがあります。技術的な複雑さに対処するためには、システムのアーキテクチャ・データモデル・インターフェース設計などを詳細に検討する必要があるためです。場合によっては設計段階ではなく、要件の正確な理解・分析にも時間がかかるかもしれません。
対策が難しいところですが、具体的な対策として、類似機能の開発実績を事前に確認するのがおすすめです。開発にかかる工数や期間をある程度予想できるためです。それだけでなく、開発におけるリスクも事前にリサーチできるでしょう。明らかにした期間・難易度・リスクに応じて開発レベルを上下させることで、スケジュールへの影響をある程度抑えられます。
ただしスケジュールのためとはいえ、当初に設定した目的を達成できなくなるレベルにまで開発レベルを下げることは避けましょう。これでは元も子もなくなってしまいます。判断をする前に、必ず経営陣や現場責任者と相談するのをおすすめします。
連携先のシステム数
連携先システムの数が多い場合にも、スケジュールに影響が生じるおそれがあります。開発が複雑化するためです。
例えば、とある会社がCRMシステム・電子メールシステム・会計システムといった複数の異なるシステムと連携させる、新しい営業支援システムを開発すると仮定します。各システム間でデータをやり取りするためには、それぞれのシステムに対応した多様なインターフェースが必要となります。これにより、インターフェースの設計・開発・テストの工程が複雑化し、スケジュールの延長が生じるかもしれません。このような事態は避けるべきです。
対策としては、可能な限り開発するシステムのインターフェース標準化を図るのが良いでしょう。例えば、可能な限り業界標準の通信プロトコルやデータフォーマットを採用するなどが考えられます。その結果、ある程度まで複雑さを低減できます。自社に多くの既存システム・連携予定システムがある場合には、事業者に相談をするのが良いでしょう。
システム開発のスケジュールにてよくある質問
システム開発のスケジュールについて、よくある質問を3つあげると以下のとおりです。
- リスケジュールとリカバリーの違いは何ですか?
- スケジュール管理に使えるツールを教えてください
- 目安としてシステム開発の平均期間を教えてください
リスケジュールとリカバリーの違いは何ですか?
リスケジュールとリカバリーの違いは以下です。
リスケジュール | リカバリー |
---|---|
作業納期を遅らせること スケジュールの組み直し | 軌道修正を行う 残業・徹夜を指すケースも |
リスケジュールとは、プロジェクトなどが当初のスケジュール通りに進まない場合、スケジュールを改めて組み直すことを指します。プロジェクトの予定と現実が乖離した際などに、納期を後ろ倒す・人員を増員するなどで、スケジュールを正常な形に修正します。
リカバリーとはスケジュール・人員とも変更することなく、1日・1人当たりの作業量を増やすことで、スケジュールの遅延を取り戻す方法です。残業によって遅れを取り戻す・他システムを代用するなどで、作業効率を上げる方法が考えられるでしょう。
スケジュールの遅延が発生した場合、基本的にはリカバリーを試み、リカバリーだけでは無理な場合にリスケジュールすると考えられます。リスケジュールは納期を伸ばすことになるため、最終手段とも言えるでしょう。
スケジュール管理に使えるツールを教えてください
スケジュール管理に使えるツールの例に、株式会社ヌーラボ提供のBacklog※が挙げられます。
※Backlogは株式会社ヌーラボの登録商標です。
Backlogには以下の特徴があります。
- 直感的な操作
- 初期費用0円
- 無料トライアルあり
直感的な操作で、ITツールに不慣れなメンバーがいても導入しやすい点が大きなメリットだと言えるでしょう。
また初期費用0円、30日間の無料トライアルがある(2024年1月23日時点)ため、コスト面で導入しやすい点も魅力的です。すべてのプランでメールおよびチャットサポートが備わっていることから、万が一トラブルが生じた時でも心強いでしょう。
目安としてシステム開発の平均期間を教えてください
システム開発にかかる期間は、一般的に3か月〜1年と言われています。小規模であれば3か月前後、大規模だと1年以上かかるかもしれません。ただし、以下のような要因で、開発期間が大きく変動する可能性があります。
- システムの複雑さ
- 開発会社のスキルレベル
- 開発に用いる手法
そのため、詳しくは開発会社に問い合わせると良いでしょう。
まとめ
今回はシステム開発における、スケジュール管理について解説いたしました。 システム開発の成功には、システムそのものの開発はもちろん、スムーズに開発を進めるためのスケジュール管理が重要です。
しかしスケジュール管理と一言で言っても、適切に行うには相応の知識と経験が必要です。日々の業務に追われて、スケジュール管理まで気が配れないときもあるでしょう。そのような場合は、ぜひ当社にご相談ください。