「ソフトウェア開発」という言葉を聞くと、ITに精通している人を除けば「ちょっと難しそう」という疑問を抱く方も多いのではないでしょうか。
ここではソフトウェア開発を検討する企業担当者の方に向けて、ソフトウェア開発の意味や種類、開発の流れ、システム開発との違い、外注先の選び方などを解説しています。
目次
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
ソフトウェア開発とは
種類 | 意味 |
---|---|
ソフトウェア | コンピューター上で動作するプログラム、目に見えないもの |
ハードウェア | コンピューターを構成する機器、目に見える物理的なもの |
そもそもソフトウェアとは、「コンピューター上で動作するプログラム」を指す言葉です。表計算ソフトの草分け的存在である「Excel」や、文章作成ソフトとして馴染み深い「Word」など、世界的に使用されるソフトウェアは数多く存在します。分かりやすく言えば、この「ソフトウェアを設計開発してリリースする」のが、ソフトウェア開発なのです。ほかにも、アプリケーションやゲームソフト、OS(オペレーティングシステム)の開発なども、広義で言えばソフトウェアに開発に該当します。
このソフトウェアに対し、サーバーやディスプレイ、プリンターといった機器のことをハードウェアと呼びます。それぞれの違いとして「目に見えないものがソフトウェア」、「目に見える物理的な存在がハードウェア」という認識で覚えても良いでしょう。違いを理解しておけば、開発におけるコミュニケーションの齟齬も発生しにくくなります。ちなみに、ソフトウェアとハードウェアを体系的に組み合わせ、使用できる状態にしたものを「システム」と総称します。
ソフトウェア開発の種類は?
ソフトウェア開発は「開発するもの」に応じて、以下の3種類に分けられます。具体的な開発方法を学ぶ前に、基礎知識の理解を深めるため、それぞれの特徴を覚えておきましょう。
●Webシステムソフトウェア
Webシステムソフトウェアとは、その名の通り、Webブラウザ上で動くソフトウェアのことです。代表例として、Googleがリリースするメールサービスの「G-Mail」や、データ共有システムとして知られる「Dropbox」などが該当します。パソコンやスマートフォンなどの影響を受けず、インターネット環境があれば利用できる手軽さが、Webシステムソフトウェアの魅力です。ネット上で動かす特徴がある分、開発には通信技術に精通したエンジニアが必要となることもあります。
●アプリケーションソフトウェア
アプリケーションソフトウェアとは、特定目的に応じてプログラムを作成したソフトウェアを指します。表計算や画像編集、メール、プレゼンテーションソフトなど、ユーザーが行いたい作業をスムーズに実行するために特化されたソフトウェアです。特定の機能だけを搭載したソフトウェアのほか、複数の機能を組み合わせて構成されたソフトウェアなども多く、規模に応じて開発期間や費用が変化しやすくなっています。
●組み込みシステム
組み込みシステムは、スマートフォンや家電、ロボット、機械に組み込まれたコンピューターシステムのことです。Webシステムソフトウェアやアプリケーションソフトウェアのように、用途に合わせて機能を使い分けるというよりは、ひとつの機器の機能に特化したシステムを組み込むことを言います。例えば、洗濯機に「洗濯機能」と「乾燥機能」をつけるといったイメージです。機器を制御するという特性上、組み込みシステムの開発にはハードウェアに精通したエンジニアが欠かせません。
ソフトウェア開発に関わる職業
ソフトウェア開発に関わる職業と聞くと、エンジニアやプログラマーなどを思い浮かべる方も少なくありませんが、実際は「営業担当者」なども開発に携わります。これは、製品としてリリースされるまでのすべてのプロセスが「ソフトウェア開発」に含まれるためです。以下では、各関係者が行う具体的な業務を紹介します。
●エンジニア
ソフトウェア開発に携わるエンジニアは、「ソフトウェアエンジニア」とも呼ばれます。ソフトウェアエンジニアの仕事は、PCやスマートフォンで動くアプリケーションの開発方針を決めることです。自動車や家電に使用されているソフトウェアの開発にもソフトウェアエンジニアが関わっています。
一般的に「エンジニア」というとシステムエンジニア(SE)を思い浮かべる方も少なくありませんが、システムエンジニアとソフトウェアエンジニアでは関係する工程が厳密には異なります。端的に言えば、システムエンジニアは「システム全体の要件定義や設計を行うこと」が多くなっています。ソフトウェアエンジニアよりも、上流の工程を作業するのがシステムエンジニアなのです。
●プログラマー
プログラマーの主な仕事は、ソフトウェアのプログラミングをすることです。仕様通りにソフトウェアが動くよう、様々なプログラミング言語やフレームワークを使って、ソフトウェアを完成させます。エンジニアがソフトウェアの設計部分を担うのに対し、実際の開発を担うのがプログラマーなのです。
とはいえ、企業によっては「ソフトウェアエンジニアがプログラミングを担う」というケースも少なくありません。反対に、プログラマーがソフトウェアの開発方針を決める場合も多く、エンジニアとプログラマーの担当領域は曖昧となっています。以上の点を踏まえれば、「プログラマーはプログラミングスキルを持っている人」という認識でも良いでしょう。
●営業
ソフトウェア開発において、営業担当者が関わるのは「受託開発」や「パッケージ営業」の段階です。
受託開発では、営業担当が依頼者に「どんなソフトウェアが必要なのか」をヒアリングした上で、エンジニアやプログラマーが開発を行います。いわば、受託開発における営業とは「依頼者とエンジニアたちとの間を繋ぐ存在」です。開発工程に関する専門的な知識と、それを噛み砕いて依頼者に説明するスキルが求められます。
受託開発に対してパッケージ営業は、パッケージソフトを売るための営業を行います。こちらの方が一般的な「営業職」のイメージに近いかもしれません。自社商材の性能や魅力をしっかりと把握して顧客に伝えるという「営業スキル」が求められます。
ソフトウェア開発における「マーケティング」とは
関わる職業からも分かる通り、ソフトウェア開発はプログラミングの知識を活かして組み立てる工学的な面と、ユーザーのニーズを考慮しながら製品としてのデザインや販路を考えるマーケティング的な面があります。
工学的な側面はエンジニアやプログラマーが、マーケティング的な側面は営業担当者(またはマーケッター)が担当するのが一般的です。両方の知識や経験を兼ね揃えた人材が「プロダクトマネージャー」、「プロジェクトマネージャー」として開発全体を取り仕切るケースもあります。
ソフトウェア開発で起こりがちなのが工学面の担当者とマーケティング面の担当者との間のコミュニケーションの食い違いです。お互いの仕事の内容に対する無理解からトラブルが生じ、開発全体の流れがストップしてしまうこともあります。このようなケースを防ぐためには、プロジェクト全体をマネジメントの観点から推進してくれるマネージャーが必要となるのです。
ソフトウェア開発の主な流れ
ソフトウェア開発の主な流れ |
---|
1.要件定義 |
2.開発 |
3.ユーザテスト |
4.リリース |
5.運用・保守 |
ソフトウェア開発は、営業担当者が「お客様がどこに困っているか」といった課題の洗い出すことから始まります。
課題が見えてきたら、解決に向けたソフトウェア開発の企画がスタートするのです。開発内容だけでなく、予算・運用時期の相談を何度もやり取りしていく大事な作業です。お客様が企画と予算に納得できれば、実際に契約を行い、以下の工程を経てソフトウェアが完成します。
1.要件定義
要件定義とは、端的に言えばシステム化する業務や必要な性能をはっきりさせる作業のことです。システム開発の明確化が目的ですが、開発側とお客様側で役割を見える化により、齟齬が出ない状態を作る役目も担っています。
2.開発
設計書にある内容をもとに、プログラミング言語を使ってプログラムを設計します。システムの規模によって、導入されるエンジニアの数も変動します。エンジニアやプログラマー同士で、設計書通りになっているかやり取りをしながら、慎重に作業を進めていきます。
3.ユーザテスト
ソフトウェア開発の作業が終わったら、設計書通りに動くかのテストを実行します。単体テスト、統合テスト、システムテスト、運用テストなどを、いつでも正常に動く確認をし、不具合があれば都度修正を実施。すべてのテストでエラーなく動作するとテスト終了になります。
4.リリース
ソフトウェアに問題ないと確認できたらお客様へ納品。このとき、システムの運用をまとめたマニュアルも一緒に送ります。もし、お客様側でソフトウェアの使い方に不安があるようなら、操作説明に関する研修を行う場合もあります。
5.運用・保守
運用中に、システムに何らかのトラブルが発生した場合の対処も開発者側の大切な業務です。また、「お客様が新しい機能を追加したい」と要望があった場合も、対処していきます。
おおまかな流れとしては上記の通りになりますが、ソフトウェア開発は案件によっては「開発の進め方が異なる」のが特徴です。順番通りに工程を経て開発する「ウォーターフォール型」や、必要に応じて前工程に戻る「アジャイル型」などを使い分けてソフトウェア開発が行われます。
ソフトウェア開発とシステム開発の違いは?
開発の流れを紹介したところで、ソフトウェア開発としばしば混同される「システム開発」についても触れておきましょう。システム開発は、一言でいうなら「業務の仕組みを改善するためのシステムを開発する仕事」です。例を挙げれば、コンビニやスーパーで使用されるレジのシステムをより効率的に構築するのがシステム開発にあたります。
これに対してソフトウェア開発とは、WordやExcelなどのソフトウェアの中身(プログラム)を開発する仕事のことです。ソフトウェア開発は機器の中身を改善することで、システム開発は機器の中身も人の仕事の仕方も含めたより広い意味での改善と捉えると良いでしょう。
システム開発の中にソフトウェア開発が含まれることもありますが、これはシステム開発の方がソフトウェア開発よりも広い意味を持つためです。
ソフトウェア開発ができる外注先の選び方は
ソフトウェア開発会社選びで失敗しないために、大切なポイントは複数の見積もりを取ることです。
ソフトウェア開発に限らず、外注は1社だけだと「相場が判別し辛い」という特徴があります。複数社の見積もりを取ることで、妥当な金額を把握しやすくなるのです。このほか、開発体制や開発メンバーの人数もチェックしましょう。少人数体制で動いていた場合、メンバーが欠けると作業に遅延が出てしまい、納期に間に合わないといったケースに陥ることもしばしばです。
可能であれば、ソフトウェア開発の実績面も確認しておくと良いでしょう。外注先の過去に、自社で依頼したい開発内容と似た実績があれば、開発を依頼するのに十分な知識と技術を備えていると判断できます。もしも、複数社で迷っている場合は実績の有無も確認してみましょう。
ソフトウェア開発の最適な発注先をスムーズに見つける方法
ソフトウェア開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:22,000件(2024年10月現在)
外注先探しはビジネスの今後を左右する重要な任務です。しかし、
「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」
などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 →詳しくはこちら
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
■システム開発に関連した記事