.net column

.NET開発者のためのブログメディア

ソフトウェア開発の仕事内容10個|学べるおすすめの本3選紹介

2020年04月23日
SE
ソフトウェア開発とは、どういったことをするのですか?
PM
プログラムの開発や設計はもちろん、システムの企画と提案など多岐にわたります。

ソフトウェア開発とは何か?

ソフトウェア開発とは、プログラムの開発と同義であり、ソフトウェアをユーザーが使えるような状態で納めるまでの作業になります。ソフトウェア開発では、どのようにソフトウェアを動作させるのか設計し、プログラミングを行い、動作確認までを行います。

システム開発との違い

システム開発とは、業務の仕組み全体を見渡し、業務改善も含めて仕組みを構築していく作業です。システム開発には、業務フローを考えたり、ハードウェアを検討したりといった作業も含まれます。ソフトウェア開発は、システム開発の中の一部です。すでにシステムとしての業務の仕組みが決まっており、その中で使用するソフトウェアの仕様を考え、構築する部分だけをピックアップした作業がソフトウェア開発ということになります。

ソフトウェア開発の仕事内容10個

ソフトウェア開発という作業は、どのような種類の業務で成り立っているのでしょう。システム開発の一部としてのソフトウェア開発作業なのか、単独の製品としてのソフトウェア開発を行うかによっても必要となる業務は異なります。ここでは、ソフトウェア開発に含まれる10種類の仕事内容を紹介します。各仕事内容を参照して、ソフトウェア開発の内容を理解しましょう。

仕事内容1:営業

システムの一部となるソフトウェア開発の仕事を受注するためには、まずは営業をすることが必要になります。営業は顧客のニーズを把握し、現行のソフトウェアでニーズが満たされるのか、現行のソフトウェアを改修すべきなのか、新たなソフトウェア開発が必要なのかを検討します。顧客のニーズによっては、ソフトウェア開発だけでは実現できず、システムの見直しが必要になる可能性もあります。

仕事内容2:ヒアリング

営業によって顧客のニーズを把握し、ソフトウェア開発の可能性が見えてきたら、顧客のニーズを掘り下げてシステム化を検討するためのヒアリングを実施します。ソフトウェア開発における顧客ヒアリングは、要求分析とも呼ばれ、営業担当よりもエンジニアが中心となって行われます。顧客のニーズを分析し、ソフトウェア開発につなげる検討は、プログラマではなく、アナリストやシステムエンジニアが行います。

仕事内容3:システムの企画と提案

ヒアリングによって顧客ニーズを深掘りして把握した後は、ニーズをシステム的にどう実現させるかの検討を行います。検討結果を「企画」としてまとめ、顧客にソフトウェア開発の「提案」をします。システムの企画と提案では、顧客から語られた業務改善に向けた想いを、ソフトウェア開発によりいかに実現させられるかを提案書としてまとめます。システムによる実現性を、顧客が理解しやすい形で提案する必要があります。

仕事内容4:契約と見積もり

提案したソフトウェア開発の企画が、顧客に受け入れられれば、契約に向けて見積もりを行うことになります。一般的に、顧客との契約手続きは営業担当が行いますが、ソフトウェア開発の基礎見積もりはシステムエンジニアなどのソフトウェア開発技術者が行います。ソフトウェア開発の企画が顧客に認められても、開発費用として提示した見積額が顧客の予算と見合わない場合は、受注につながらないこともあります。

仕事内容5:要件定義

ソフトウェア開発を受注し、開発に取りかかって最初にすべき工程が「要件定義」です。企画提案の際に、顧客のニーズから「要求分析」という形で、実現すべき機能を分析していますが、そこには顧客の過剰な想いが含まれていることもあります。顧客ニーズをソフトウェアで実現するときに、必須となる機能や性能を「要件」という形で明確に洗い出します。

仕事内容6:設計

要件定義により、ソフトウェアで対応すべき要件が明確になったら、設計作業に入ります。ソフトウェア設計には、外部設計と内部設計があります。外部設計は、ソフトウェアの動きを、ユーザーが使う目線で確認できる内容とします。内部設計はプログラマへの指示書にあたり、外部設計に記載されたように動作するためには、プログラムをどう記述すべきかを記載します。

仕事内容7:プログラムの開発

プログラムの開発は「実装」とも呼ばれます。設計書で指示された内容を、コンピューターが理解できる言語である「プログラミング言語」で記述します。内部設計書が詳細に記載されていれば、設計書の記述をプログラミング言語に置き換えてプログラムを作成します。プログラム開発を容易にするためには、きめ細やかな設計が求められます。

