システム開発とは?工程、種類、収入、人気ランキングまで解説!



システム開発とは、従来の業務をより効率的にしたり、新しいサービスや業務を実現するために、プログラムを組んでシステムを構築することです。

身近で誰もが知っているシステム開発例としては、交通系ICカードのSuica、コンビニエンスストアで使われているPOSシステム、ECサイトのAmazonなどがあります。

システム開発を理解する上で重要なのは、システム開発の工程、システム開発の種類、システム開発の働き方を正確に把握することです。

本記事では、一読すればシステム開発の全体像が簡単に把握できるように解説しました。ご活用頂ければ、幸いです。

 

 

【目次】
1. システム開発とは
2. システム開発の4つのスタイル
2.1. ウォ―ターフォール型開発
2.2. アジャイル開発
2.3. プロトタイピング開発
2.4. スパイラルモデル
3.システム開発の流れ
3.1. 要件分析/要件定義
3.2. 外部設計(基本設計)
3.3. 内部設計(詳細設計)
3.4. プログラミング
3.5. テスト(単体テスト、総合テスト、運用テスト)
3.6. リリース
3.7. 運用・サポート
4.各職種と必要スキルと年収
4.1. セールスエンジニア
4.2. プロジェクトマネジャー(PM)
4.3. システムエンジニア(SE)
4.4. プログラマー(PG)
5.システム開発の働き方
6.システム開発に関するQ&A
7.まとめ

 

1. システム開発とは

システム開発の“システム”とは、「いろんな要素が関係し合って、それらが一体化し、機能する系統」のことを指します。

実際には、ハードウェアとソフトウェアの組み合わせを指すことが多く、人事管理システム、顧客管理システム、物流管理システムなど様々なシステムの形態があります。

システム開発に関わる職種としては、プロジェクトマネジャー(PM)、システムエンジニア(SE)、プログラマー(PG)などがあります。

 

 

2. システム開発の4つのスタイル

システム開発には、大きく4つのスタイルがあります。それぞれメリットとデメリットがあるので、ここではそれらを整理します。

2.1. ウォ―ターフォール型開発
ウォ―ターフォール型開発は、一番メジャーな開発手法です。「要件定義」から始まり、「リリース」まで時系列で作業を進めていきます。各工程が完了し承認されないと、次の工程には進みません。各工程ごとに成果物を残していく手法が、ウォーターフォール型開発です。

【メリット】
・メジャーな手法のため、プロジェクトに関わる人間に一から説明する必要がない
・この手法を経験している人材が多く、プロジェクトマーネジャーを確保しやすい
・各工程ごとに区切り、承認後に次の工程に進むため、工程ごとの成果物が確実に残り、進捗管理しやすい
【デメリット】
・想定外のニーズにより手戻りが発生した場合、予算超過や納期ずれにつながりやすい

 

2.2. アジャイル型開発
優先順位の高い部分からシステム開発できるのが、アジャイル型開発です。「アジャイル(Agile)」という言葉には、もともと「素早い」「頭の回転が速い」といった意味があり、そういったところから従来と比較して短期間で開発できるこの手法をアジャイル型開発と呼んでいるのです。

【メリット】
・顧客の優先順位の高い部分、もしくは要件が決まった順に開発に着手できる
・構築するシステムの全体像が決定していない状態でも、開発できる
・短期での納品が可能
【デメリット】
・計画性に欠けているため、大規模の開発には向いていない

 

2.3. プロトタイプ型開発
“プロトタイプ”とは、そもそもデモンストレーション用に問題点洗い出しのために設計された原型という意味です。そこからプロトタイプ型開発とは、将来修正することを想定した上でスピーディにシステムを完成させる開発手法です。システムの完成形が明確に決まっていない場合、まずは動作するシステムを構築し、随時修正していくプロトタイプ型開発は便利な手法です。

【メリット】
・システムの完成形が決まっていなくても、早くシステムを構築できる
・システムを作りながら、随時修正を加えることができる
【デメリット】
・そもそも最終形が決まっていないので、計画性に欠ける
・大規模なシステム構築には向いていない

 

