システム開発にかかる期間の目安|細かな工程を紹介!
2021.06.29
自社に新しいシステムを導入しようと考えたとき、アウトソーシングだと、どれくらいの期間でシステム開発が完了するかは気になるポイントですよね 。目安が分かるだけでも、今後のスケジュールを立てやすくなります。 そこで今回は、システム開発期間の目安について解説します。あわせて、工程や開発手法についても紹介します。
ウォーターフォールモデル
滝の水に由来している名称で、文字どおり工程の上流から下流に向かって順番に開発を行っていく手法です。
「ひとつの作業が完了したら次へ進めていく」という流れで、システム開発の中でも最もポピュラーなモデルであり、世界的にも幅広く活用されています。
具体的には、「仕様が決定してから次の計画設計に進み、詳細が決まった後にプロジェクトを開始して、システムが完成すればテストを実施する」といった流れです。
全体的な流れが分かりやすく作業がスムーズに行えるのが特徴で、進捗管理がしやすいこともあって、多くの現場で採用されている開発方法です。
各自の工程が理解しやすい性質から、大規模で多くの共同作業が必要になるシステム開発にも適しています。
デメリットは、滝の流れが逆行できないように、「不具合が後になって発見された場合には修正が難しく、前の段階に戻って改善するためには多くの時間を要する」という点です。
そのため、各工程では完了時のチェックを確実に行い、トラブル防止に努めなければなりません。
仕様の変更などが事前に考えられるプロジェクトには不向きで、変化が多くなるほどに対応は困難となるおそれがあります。
ウォーターフォールが力を発揮しやすいのは、明確に要件が決まっている大規模なプロジェクトです。特に納期や予算などの条件がシビアな場合にも効果的といわれています。
アジャイル開発モデル
「アジャイル」という言葉には「機敏」など早さを表す意味があります。
システム開発においては、2000年代に考案された、短期間での開発に用いられる手法のことを指します。
この手法を導入することによって、
期間の短縮とウォーターフォールモデルの弱点であった「変化」に対しても柔軟に対応できるようになりました。開発の流れとしては、まずは大まかな仕様の決定後に、1週間~4週間程度で開発可能な範囲にシステムを分割します。
この小分けされたシステム開発を「スプリント」と呼び、要件定義からテストまでを行って完成させ、スプリントごとに開発と効果検証を繰り返すのが特徴です。このサイクルのことを「イテレーション」と呼びます。
そして、イテレーションを何度も行い徐々にシステムを完成させていくことが、アジャイル開発モデルの基本的な仕組みです。
小さな開発を繰り返していく際、
依頼側と開発側が頻回にコミュニケーションを図りながら進めていくため、そのたびに要望があればシステムの修正や変更にも対応できます。細かな改善を積み重ねていくことで、質の高い機能を備えたシステム構築を実現しやすくなることもメリットのひとつです。リリース後にも変化を加えることが可能なので、十分に満足のできるものが仕上がりやすくなります。
変化に柔軟対応できるアジャイル開発モデルですが、当然デメリットもあります。
徐々にシステムの方向性を定めていく手法であるため、「スケジュールが読みにくい」という点には注意が必要です。とはいえ、デメリットをカバーすることができれば、要件を最初から詳細に決めなくともプロジェクトが進められるため、内容が漠然としている依頼や短期的な開発にも対応しやすい手法です。
納期や予算が調整できる案件であれば、
より高品質なものを追及できます。
要件定義
約2週間~1ヶ月の時間を要する部分で、目的や課題などを話し合い、「どのようなシステムにすべきか」を考える工程です。
具体的に実装したい機能やどのような性能が必要かなどの「機能要件」だけではなく、実際に使用するプログラミング言語などの「技術要件」なども決めていきます。
入念な打ち合わせを行い、依頼側と開発側の双方に認識のずれが生じないように注意しなければなりません。
確認が不十分であると、思い描いた仕様になっておらず修正や大幅な変更が必要になることがあり、最悪の場合プロジェクトが成り立たないおそれも生じるためです。
そのほかにも、納期などのスケジュールや誰が何を担当するかなどの体制、納品方法などに関しても明確に決定しておきましょう。
設計
設計の工程は細かく分けて3つの作業に分類することができます。最初はデザインやインターフェースを決める「外部設計」に約2週間~1ヶ月程度かかります。プロジェクトや企業によっては概要設計とも呼ばれるものです。
システム完成後の使いやすさや見やすさに影響を与える作業なので、事前にどのような画面に仕上げていきたいかを伝えておくことが大切です。
外部設計の完了後は「内部設計」に移りますが、ここからはプログラムの内部構造を細かく設計していく段階なので詳細設計とも呼ばれています。
この工程まで進むと、依頼側から指示を出せる作業はほとんどありません。
内部設計では「プログラム設計」も行います。各プログラムで必要となる処理手順を具体的に決めていき、次の工程へ移行します。
プログラミング
本格的な実装に向けて、1ヶ月~2ヶ月程度のプログラミング作業が行われます。
先述したプログラム設計に基づいて、プログラマーがコーディングを行う工程です。必要なプログラミング言語を用いて実施される専門分野なので、この期間も特に依頼側は関与することはありません。
テスト・納品
プログラミングが完了すると、実際の運用に向けてさまざまなテストが行われます。はじめに、
ひとつずつのプログラムをテストして不具合がないか確認する「単体テスト」が、2週間~1ヶ月程度実施されます。次に、プログラム同士の連携ができているかを確認する「結合テスト」が2週間程度行われ、複数のプログラムを一連の動きとして見ていきます。
それぞれの動作チェックが終われば、そこから1週間程度は実際の使用環境に近い条件で「システムテスト」が実施されます。
複数のテストが行われた後に、
最終段階としてクライアントの作業環境で正常に動作するかを確認する「運用テスト」が1週間程度行われます。運用テストでは、使いやすさやデザインなどに関しても再度確認しておかなければなりません。
すべてのテストをクリアすると、いよいよシステム移行が行われて納品になります。
その後も、システムに関して問題がないか動作の確認を続け、アップデートの実行を経て、運用、保守の工程に移ります。
今回紹介したシステム開発の期間は、システムの規模や会社によって異なります。期間のことだけでなく、より細かな情報を知ってから依頼先を決めたい方は、ぜひ「ReadyCrew(レディクル)」までご相談ください。