ソフトウェアに関連する散文

ソフトウェアとは何なんだろうか?

曖昧な要件を矛盾のない仕様に落とし、さらに自然言語だと曖昧さが残るので、

曖昧さを許さないプログラミング言語に翻訳する段階で、なにが曖昧であるかに気づき、

その曖昧さをなくし、完全に曖昧さも矛盾もない仕様に落とし込むこと。

なのだろうか。

要するにそれらはすべて仕様だ。

Howも多く含むが、Whatの塊でもある。

ソフトウェアの規模が大きくなることは良いことだろうか?

コード行数が増える。複雑さが増す。バグが増える。保守に多くの時間と人員がかかるようになる。

そして、できることが増える。

リターンはコストに見合っているのだろうか。

ドメインエキスパートなんてほんとにいるの?

ビジネスは変わり続ける。やりたいことは変わっていく。

自分がエキスパートに成り代わってドメインに忠実なコードを書いたとて、それがいつまで有効であるのか?

とはいえドメインの語彙が無いコードは不安

究極的に言えばインプットとアウトプットが合っているシステム。

どこぞの外注会社に発注したとして、インプットとアウトプットが要件通りであればそれは満足行くシステム。

でもソースコード中にドメインの語彙が存在していないとすれば、それは今後の保守に大分不安が残る。