ソフトウェアができるまで
ソフトウェアは現在社会に生きる私達の生活に欠かせない製品として、近年ますますその存在価値を高めています。
パソコンや携帯電話といった情報機器はもちろん、エアコンや洗濯機といった生活家電にもソフトウェアが組み込まれていますし、コンビニ・スーパーといった小売店や銀行、病院、学校といった各種サービス、道路、電気、水道、ガスといった生活インフラ等、ありとあらゆるものをソフトウェアが支えています。
ここでは、ソフトウェアが開発され世に送り出されるまでの基本的な流れを、代表的な開発スタイルである「ウォーターフォール型開発モデル」に沿ってご説明します。
1.要件定義>>2.基本設計/詳細設計>>3.製造(プログラミング)>>4.テスト/納品
- 1.要件定義
- ソフトウェア開発の出発点は、クライアントからの「こんなことしたい」「こんなことできたらいいな」という想いにあります。その「こんなこと」の輪郭を浮かび上がらせ、より具体的なものにしていくことが「要件定義」という工程です。この工程は主にPM(プロジェクトマネージャー)が担当します。要件定義のためにはクライアントの実務についてよく理解しておく必要があります。また、ソフトウェア開発はクライアントと2人3脚の作業になりますので、常に密接にコンタクトをとって、より深く情報収集することもとても大切です。そのために経験豊富なPMが担当することでクライアントから信頼していただき、円滑な業務遂行が可能になります。
また、必要な予算規模や納期といった内容についても決めておく必要があります。ここでの決定事項がこの後のソフトウェア開発の方向性を大きく左右しますので、曖昧な点は残さず、細部まで詰めておく事が重要です。
- 2.基本設計/詳細設計
- 要件定義をした内容を具体的にどう実現するのか、そのグランドデザインを描くことを「基本設計」と呼んでいます。この工程はSE(システムエンジニア)が主に担当します。ここでは決められた予算・納期の範囲内で最高のパフォーマンスを発揮するソフトウェアの方向性についてPMとSEが協議し、その設計書をSEが作成し、クライアントにプレゼンテーションし、了承を得て次の作業にかかる、この繰り返しになります。最初のグランドデザインから徐々に細部について詰めていく工程が「詳細設計」になります。ソフトウェアの規模によっては基本設計と詳細設計の作業だけで1年以上かかることもありますし、SEが数名〜10数名参加することもあります。
PMはクライアントとの折衝窓口として各SEの作業の進捗状況をしっかりと把握し、プロジェクトの全体像を理解しておく必要があります。
- 3.製造(プログラミング)
- 設計書に基づき実際にソフトウェアを作っていく工程を「製造(プログラミング)」と呼んでいます。ここではPG(プログラマー)が主に作業を担当し、プログラム言語(CやJAVA等)を駆使して書き下ろしていきます。ただし設計書に全ての内容が書かれている訳ではありませんので、PGはその内容を自分なりに解釈し、具現化していく必要があります。規模によってはこの工程だけで1年以上、数十名のPGが必要となる場合があります。
PGはチーム単位で仕事をすることがほとんどです。PMは予算や納期、仕様をしっかりと守れるようミーティングを定期的にチーム単位で行い、管理・指導を行います。
- 4.テスト/納品
- 製造工程が終わるとSEとPGがソフトウェアが正常に作動するかテストを行います。そこで出たエラー(バグ)を修正し、再度テストを行う、その繰り返しになります。そしてバグを全て処理できれば納品になります。
残念ながら最初のテストでバグがでないことはまず有り得ません。従ってテスト及び修正に十分必要な時間を予めスケジューリングしておく必要があります。またどこでエラーが発生するのかがちゃんと検知できるような仕組みを設計・製造段階で作っておくことも重要です。
ここで紹介した流れは一例に過ぎず、実際にはクライアント毎に最適な進め方をPMが選択し、最終的に満足していただけるソフトウェアを納品し、クライアントはもちろん、私共も含め関わった全ての人に喜んでいただけるよう全社を挙げて取り組んでいます。
株式会社ベーシックで働く先輩の声を一部ご紹介しましょう。
先輩の声「仕事の内容を教えてください」

