ソフトウェアは、「知識」を形にしたもの

学生の皆様から、「システムエンジニアは何をする仕事でしょうか?」と聞かれることが良くあります。
もちろん様々な回答があり、一概に何が正解、ということはできない種類の問ですが、わたしが昔聞いた中でおもしろい、と思った回答が一つあります。それは
「知識を形にする仕事です」
というものです。

これは以前お付き合いのあった、有名なエンジニアの方が語った話ですが、確かに納得感があります。
例えば会計システムなどは良い例で、企業において発生した取引を記録、処理して、適切な形で出力する(例えば、原価計算や、決算、管理会計など)のが、会計システムですが、この処理を人が全て覚えておくことは大変難しく、かつ手間のかかることです。
ところが一度ソフトウェアにしてしまえば、知識のない人でも処理ができ、かつカンタンに再現することもできます。

これは他のシステムも同様で、スマートフォンのアプリなどにも全く同じようなことが言えます。
・写真を明るくしたり、食べ物を美味しそうにする加工は知識と手間がかかりますが、その手間が一瞬でできる
・ゲームも人が動かす必要がなく、一度プログラムしてしまえば入力に応じて反応する
・SNSなどは、従来知識を持つ人がHTMLなどで記述をしていた掲示板に取って代わり、誰でも自由にページを生成できる

と言った形で、知識を形にするのが、ソフトウェアなのです。
したがって、要件定義を含む上流工程はその「知識」をどう洗い出すかが、勝負なのです。

そう考えれば、ソフトを作る仕事は、なかなかすごい仕事ではないでしょうか?