社内外のエンジニアがプロジェクトに参画して、分担しながら作業を進めるシステム開発。
システム開発を進める上で欠かせないのが、作業の流れを意味するシステム開発工程です。
当記事ではITエンジニアを200名以上抱え、日々エンジニアの工程管理を25年経験してきて効率化し、工程管理ツールを開発・運用している弊社、DXサービス事業推進部 佐々木舞美が各工程を18工程に分類し、実務者がそれぞれの意味や役割について解説します。
システム開発に関わる開発モデルも紹介しているので、「自分の業務しかわからない」「各工程を理解して業務を円滑に進めたい」という方は参考にしてください。
記事の最後に、システム開発において生産性向上や短納期化を実現する、おすすめの管理ツールを紹介します。

詳細は弊社コーポレートサイトをご確認ください

システム開発工程とは

システム開発工程とは

システム開発工程とはシステム開発における、決められた手順のことです。
システム開発では、この工程(流れ)に沿ってシステム開発を進めていきます。
工程は要件定義やシステム設計などが上流工程、プログラミングや単体テストなどが下流工程に分類されるのが特徴です。

工程に沿って作業することで計画通りにプロジェクトを進められますし、工程を分けることで進捗や品質を把握しやすくなるというメリットがあります。

システム開発工程の18フェーズと略書

システム開発工程の18フェーズと略書

ここではシステム開発工程における18フェーズを一覧にまとめ、略語の意味や内容を説明しています。
システム開発の現場でスムーズにコミュニケーションが取れるようになるので、理解を深めておくと安心です。

【SP】システム企画

システムの計画から導入までを担う仕事です。
システム企画ではシステム開発の目的や概要などを決めますが、ベンダーが行うことも多いです。

【SA】要件分析

クライアントと意見交換して、どんなシステムを求めているかをまとめる工程になります。
例えば「契約書類をペーパーレス化して保管コストを抑えたい」というように定義します。

【RD】要件定義

要件分析で定義した内容をどの開発モデルで実現するかや、予算、開発期間などを取り決めます。
要件定義は開発工程における最上流工程であり、システム開発における最重要フェーズです。

【UI】UI基本設計

UIはユーザーインターフェース(User Interface)の略語で、製品・サービスを利用するユーザーとの接点を意味します。
製品・サービスを開発する際は、アイコンや画面レイアウトなどの使いやすさを考慮して作業を進めることになります。

【ED】外部設計

ユーザーが操作する部分に関わる設計のことです。
基本設計(BD)と同じ意味で使われることもあります。

【DD】詳細設計

基本設計の内部構成を、より細かく設計することです。
実際にシステム開発工程では、詳細設計を基にプログラミングを進めていきます。

【ID】内部設計

システム内部の動作やデータなど、ユーザーから見えにくい部分を決めるフェーズです。
詳細設計とほぼ同義で使われることもあります。

【SS】構造設計

システムの構造部分をプログラミングできるように分解して、詳細を決めるフェーズです。

【FD】機能設計

システムの機能ごとに、仕様を定義するフェーズです。
機能設計は外部設計か内部設計のどちらかに含まれます。

【PD/PS】プログラム設計

機能を実装する直前に、プログラムでどのような動作や処理を行うかを定義します。

【PG】プログラミング

プログラミングは実際にプログラムを作成するプロセスです。
学校の授業や講習会など、教育を受ける機会は増えています。

【CD】コーディング

コーディングはシステムが動くように実際にプログラム言語を書いたり、ユーザーが見る画像や文字に装飾を施す作業です。

【UT】単体テスト

各機能が正しく動作するか確認するフェーズで、システム開発工程における最初のテストとなります。
ここで丁寧にエラーを修正することで、その後のテストで起こりうる修正の負担を軽減できます。

【IT】結合テスト

複数のプログラムを組み合わせた状態で、問題なく動作するかチェックします。

【PT】総合テスト

システムが全体を通して正常に動作するか、要件定義で定義した通りに動作するかを確認するフェーズです。
同時に、アクセス過多な状態でも耐久性や処理速度に問題ないかもチェックします。

【ST】システムテスト

システムテストは総合テストと同様の流れで行います。
不具合を解消して、プログラムの一連の流れがスムーズに動作するか確認します。

【OT】運用テスト

