ソフトウェア開発に興味があるが、そもそもソフトウェア開発とは何なのか、システム開発との違いは何かよく理解していない方も多いのではないでしょうか。本記事ではソフトウェア開発の定義、ソフトウェアの種類、必要とされる職種などについて解説します。
ソフトウェア開発を検討している担当者の方は、ぜひ最後までお読みください。
ソフトウェア開発とは?
ソフトウェア開発とはExcelやWord、PowerPointなどのソフトウェアを開発することです。
ソフトウェアとは、パソコンにインストールすることで利用できるプログラムの総称です。OSやミドルウェアなどもソフトウェアの一種で、パソコンはソフトウェアが入っていないと動かしたり、何か実行することができないのです。
ソフトウェアの対義語がハードウェアです。ハードウェアとは、パソコン本体やHDDなど物理的な機器を指します。ソフトウェアとハードウェアが組み合わさり、業務などで使用できるようになったものがシステムと呼ばれています。
ソフトウェア開発とシステム開発の違い
ソフトウェア開発とシステム開発はよく混同されますが、厳密には違う種類のものです。ソフトウェア開発はあくまでソフトウェアを開発する行為を指し、システム開発はハードウェアの開発や用意も含め、業務などの仕組みを改善するための「システム」を開発する作業全般を指します。
システム開発はソフトウェアを開発するだけでなく、仕事の仕方も含めて「システム」を構築します。つまり、ソフトウェア開発はシステム開発の一部ということです。
ソフトウェア開発の基本工程
ソフトウェア開発はあらかじめ決められたフォーマットに基づいて行われることがほとんどです。要件定義からはじまり、設計、開発、テスト、リリースと進んでいきます。
工程に沿ってソフトウェア開発を行うことで、スケジュールを立てやすくなったり、チーム間の意思疎通がしやすくなったりするメリットがあります。
ソフトウェア開発の基本工程に関しては次の記事で詳しく解説しているため、併せてお読みいただくとより知識が深まるのではないかと思います。
※関連記事
ソフトウェア開発の基本的な工程・開発手法について解説!
ソフトウェア開発の種類
一口にソフトウェア開発といってもさまざまな種類があります。ソフトウェア開発のなかでも代表的なものを3つ挙げます。
-
- Webシステムソフト
- アプリケーションソフト
- 組み込みソフト
1つ1つの種類について詳しく解説していきます。
1.Webシステムソフト
WebシステムソフトとはGmailなどのメールソフトやDropboxなどのデータ共有サービスなど、インターネットに接続することで動くソフトウェア全般のことを言います。
これらはSaaS(Software as a Service)と呼ばれることもあり、さまざまな企業がシステムをサービスとして提供しているのです。
※関連記事
オンプレミスとSaaSの違いは?その種類やメリット、デメリットを徹底的に解説
Webシステムの中にはGmailのように一般ユーザー向けのものもありますが、サイボウズ製品など法人向けシステムも多くあります。
Webシステムはネット環境さえあればどこでも利用できる点がメリットであり、テレワーク普及に伴い需要が増している開発分野と言えるでしょう。
ただしWebシステムの開発では、ネットワークも意識した構築が必要となります。
2.アプリケーションソフト
アプリケーションソフトとは、Excelなどパソコンにインストールして使うソフトウェア全般のことを言います。Webシステムと違い、インターネットに接続されていなくても利用できるのが特徴です。
ソフトウェア開発というとアプリケーションソフト開発を指す場合が多いです。Microsoft社をはじめ多くの企業がアプリケーションソフト開発を行っています。
ユーザーの目的に沿った効果的なアプリにしなければいけないのはもちろんのこと、ユーザー満足度を上げるために、ソフトウェア製品同士の連携がスムーズに行えるようにする必要があります。
3.組み込みソフト
組み込みソフトとは家電製品やカーナビなどに組み込まれるソフトウェアのことです。
家電製品などには小さなコンピュータが組み込まれており、プログラムの制御をそのなかのソフトが行っています。
組み込みソフトはリアルタイムで正しく動く必要があり、基本的にはC言語やアセンブラなど処理速度が速い言語を使って開発することが多いです。ただし、それらの言語は習得難易度が高いこともあり、組み込みソフト開発への参入は他よりもハードルが高いです。
※関連記事
【組込み開発とは】基礎知識・トレンド・外注する場合など徹底解説
ソフトウェア開発に関わる職種
続いて、ソフトウェア開発に関わる職種について解説します。ソフトウェア開発を行う場合、次の5つの職種がそれぞれ力を合わせることになります。
-
- プログラマー
- システムエンジニア
- 営業
- インフラエンジニア
- プロジェクトリーダー
1つ1つの職種の詳しい仕事内容について解説していきます。
1.プログラマー
プログラマーはプログラミング言語を使い、ソフトウェアを実際に開発する仕事です。あらかじめ作られた要件定義書類や設計書を参考にし、プログラムのソースコードを記述していきます。
単に設計書通り動くようにするだけでなく、ソフトウェアの使いやすさや処理速度などにも考慮してソースコードを記述します。
また、プログラマーは開発だけでなくその後のテストやソフトウェアの運用・保守も担当することが多いです。基本的にはソフトウェア開発における下流工程を担当します。
2.システムエンジニア
システムエンジニアはソフトウェアの設計書をまとめる仕事です。ソフトウェア開発を開発会社に依頼する場合、依頼先のシステムエンジニアと打ち合わせを何度か行うでしょう。
システムエンジニアは「こんなシステムを開発したい」「こんな機能が欲しい」など顧客の要望をヒアリングし、ソフトウェアの要件を定義します。その後、要件定義書類を作成し、これで問題がないか顧客に確認を取ります。
要件定義書が完成すれば、ソフトウェアの設計書を作成します。ソフトウェアの操作画面はどのように構築するか、各プログラムの詳細処理はどうするかなどを設計書にまとめます。
完成した設計書はプログラマーに渡し、開発を依頼します。このようにシステムエンジニアは、基本的にソフトウェア開発における上流工程を担当します。
3.営業
営業は顧客に対して自社製品の強みや実績、技術力などをアピールし、契約を獲得する仕事です。
商品やサービスを売り込むというよりは、顧客の経営課題や悩みなどをヒアリングすることに重きを置きます。そして顧客のニーズを的確に捉え、その課題を解決できるソフトウェアの提案を行うのです。
営業にはセールストーク力はもちろんのこと、自社製品の仕組みや、技術力について解説できる必要があるため、一般的な営業職よりもIT技術に精通していることが求められます。
4.インフラエンジニア
インフラエンジニアはネットワークやサーバーといった、ソフトウェアのインフラ部分の開発や運用・保守を担当する職種です。
インフラエンジニアは、Webシステムや業務システムが安定稼働するためのインフラを構築します。また、アクセス過多によるサーバーダウンなどの障害が発生した場合は、即座にトラブル解決へと動き出し、顧客が被る被害を最小限に食い止める必要もあります。
5.プロジェクトリーダー
プロジェクトリーダーはソフトウェア開発のプロジェクトをとりまとめる仕事です。プロジェクトマネージャー(PM)と呼ばれることもあります。
プロジェクトリーダーは、開始時にプロジェクトメンバーの選定を行ったり、顧客とのミーティングでファシリテーションを担当したりとプロジェクトを成功に導くことを任された職種です。
また、各エンジニアに対して作業を割り振り、具体的な指示を出します。プロジェクト開始後は各エンジニアの進捗管理を行い、予定通り進んでいるかチェックしたり、遅れていればリカバリーのために動いたりします。
プロジェクトリーダーはまさにソフトウェア開発におけるリーダーであり、ソフトウェアの品質を左右する重要なポジションと言えるでしょう。
ソフトウェア開発会社が抱えている課題
続いて、ソフトウェア開発会社が抱えている課題について解説します。ソフトウェア開発会社は次の2つの課題を持っていることが多いです。
-
- IT人材の不足
- プロジェクトの進め方
開発会社を選定する際は、これら2つの課題に対してどう向き合っているかも観察すると、優れた開発実績を持つ企業かどうか判別しやすくなるでしょう。1つ1つの課題について詳しく解説していきます。
1.IT人材の不足
今、日本ではIT人材の不足が問題となっており、ソフトウェア業界でも例外ではありません。ソフトウェア開発にはプログラマーやシステムエンジニア、インフラエンジニアなど多くのIT人材が必要ですが、人材の確保に苦労している開発企業も多くあります。
人材が不足している場合、他の企業に開発の一部を外注する手もありますが、外注コストがかかってしまう問題があります。
反対にIT人材不足の中でも優秀な人材を多く確保できている企業は、ソフトウェア開発企業として魅力的であると言えるでしょう。
2.プロジェクトの進め方
プロジェクトの進め方に関して試行錯誤している企業が多くあります。
ソフトウェア開発は、長期間になることが多く、工数管理が重要となります。誰がどの作業を行っており、どの程度の期間がかかるか、プロジェクトリーダーはしっかり把握していないといけません。
ただ、開発を外注したり、複数プロジェクトを同時進行したりすると、プロジェクト管理が煩雑になりがちです。くわえて、ソフトウェア開発では、顧客から仕様変更を求められるケースも多く、スケジュール変更を度々行わなくてはいけない場合があります。
開発企業によっては、ウォーターフォールではなくアジャイル開発を導入するなど、進め方を工夫している場合もあります。開発を依頼する場合は、どのようなプロジェクトの進め方を行っているかを訊ねてみると良いでしょう。
ソフトウェア開発会社を選ぶ際に見るべきポイント
最後に、ソフトウェア開発会社を選ぶ際に見るべきポイントをまとめました。ソフトウェア開発会社を選ぶ際は次の3つに着目すると良いです。
-
- コミュニケーション力
- 実績・スキル
- 費用とサービスのバランス
1つ1つの見るべきポイントについて詳しく解説していきます。
1.コミュニケーション力
1つ目はコミュニケーション力です。窓口担当者のコミュニケーション力が高いかどうかは重要なポイントです。
担当者のコミュニケーション能力が低いと、こちらが要望を提示しても、その通りに開発してくれなかったり、打ち合わせに時間がかかりすぎてしまったりする可能性があります。
話をしてみた結果、問題がなさそうだと判断した場合のみ契約するのが良いでしょう。
2.実績・スキル
2つ目は実績・スキルです。
ソフトウェア開発会社のホームページには、これまでどのようなソフトウェアの開発に携わってきたのか、実績がまとめられていることが多いです。
ソフトウェア会社によってWebシステムに強かったり、アプリケーションソフトに強かったり、得意分野は異なるので、自社のニーズにマッチした企業を選定することが重要です。
3.費用とサービスのバランス
3つ目は費用とサービスのバランスです。
ソフトウェア開発を依頼する場合、複数の開発企業が提示する費用を比較することが大切です。
開発費用をおさえたいなら、最も低価格である企業を選びたいと考えてしまいますが、契約書類も確認し、サービス内容が費用に見合っているかまで加味した上で選定したいところです。
どの程度までなら開発費用をかけても良いのか、ある程度妥協ラインを決めておくことも大切です。
最後に
この記事で説明してきた内容をまとめると以下のとおりです。
-
- ソフトウェア開発の種類:Webシステムソフト/アプリケーションソフト/組み込みソフト
- ソフトウェア開発に関わる職種:プログラマー/システムエンジニア/営業/インフラエンジニア/プロジェクトリーダー
- ソフトウェア開発会社を選ぶ際に見るべきポイント:コミュニケーション力/実績・スキル/費用とサービスのバランス
ソフトウェア開発を外注する際は、開発企業の実績や担当者窓口のコミュニケーションスキルなどから、自社のニーズに沿ったソフトウェアを開発してくれるか判断することが大切です。
どの開発企業を選ぶべきかわからない場合、株式会社エイチビーラボにご相談ください。
株式会社エイチビーラボでは、ベトナムに特化したオフショア開発サービスを提供しております。お客様のニーズに沿ったソフトウェア開発には豊富な実績があります。ソフトウェア開発でお困りの方は、ぜひお気軽にお問い合わせください。ご相談から、開発、運用まで親身にサポートいたします。