エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

安易に面倒なことを選択する

わたしの好きな言葉に「楽をするためには労を厭わず」というのがあります。この場合の「楽」というのは手抜きとか横着とかそういうのでなくて、うまく賢く苦労をせずにといった、そんな感じの意味です。ソフトウェア開発は複雑さとの戦いですから、いかに複雑なことを簡単に表現するか腐心します。

で、その反対とも言えるのが冒頭の「安易に面倒なことを選択する」。複雑なものをそのままに複雑に設計したりすると、これがえらく面倒で、工程が進むほどやっかいになることこの上なし。ソフトウェアはこんなにも複雑なのかと思い知らされる瞬間。
なんでこんなことになるのかというと、やはり安易な設計を選択してしまうことにある気がします。考え抜いたからといってよい設計になる保証はないのですが、うわべに捕われずに本質を見抜く努力をしないといけない。
ただ、見抜く力をつけるには、やっぱり、たくさんの失敗を含め経験がものをいうわけで。そういう余地のない、100%の力を注ぎ込む必要のある開発プロジェクトというのは、どうしても、安易に面倒なことを選択する環境にあるのかもしれません。