2.4. スパイラルモデル
スパイラルモデルは、大規模なシステムの開発においてよく活用される手法です。

【メリット】
・修正ごとに、随時アップデートできる
・顧客の要望を随時取り入れていきながら開発できるので、顧客の満足度が高くなる
【デメリット】
・修正ごとに開発対応を実施するため、コストが膨れるリスクがある

 

 

3. システム開発の流れ

システム開発の流れは、以下になります。

 

 

3.1. 要件分析/要件定義
「顧客がどんなシステムを望んでいるのか」をヒアリングや資料収集を通じて、正確に把握します(要件分析)。顧客の現状とニーズを分析し、課題を設定した上で、課題を解決するためのシステムの全体像(ソフトウェア機能やハードウェア)を設計するのが要件定義です。

3.2. 外部設計(基本設計)
要件定義を文書化した要件定義書を顧客と共有し、開発するシステムの機能を決定します。ここで一番重要なのは、顧客企業のターゲットユーザーの満足度を追求するスタンスです。いくら高機能のシステムを構築しても、ユーザーに使ってもらえなければ、それは無用の長物です。ユーザー目線で、インターフェースデザインや機能の優先順位を設計することが、とても重要なのです。

3.3. 内部設計(詳細設計)
外部設計(基本設計)をベースに、SE(システムエンジニア)がシステム仕様書を作成します。この仕様書はいわば、「外部設計(基本設計)で要求されている動作を実現するために、どのパートはどのようなソースコードで書くべきか」というプログラマーへの指示書的な側面があります。ここでは、開発するシステムの機能実現に必要な構成力とプログラマーが気持ち良くプログラミングできる適切な指示の表現力が求められます。

3.4. プログラミング
SE(システムエンジニア)作成したシステム仕様書に沿って、プログラマーがプログラミングを行います。システム設計書で求められる動作を実現するために、どのようなソースコードを書けば良いのか、そこにプログラマーの腕が問われます。ちなみにクオリティの高いコードの特徴としては、「正確に動作する」「素早く、効率的に動作する」「保守性が高い」「無駄がなく、シンプルである」という点があります。

3.5. テスト(単体テスト、総合テスト、運用テスト)
プログラミングが完成すると、書かれたソースコードが正確に作動するかどうか、SE(システムエンジニア)がテストを実施します。不具合が完全になくなるまで、何回もテストを行い、システムを完成させます。

3.6. リリース
新たに開発したシステムに切り替える作業のことを、リリースといいます。リリースには2種類のスタイルがあり、一気に切り替える一斉移行と順次切り替える順次移行があります。

3.7. 運用・サポート
システム開発は、システム納品後も不具合の修正対応や機能追加対応をする必要があり、それが運用・サポートサービスになります。

 

4. システム開発に関わる職種と必要スキルと年収

システム開発には、様々な職種の人が関わります。それぞれが重要な役割を担当し、スムーズな連携とチームワークが質の高いシステムを構築する背景になります。システム開発にはどんな職種の人が関わるのか、その職種にはどんなスキルが求められるのか、年収はどれぐらいのレベルなのか、詳しく見ていきましょう。

4.1. セールスエンジニア
営業が受注し、顧客企業と最初にコミュニケーションを取るエンジニアが、セールスエンジニアです。営業職と技術職の交わる領域であり、一人二役的な職種ですので非常にヤリガイがあります。高い専門性が要求されるため、エンジニア出身の方が多いです。

◆必要スキル
・顧客のニーズをヒアリングし、システムに落とし込む力
・システムや技術、ソフトウェアについて、顧客にわかりやすく説明する力
・役立つ資格/ITパスポート、基本情報技術者
◆年収
・平均年収650万円前後

 

4.2. プロジェクトマネージャー(PM)
システム開発案件が実際に動き出すと、その統括はプロジェクトマネージャー(PM)が担当します。プロジェクトマネージャーは、プロジェクトの目標達成を意識しながら、“ヒト、モノ、カネ”といわれる人員、設備、予算、スケジュールを管理します。大規模なプロジェクトになると、システムエンジニア(SE)、プログラマー、インフラエンジニア、データベースエンジニア、ネットワークエンジニア、アプリケーションエンジニア、ミドルウェアエンジニアなど、関わるメンバー全員をマネジメントします。

