




自分や身の回りの人が使うソフトウェアは気軽につくれます。慣れた人であれば、数日もあればできてしまうかもしれませんし、間違い(バグ)があっても、すぐに修正することができます。
しかし、企業の中でソフトウェアをつくる場合、少し事情が異なります。社会の中で大勢の人に使われるようなソフトウェアは、規模も機能も大きいばかりか、間違いがあった場合は、多くの人に影響を与えてしまいます。そのため、ソフトウェアをつくる前の段階でも、入念な準備が要りますし、つくるのにも時間がかかります。そして、つくった後も、間違い(バグ)がないかどうかを、徹底的に調べます。企業の中でソフトウェアをつくる仕事には、「楽しさ」とともに、大きな「責任」が伴っているのです。
企業では、おおよそ以下のような流れで、ソフトウェアをつくります。

ソフトウェアの素はすべて“アイディア”です。“コンピュータや機械でこんなことができたらいい”とか“こんな機能があったら便利なのに”といった“アイディア”が、ソフトウェアの素になります。
さまざまな企業で使われる情報システムでも、機器や装置に組み込まれる組込みソフトウェアでも、まずは、どんなソフトウェアにしたいかを具体的に考えることが出発点になります。

こんなソフトウェアをつくりたいという“アイディア”がまとまったら、それを、誰が見ても分かるような文書にします。この文書では、“○○ができる”というようなソフトウェアの機能を、できるだけ詳しく表現します。企業がつくるような大規模なソフトウェアでは、このような文書が、何百ページにも及ぶこともあります。

ソフトウェアの機能が決まったら、ソフトウェアの設計を行います。家を建てるときには設計図が必要ですが、ソフトウェアをつくるときにも設計が必要です。特に、企業でつくるソフトウェアは、ビルで言うなら高層ビルにあたるような非常に大きなものなので、必ず事前に設計を行い、計画を立ててからプログラミングを開始します。
設計には、全体の設計から、ソフトウェアの各機能に関する詳細な設計まで、いろいろな設計があります。このようないろいろな設計の結果は、すべて文書に記録され、次のステップに進みます。

設計に基づいてプログラミングを行います。プログラミングを始める前に、長い時間をかけて設計書がつくられていますので、プログラミングは、設計にしたがい、分担して効率的に行われます。
プログラミングが始まるまでに、長い時間をかけてソフトウェアの機能を決め、設計を行うのが、個人でつくるソフトウェアと企業がつくるソフトウェアの違いと言えるでしょう。

プログラムに間違い(バグ)があってはソフトウェアは正しく動きません。しかし、バグは、いろいろな条件のもとでソフトウェアを動かしてはじめて明らかになることもありますので、さまざまな角度から、念入りにチェックしなければいけません。このチェックのことを「テスト」と言いますが、企業でつくるソフトウェアでは、このテストにも非常に時間をかけます。徹底的にテストを行うのが、企業でつくるソフトウェアの大きな特徴です。

プログラミングだけではなく、設計からテストまで、時間をかけて行って、ようやくひとつのソフトウェアが完成します。完成後、多くの人々に使われるようになってから、ソフトウェアが正しく動かない!ということが起こると、大きな問題になります。そのため、企業でつくられるソフトウェアは、最初の段階から、きちんと計画を立て、一つ一つステップを踏んでつくられるのです。