組み込みソフトウェア開発に従事して5年ほど経つ。
色んな事がわかり始めて、わかり始めたと思ったら
最近、多忙を極めてわかり始めたことが、何もかもが吹っ飛んでしまった気さえしてしまった。
そこでいったん基本に立ち返ってソフトウェア開発とは何かをまとめてみた。
ソフトウェア開発とは一言で言ってしまえば、コンピュータが人間の要求を満たす動きをさせる業務のことである。
コンピュータというのは、1と0の羅列で言語形成されたモノしか理解できず、
基本的に人間が発する言葉や文字をそのまま理解することはできない。
それに対し、コンピュータに対して何かして欲しいのは人間だ。
人間の言葉をコンピュータは理解できないし、然りである。
そこで、コンピュータに人間がやって欲しいことを理解してもらうために
要求をコンピュータが理解しやすい言語に解釈しなおす。
これがソフトウェア開発である。
それは、コンピュータ言語がなにであっても、コンピュータが携帯だろうが量子コンピュータだろうが基本的なことは変わらないのである。
では、ソフトウェア開発を行う上で重要になってくるのは何になるのか。
私は3つあると考えている。
1つ目はコンピュータについて理解すること。
コンピュータに理解してもらわなければいけないので、コンピュータがどういう思想でどういうロジックで考えているのか。
これを知らなければ、コンピュータに我々が言うことを理解してもらえるはずもない。
2つ目は要求について理解すること。
要求を正しく理解しなければ、到底コンピュータにも正しく理解してもらえるはずもない。
3つ目は要求をコンピュータに理解してもらえるように整理・変換すること
要求を正しく理解し、コンピュータの思想やロジックを正しく知っていたとしても
理解したことを正しく整理変換しなければコンピュータにただしく伝えることはできるはずもない。
こうやってまとめてみると、我々がやっている仕事は技術者やエンジニア等と呼べる仕事ではなく
コンピュータと人間のコンパイラー、翻訳屋さんなのである。