◆必要スキル
・プロジェクトを管理し、スムーズに推進する力
・一緒に働くメンバーと円滑にコミュニケーションできる力
・システム設計書を作成する力
・各種プログラミング言語に関する知識
◆年収
・平均年収670万円前後

 

4.3. システムエンジニア(SE)
システムエンジニア(SE)は、システム開発の上流工程を担当します。具体的には、「要求分析・要件定義」「外部設計(基本設計)」「内部設計(詳細設計)」「テスト」を担当します。システムエンジニアは、システム開発のディレクターを担う重要な仕事です。

◆必要スキル
・顧客の課題をわかりやすく説明でき、またメンバーを上手くまとめるコミュニケーションする力
・システム開発に必要なプログラミング知識
・スケジュール管理等のマネジメント力
◆年収
・平均年収440万円前後

 

4.4. プログラマー(PG)
プログラマーは、システムエンジニア(SE)が作成した仕様書に沿ってコードを書きます。バグがなく、正確に動作するわかりやすいソースコードを書くことが求められます。プログラマーという仕事はITエンジニアの入り口的な存在で、システム開発の実践力を身に付けるには重要なポジションです。

◆必要スキル
・プログラミング言語に関する知識
→フロントエンド開発で使用するプログラミング言語/JavaScript
→iPhoneアプリ開発で使用するプログラミング言語/Swift、Objective-C
→Unityで使用するプログラミング言語/C#
→人工知能・機械学習で使用するプログラミング言語/Python
→ブロックチェーン・仮想通貨で使用するプログラミング言語/Solidity
・わかりやすいプログラミングのコードを書く力
◆年収
・平均年収385万円前後

ちなみに、ITエンジニアの各職種の35歳平均年収は以下になります。

 

5. システム開発の働き方

システム開発の働き方には、自社開発、受託開発、SESの3つのスタイルがあります。それぞれメリット、デメリットがありますので、今の自分にとってどれが最適な働き方かを判断する必要があります。

5‐1. 自社開発
GoogleやAmazon、Facebookなど、みなさん御存知の有名サービスを展開する企業には、多くのITエンジニアが働いています。彼らのシステム開発の働き方は、自社開発です。「こんな機能をつけれないかな」「もっと表示速度を上げたい」といった自社のサービスを進化・発展させるため、各種マーケティングデータを参考に、経営サイドから降りてくるオーダーをこなしています。

【自社開発のメリットとデメリット】
◆メリット
・ユーザーへの価値提供を追求できる
・ユーザーの反応データを把握でき、本質的なサービス向上をしやすい
・スケジュールが比較的調整しやすい
・システム開発途中のトラブル対応にも融通がききやすい
◆デメリット
・人気サービスを展開している企業が多く、入社難易度は高い
・アジャイル開発を採用しているところが多く、慣れていない人には当初戸惑いがある
・サービスリリース=利益とは限らない

5‐2. 受託開発
受託開発とは、企業から「このようなシステムを構築してくれませんか?」と依頼を受けて、システム開発する働き方です。受託開発は請負契約になり、以下の項目を順守する必要があります。

・必ず成果物を完成させる
・瑕疵担保責任がある
・発注側には、指揮命令権はない
・システム検収後に、一括で報酬を支払う

受託開発のメリットとデメリットを、以下に記します。

【受託開発のメリットとデメリット】
◆メリット
・案件のボリュームが多い
・職場が変わらない
◆デメリット
・納期に縛られ、土日返上で働くことも
・元受け企業が利益が上がるが、下請け企業はハードワークの割には利益が少ない
・給料はアップしにくい

5‐3. SES
SESとは、ITの派遣会社を通し、客先常駐で働くスタイルです。プログラマーとしてのスキルがなくてもやる気があれば採用されやすく、ITの現場で経験を積みながらスキルアップを図るチャンスがあります。

