TL;DR
良いソフトウェアは,かっこ良い過程で生まれるのではなく,たいてい地味な過程,地味な戦いから生まれてくると心得よ.
はい
- 開発しているとき,うかうかしていると,大きな問題のほうに目が引き摺られてしまう
- 自分は,このプロダクトにおける正しい答えを出さなければならない
- ところが,人間はいついかなるときも正しい最強の答えを欲してしまう……
- 目の前にある問題ではなく,遠く離れた曖昧な問題と戦ってしまうことがある
- このプロダクトではこうするのが最適,とか,こういう局面で実際どうするべきかをまず考えるべき
- ところが,こんな設計ではいけないとか,さいきょうの設計とか,こうするのが夢,みたいなことを考えてしまう
- 現実逃避になっている
- 抽象度が高い方向に逃げてしまう
- なぜなら,現実の設計や開発はいつだって泥臭いのだから……
- まずはやらなければならないことを着実にやるべき
- 世界平和を目指したい気持ちも分かるけど,まずは毎日の挨拶をしましょう,みたいな状態
- トップダウンで考える悪癖みたいなのがある
- さいきょうの原理原則があって,そこから演繹すれば全ての問題は魔法のように片付く,とする立場
- そんなことはない -- 銀の弾丸などない
- 目の前にある問題をちゃんと認識するべきだし,問題を視るための感覚は養っておかなければならない
- 正しいことだけを,美しいことだけをしたいですか?
- 我々が戦っているのは現実世界の問題なので,美しくない戦いもしなければならない
- むしろ,完全に新しくて素晴らしい問題について考えるということは稀で,たいていは泥臭い問題を解くことになる
- かっこ良い戦いがしたい気持ちはわかるが,それよりもかっこ良い結果を求めるべきで,かっこ良い答えを導く過程や戦いはやはり地味であることを納得したほうがいい