テレワークも進み、時代の変化も激しい今。システム導入や業務効率化を図る企業も増えています。この記事をご覧の方も、業務改善やシステム開発を検討している方もいらっしゃるのではないでしょうか。
今回は、実際にシステム開発をする際の工程(流れ)について、代表的な開発工程「ウォーターフォール開発」と「アジャイル開発」の2つに焦点をあて、その違いやメリット・デメリットなどを解説します。
また開発の現場で耳にする専門用語もまとめていますので、システム開発・Webシステム開発を検討している方はぜひチェックしてみてください。
関連記事:【開発前チェックリスト付】ソフトウエア・アプリ開発におけるMVP開発ガイドブック
システム開発・Webシステム開発とは、業務効率のための仕組みづくりです。システム開発・Web開発を行う場合の基本的な流れやコストについて見ていきましょう。
システム開発とは、企業が抱える課題解決のための業務の効率化や最適化を目的として、いわゆるIT技術を駆使した仕組みづくりのこと。
設計やプログラミング、テストなど一連の作業を総称したものです。
システム開発の工程は、「要件定義」「設計」「プログラミング」「テスト」「リリース・保守運用」の5段階に分けられます。開発のモデルにより各段階の進め方が異なりますが、計画的にシステム開発をするために原則として開発工程が組まれているのです。
システム開発・Webシステム開発は、効率よく質の良いシステム構築のため、いくつかの工程にわけて作業を行うのが一般的。開発工程をいくつかのフェーズに細分化することで、不具合を回避することができます。
ここでは、一般的によく使われる開発手法「ウォーターフォール開発」の流れをご紹介します。
要件定義とは「発注者側と開発者側の間で合意した納品条件」のこと。
などを明確に言語化したもの。
ウォーターフォール開発では、要件定義に基づき開発が進められるので、この段階で発注者と開発者の相違がないようにすることが大切です。予算や開発期間、開発後の運用・保守についても細かく計画していきます。
要件定義を基にユーザーインターフェース設計(「基本設計書」)を作成する工程。ユーザーインターフェースとは、画面などユーザーから見える外観的な見た目のこと。
ユーザー側の視点で、具体的に搭載すべき機能や特徴を詰めていきます。
外部設計で作成した「基本設計書」を基に「詳細設計書」を作成します。詳細設計書の中身は、具体的な実装を想定したもの。機能仕様書など、発注者側の視点で作成します。
内部設計で作成した詳細設計のもと、システムエンジニアやプログラマーが実際にプログラミングを行う工程。
プログラミング完成後、それぞれのシステムが正しく機能するか否かを確認するためのテスト。
テスト完了後、発注者へシステムを移行。実際に運用できるように「一斉移行」や「順次移行」など内容に応じて選択し実行します。
開発したシステムの特徴を理解し、どのような運用・保守を行うことがベストなのか検討します。
システム開発・Webシステム開発では、自社でのリソースが不足するケースも多いもの。そこで、外注する際に気になるコストについてご紹介します。
開発規模や内容、必要な技術者の人数により異なるので一概にはいえませんが、開発費用の約8割は人件費だといわれています。
一般的にシステム開発・Webシステム開発のコスト計算には「人月」という単位が用いられます。
「人月」とは「システム開発に携わるエンジニア・プログラマー」の人数と「一人当たりに必要な月単位の人件費」を掛けた工数単位。
【人件費の計算方法】プロジェクトに必要な技術者の人数 × 開発にかかる日数 |
例えば、1ヶ月の単価60万円のエンジニアを3人、3ヶ月間動員した場合は「9人月」
(60×3)×3(ヶ月)=540万円
技術者の単価は、記述者の経験値や依頼する開発会社によって大きく異なり、予定よりも開発期間が延びれば、その分費用は上乗せされます。
人件費以外にかかるコストには次のようなものがあります。
外注を検討する際には、人件費はもとより付随する費用についても頭に入れておきましょう。
DeFactoryでは、Webシステム開発における要件定義までであれば最短5営業日で、要件定義〜テストまでのサイクルであれば最短14営業日で行なうことが可能です。経験豊富なエンジニアとマネージャーが支援しますので、システム開発・新規事業開発に不安のある方も安心してお任せいただけます。
問い合わせページから資料請求や無料相談などの申し込みが可能ですので、Webシステム開発や事業立ち上げをご検討中のご担当者様はぜひお気軽にお問い合わせください。
関連記事:Webシステム開発にかかる費用の相場は?コストを最適化してシステム開発を進めよう
システム開発・Webシステム開発では、それぞれ現状の課題やゴールにより実現のための手法はさまざまです。どの手法も概ね、前述した流れをとります。
ただし、コストや開発期間・開発規模により手法が異なるのでどのような開発手法があるのか大まかに理解しておくとよいでしょう。
前述のようにシステム開発にはいくつか種類がありますが、ここではウォーターフォール開発についてご紹介します。
ウォーターフォール開発におけるメリット・デメリットを簡単にまとめました。
メリット | デメリット |
・予算が立てやすい・納期の見通しが立てやすい・大きな問題が生じにくい | ・仕様変更やイレギュラー対応が難しい・リリースまでに時間がかかる |
ウォーターフォール開発は従来からの主要な開発手法。上流の「要件定義」から下流の「テスト」工程まで流れる滝のように順次移行していく開発手法。
基本的に工程を飛ばして作業することはなく、順に作業をするため進捗管理がしやすく一定の品質を担保できる点がメリットです。
一方で、プロジェクトの流れや工程が全て決定しているので、途中の仕様変更対応が難しく、1つの工程が終わらないと次に進めないため、成果物の確認までに時間がかかる点がデメリットです。
製品のリリースまで時間がかかるため、完成物が明確に定まっている、あるいは開発までに時間を要する比較的大きな規模のプロジェクトに向いています。
アジャイルは「すばやい・機敏な」という意味をもつ単語。ウォーターフォール開発では、全ての仕様を設計してから開発に進みますが、アジャイル開発では最初に全てが決まっているわけではなく、大まかな方向性だけを決めて開発にとりかかります。
アジャイル開発の主なメリット・デメリットは下記のとおりです。
メリット | デメリット |
・納期が早い・変更にも柔軟に対応できる・顧客のニーズに対応しやすい | ・当初のコンセプトと完成物に違いが生じることも・対応できる開発会社が少ない・開発者側の人材確保が難しい |
アジャイル開発は、小さな単位で開発していくスタイル。リリースまでの期間が短く、急な仕様変更やユーザーからの要求に対応できる点が最も大きなメリットです。
一方で開発途中でシステムの方向性を見失うというリスクが伴います。また、全体を小さな作業単位に分割して開発するので、全体の把握やスケジュール管理が難しいという点がデメリットです。
関連記事:アジャイル開発における最大のメリットとは?初心者が知っておきたい成功事例も合わせて解説
リリースまでの期間が短い、完成品のイメージがまだ定まっていない、あるいは変更を伴うことがわかっている小規模のプロジェクトに向いています。短期間で開発可能なシステムが必要なケースや単純な機能の実装であれば、柔軟性のあるアジャイル開発の方が向いているといえます。
ウォーターフォール開発は要件定義をしっかり行い、工程の順に機能を実装していきます。基本的には手戻りがないよう、最初の要件定義の段階でしっかり設計しますが、どうしても手戻りが発生する場合も。
その場合は、上流工程の作業が増え、下流工程の作業がとまります。手戻りの間も人件費はかかるのでコストが膨らんでしまう恐れもあります。
一方、アジャイル型開発は、大まかな方向性だけを決めて最低限必要なものを実装していく開発手法。そのため、アジャイル開発の方がコストを抑えやすいといえます。
仕様変更や機能の追加・修正など仮に手戻りが発生しても、機能単位での手戻りなので、システム全体には影響しません。
大きなプロジェクトほど手戻りが発生しやすいもの。アジャイル開発であれば、手戻りが発生したとしても、大きな痛手ににならないことはメリットのひとつです。
DeFactoryでは、自社でアジャイル開発をしたことがあるマネージャーがプロジェクトの管理を行います。クオリティを担保させつつも、納期をしっかり守るアジャイル開発を得意としていますので、スケジュールやプロジェクト管理に不安がある方でも、安心してお任せいただけます。
関連記事:アジャイル開発とは?メリット・デメリットやプロセス手法も合わせて解説!
ウォーターフォール開発やアジャイル開発の手法以外にもさまざまな手法があります。ここでは、今後注目されるであろう手法も含め、3つの手法をご紹介します。
スパイラルは「らせん」という意味をもつ単語。スパイラルモデルはアジャイル開発と同じく、システムをいくつかの単位に分けて開発します。
各単位で要件定義・設計・開発・テスト・評価というサイクルを繰り返し、システム全体をらせんを描くように完成度を上げていく開発手法です。テスト後のフィードバックを基に次のシステムへと以降、これを繰り返して完成まで品質を高めていきます。
システム開発・Webシステム開発の早い段階で、プロトタイプ(試作品)を作成する開発手法。システムのユーザーと一緒にレビューするので、早い段階で認識のズレを解消できる点がメリットです。
ただし、プロトタイプの作成には時間とコストがかかるため、デメリットになりうる可能性があります。
デブオプスと呼ばれる開発手法で、開発担当者と運用者が連携して開発する手法。比較的新しい開発手法です。
テストを終えたシステムを開発チームがリリース、その後、運用チームがシステムの運用・保守等を行います。
それぞれ役割は異なりますが、システムを通じてビジネスの価値を高めるという点については同じです。
デブオプスの目的は、アプリケーションのコードを作成するソフトウェア開発(Dev)と捕手を行うIT(Ops)のギャップを埋めること。
アジャイル開発で課題となるソフトウェアの迅速なテストと実稼働の懸念を払拭すべく、発案から製品・サービスの提供に至るまでのフロー全体を最適化することで、より大きなビジネス価値を迅速に得ることを目指しています。
関連記事:MVP開発とは?新規事業開発に適している3つの理由と開発成功のポイント
システム開発・Web開発の現場では多くの専門用語・略語が用いられます。代表的な用語を覚えておくことでスムーズなコミュニケーションにつながります。
以下、簡単に代表的な用語(略語)をまとめましたので、参考にしてみてください。
工程 | 略語 | 英語表記 |
企画 | SP | System Planning |
要件定義 | RD | Requirement Definition |
要求分析 | SA | System Analysis / System Analyze |
基本設計 | UI | Basic Design |
コーディング | CD | Coding |
詳細設計 | DD | Detail Design |
外部設計 | ED | External Design |
機能設計 | FD | Function Design |
内部設計 | ID | Internal Design |
結合テスト | IT | Integration Test |
総合テスト | PT | Product Test |
システムテスト | ST | System Test |
運用テスト | OT | Operations Test |
単体テスト | UT | Unit Test |
プログラム設計 | PD/PS | Program Design / Program Structure Design |
プログラミング | PG | Program / Programing |
プログラム(構造)設計 | PS / PD | Program Structure Design |
システム開発の流れについて、主な開発手法であるウォーターフォール開発を中心に、アジャイル開発にも触れてきました。
多くの企業が、業務効率を上げるためのシステム開発や売上アップのためのWebシステム開発を試みています。
自分たちは開発によってどのような目的を達成したいのか、実現したいことは何なのかを明確にするところからはじめてみるとよいのではないでしょうか。
DeFactoryでは、アイディア着想、ユーザーヒアリング、テストマーケティング、アジャイル・MVP開発と、プロダクト開発における立ち上げ支援を全力サポートいたします。
また、経験豊富なエンジニアと事業開発経験者で、開発だけでなく事業設計から「一気通貫」した伴走を行います。
事業開発や立ち上げを検討しているご担当者様がいらっしゃいましたら、問い合わせページから資料請求や無料相談などお気軽にご連絡くださいませ。
【DeFactoryの3つの特徴】
・最短14営業日程度で納品
・事業構築力、スピード、高品質を実現する体制
・キャンペーンにより事業構想フォローを無料実施