【SESのメリットとデメリット】
◆メリット
・入社しやすく、未経験者にも門戸は開かれている
・入社後に研修を受けられる

◆デメリット
・職場は自分で決められず、会社が決定する
・未経験者は、最初はアシスタント的な仕事が多い
・職場が変わるので、スキルを深掘りできないことも多い

 

6. システム開発に関するQ&A

ここでは、システム開発に関する代表的なQ&Aを取り上げたいと思います。

・システム開発の見積もりについて
現在、ECシステムの開発に関わっています。こういったシステムの開発によって、もらえる報酬の相場はいくらぐらいでしょうか。システムの規模によって金額が変わることは理解できますが、どうやってその金額が決まるのかわかりません。

→システム開発の金額計算は、「完成まで何人月かかるか?」という方式になります。例えばSEが4人で5ヶ月かかるのであれば、「4人×5ヶ月」で20人月になります。SE一人あたりの単価を80万円とすると、80万×20人月=1,600万円になります。この場合の報酬は受託料であり、機器の購入、設置費用は別になります。

・システム開発の品質管理に関して
以前勤務していたゲーム会社では、リリース前のバグチェックを完璧にしていました。またターゲットである子供にもテストに参加してもらい、そのゲームのクオリティチェックをしていました。その後親の関係に地元に戻り、小さなシステム会社に転職しました。その会社では、最低限のバグチェックのみでリリースしています。自社サイトの商品紹介文では、完璧に機能するように表記しています。こういったことは、よくあるのでしょうか。

→残念ながら、このような現象はあり得ます。企業の規模に関わらず、「最低限のバグチェックのみ」「審査中に、同時並行でバグ修正版を作成する」という現象はあるのです。その結果消滅するサービスもあれば、アップデートを重ねて生き残るサービスもあります。

・システム開発職(SE)と製品のソフト開発職では、どちらは忙しいのでしょうか
大手メーカーのSEという仕事には、無理のある納期に追われるイメージがあります。一方で、大手メーカーの製品のソフト開発職も同様の状況なのでしょうか。

→システム開発職のSEを業務系SE、製品のソフト開発職を制御系SEとすると、業務系SEの方が忙しいパターンが多いです。その理由は、「業務系SEは人間を相手にするから」です。制御系SEはシステム仕様の変更が少なく、動作確認も容易です。ところが業務SEは相手が人間なので、「よく理解していなかった」「勘違いしていた」「忘れていた」といった現象があり、その度に仕様変が発生するのです。

 

7. まとめ

システム開発に関する知識は、今後ますます重要性が増すと思われます。人生を豊かに生きるためには、IT知識は欠かせません。そのためには、まず全体像を正確に把握し、自分と関わりのある分野はどこか、またそれは他のどの分野と連携しどのような機能を果たしているのかを理解する必要があります。

ITは一旦興味を持って勉強し始めると、非常に奥深い分野です。インターネットが発達した現在では様々なジャンルのナレッジサイトが充実しているので、独学でも知識とスキルをマスターできる環境が整っています。本サイトでも、わかりやすく理解できるコンテンツを拡充していく予定ですので、活用頂ければ幸いです。

 

※参考コンテンツ
【システム開発とは】
システム開発とは?業務内容・年収・スキル・仕事に就く方法まで解説
システム開発とは|業務管理を最適化するトータルサービス7選
【初心者向け】システム開発とは?業務内容~効果的な進め方まで徹底解説

【組み込みシステムとは】
組み込みシステム―Wikipedia
入門向け!組み込み開発のことをわかりやすく解説―FSI Embedded
組み込みシステムとは?|転職Q&A|20代・第二新卒・既卒向け転職エージェントのマイナビジョブ20’s

【ファンクションポイント法とは】
ファンクションポイント法(ふぁんくしょんぽいんとほう)
ファンクションポイント法|IT用語辞典|大塚商会
ファンクションポイント法―Wikipedia

カテゴリー
企画書用語集
おすすめ記事一覧