運用テストはシステム開発工程の最終テストにあたり、システムの完成度に影響する重要なフェーズです。
実際の運用形態に沿ってテストを行い、問題なく動作するかチェックします。
運用テスト後のフローはシステム移行(リリース)、保守・運用となります。

V字モデル

V字モデルとは、開発工程とテスト工程をリンクさせたモデルです。
リンクする関係は以下のようになります。

  • 詳細設定と単体テスト
  • 基本設計と結合テスト
  • 要件定義と総合テスト
  • 要求定義と運用テスト

V字モデルを活用すると「詳細設定を単体テストで確認する」など、テスト内容を明確にして効率良く作業を進められます。

システムの代用的な開発モデル4つ

システムの代用的な開発モデル4つ

アジャイル開発モデル

アジャイルは日本語で「俊敏な」という意味があります。
スピード感をもって工程を進める開発手法で、現在のシステム開発の主流です。
後戻りが前提なため、始めから詳細は決めずに優先度の高い要件から開発を進めていきます。
「企画、開発、テスト、リリース」と細かなサイクルを繰り返すことから、急な仕様変更でも柔軟に対応可能です。

ウォーターフォール開発モデル

ウォーターフォール開発モデルは上流工程から下流工程へと、滝のように流れるイメージで開発を進める手法です。
システム開発工程においてフェーズを一つずつ完了させて進めていくのが特徴で、進捗を把握しやすいメリットがあります。
前のフェーズが完了しないと次のフェーズに進めないため、スピード感を求められるプロジェクトには不向きです。

スパイラル・モデル

サブシステム(システムを細分化したもの)ごとに開発を進める手法です。
サブシステムはウォーターフォール開発モデルを基にシステム開発を進めるため、進捗確認や動作確認がしやすいです。
デメリットとして、サブシステムが増えすぎると開発コストが上昇することが挙げられます

プロトタイプ型モデル

プロトタイプは日本語で「試作品」を意味します。
開発の早い段階からシステムの試作品を作成し、クライアントのフィードバックに対して構築を行う開発手法です。
システムの完成イメージを早くから掴めますが、試作品の開発にコストがかかるため大規模なシステム開発には不向きといえます。

システム開発の工程管理にはクラウドサービスがおすすめ

システム開発でリアルタイムに進捗確認やアサイン調整を行いたい場合は「クラウドツール」の利用がおすすめです。
システム開発においてプロジェクトを成功に導くには、品質・コスト・デリバリーの最適化が欠かせません。
システム開発ではフェーズの一つひとつに社内外のエンジニアやコストを割り当て、短納期を意識しながら業務を進めます。
そのため、各工程にはスキルや業務経験などから考慮した、適材適所の人員配置が重要です。
クラウドツールは最新のエンジニア情報やプロジェクト進捗、空き要員などを見える化して、メンバーを増員したりタスクを入れ替えたりできます。
クラウドツールでエンジニアのスキル管理・アサイン管理を一元管理して、効率よくシステム開発工程を進めてください。

【無料あり】工数入力・管理におすすめのクラウドサービス『fapi』

スキル管理・アサイン管理支援ツールfapi 紹介動画

『fapi』はIT業界やソフトウェア業界に特化した、スキル管理・アサイン管理ツールです。
エンジニアの保有スキルや業務経験、アサイン状況などを基に、システム開発における最適な人員を選出できます。
エンジニアのスキル管理を想定したシステム構成で、管理項目は導入企業で自由に設定を変更できます。
fapiを活用すると、例えば「JavaとC言語のスキルレベルが5のエンジニアAさんを流れの悪いコーディングBに配置しよう」と、柔軟に対応できます。
また、エンジニア情報は部門をまたいで横断検索できるため、エクセルでの管理と違って工数の削減が可能です。
最適なアサインで工数の無駄をなくして、生産性の向上および短納期化を実現してください。

アサイン管理ツールfapi

まとめ

今回はシステム開発に関わるすべての人が知っておきたい、18のシステム開発工程と4つの開発モデルを解説しました。
システム開発工程の基本を抑えておけば、今後のプロジェクトやキャリアアップに活かせるはずです。
プロジェクトを効率良く進めるためには、無駄な工数をカットして的確なアサイン管理を行う必要があります。
『fapi』では1ヶ月間の無料トライアルを実施していますので、リアルタイムな情報を基に生産性向上や短納期化を実現したいという方はぜひ試してみてください。