ソフトウェアエンジニアリングでビジネスをする上で大切なこと(暫定)

社員旅行に行く日の朝にふと考えたことをメモとして書く。


ソフトウェアエンジニアリングの特性

ソフトウェアエンジニアリングの特性は、ソフトであるということ。
ソフトなので、触ることもできない。
同じサーバ、同じ言語で作られていたとしても、中身は全く異なる。
中身の理解も人によって異なる。
あの会社は、シンデレラ城を作っているかもしれないが、僕たちは日本家屋を作っているのかもしれない。
同じ人が住める建造物ではあるが、パッと見で違いは分からないし、作る上で重要なことは大きく異なるだろう。
そして、ハードと違い、すぐに変わる。
変わることが特性であり、変わっていくことを求められ、変わっていくことに価値がある。

つらいこと

ソフトウェアエンジニアリングでビジネスをする上で、つらいことは、何か。
それは、変更があること。
では、変更は何によってもたらされるのか。
変更は、ドメインの要求によって、もたらされる。
作り上げたものと、ドメインが要求するものの差分により変更が生じる。

大事なのは、とにかく深くドメイン知識を理解すること。
要求される変更のゴールが分かっていれば、変更は生じない。
ただ、僕たちは神ではないので、ドメイン知識を理解しながら、あるべき姿を目指して冒険をしていく必要がある。

ビジネスを学びながら、エンジニアリングを学びながら、あるべき姿は何なのかを考え、表現していくこと。
変更に応えられる構造にしていくこと。
それがソフトウェアエンジニアリングでビジネスをする上で大切なことだと考えてます。

ぜひ、ランチ行きましょう!