ソフトウェア開発の複雑さ

 先週の仕事の時間はほとんどずっと社内用のちっさなツールの設計をしていた。当たり前だけど、どんなプログラミング言語を使おうと、設計に費す時間は(あまり)短縮できない。どういうところに時間をとられると、関数の名前を考えるだとか、そもそもどういう機能を実装しないといけないのか細かく砕いて考えるだとか、逆に砕いてできた関数をどういう風にまとめていくかだとか、そういう部分なんだけど。関数の名前は昔は本質的な作業では無いと思ってたんだけど、今では本質的な作業のひとつだと考えている。
 設計を考えだすと、最初に考えてた自分の見積りがどんだけ甘かったかがよくわかる。曖昧に考えてたところが意外と難しかったとか、そういうことがよくある。