仕事内容8:テスト

ソフトウェア開発におけるテストの工程は複数回あります。それぞれでテストの観点が異なります。プログラマがプログラミング終了時に行うテストは、工程としてはプログラム開発に含まれます。内部設計書通りに実装されていることを確認するテストです。最終的には「運用テスト」という形で、実際のユーザーデータを使い、運用に沿った形で業務が進められるかも含めて確認します。

仕事内容9:納品

テストまでクリアしたら、顧客への納品を行います。納品の際は、実際に動作するソフトウェア環境のほか、プログラムソース、各種設計書、運用マニュアルなどが納品物になります。かつての納品物は大量の印刷物でしたが、近年は電子媒体として納品されます。顧客が対応すべき保守作業などがあれば、納品とは別にトレーニング期間を設けることもあります。

仕事内容10:保守

納品が完了すれば、ソフトウェア開発も基本的に完了状態となります。ただし、ソフトウェアの不具合などの瑕疵が発生した場合は、修正対応が必要になります。多くの場合は保守契約を結び、実運用の中でユーザーにとって使い勝手が悪いと感じられる機能や、要求分析や要件定義時に漏れていた機能を改修・追加作成するなどの対応を行います。

ソフトウェア開発を学べるおすすめの本3選

ソフトウェア開発について、もっと詳細な内容を知りたいという人は、市販本を探してみてはいかがでしょうか。ソフトウェア開発の学習書には、いろいろなレベルの市販本があり、初心者でも、すでにソフトウェア開発に携わっている技術者でも知識を広げることができます。ここでは、ソフトウェア開発を学べるおすすめの3冊を紹介します。

1:アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~

こちらの書籍では、クライアントに対してどういった見積りを提案するかなど、スケジュールに関する質問に対してのノウハウが溜まった書籍です。また、なぜアジャイル開発が必要なのかそれにたいして答えを出してくるといった内容になっています。アジャイルという言葉は知っているけど、どういったことなのかよくわからないといった初心者にも打って付けの書籍です。

アジャイル、スクラム、リーン、エクストリームプログラミングなど、新しいソフトウェア開発には様々なツールや呼び名が存在しているが、その根底にある考え方は共通である。本書は、なぜアジャイル開発を行わなければならないのか、という本質的な問いに真っ向から答えてくれる。アジャイルという言葉は知っているけど、よくわからない、分かった気になっているだけの人にとっては必読書となるだろう

https://www.amazon.co.jp/gp/customer-reviews/R704635LS12M…

2:ソフトウェア開発入門: シミュレーションソフト設計理論からプロジェクト管理まで

本書はソフトウェア開発の中でも、シミュレーションソフトに特化して、設計とプロジェクト管理について解説されています。シミュレーションソフトの開発に携わる人は、一般的なソフトウェア開発の工程に加え、計算に関する基礎知識も解説があるので、一読してみることをおすすめします。

3:SOFT SKILLS ソフトウェア開発者の人生マニュアル

本書は「ソフトウェア開発」に関する解説書ではなく、ソフトウェア開発者に向けた人生の指南書です。ソフトウェア開発者として、どのように技術を身につけ、どのように仕事を得るかといったノウハウが提示されています。ソフトウェア開発者向けに書かれた本ですが、技術的な話ではないので、一般的なビジネス書として読んでみるのもおすすめです。

SEでライフハック好きの私は今まで多くのノウハウを学び実践してきましたが、この本にはそのほぼすべてが一冊でカバーされていました。まさに「惜しげもなく」という言葉がぴったりと思います。特に私にとって参考になったのはブランディングの部分で、実践し、実績を残した著者だから書ける内容だと思いました。業界の構造が違いますが日本IT技術者に是非読んで欲しい本と思いました。

https://www.amazon.co.jp/gp/customer-reviews/RX91WIPIFDCI…

SE
ソフトウェア開発は、さまざまなお仕事をするのですね。
PM
そうですね。おすすめの本を読み、スキルを磨いていきましょう!

ソフトウェア開発の仕事の流れをつかもう!

多くの仕事に定型の流れがあるように、ソフトウェア開発にも定番の工程があります。流れをつかんでいれば、今やっている仕事にどのような意味があるのか、次に何をすべきかなどを理解しやすくなります。ソフトウェア開発の流れを理解し、効率的に作業を進めていけるように努めましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)