YAGNIがすき

YAGNIというのは、いい加減な推測で機能を追加したりするのはやめようって考え方。必要になってから追加すればいいじゃないってこと

どうせ必要にならないって
You Ain't Gonna Need It.

YAGNI - Wikipedia

そんなことより、あなたの人生の時間は貴重であるとまで意訳されたりする

これ自体は有名でもうみんな知ってる言葉かもしれないけど、以前から自分のお気に入り。

これを破るとどうなるかというと、システムが複雑になって、変更や機能追加のコストが大きくなってしまう

そうなると、改修の頻度も低くなってしまう。新バージョンのリリースとか不具合解消とか、あまり間隔が長ければ、これだめだなって烙印を押されちゃうかも

このプロダクティブプログラマによれば、特に商用ソフトウェアの場合に、なんでも盛り込もうという姿勢になりやすいそうだ

営業やマーケは、どんなものを作れば一番喜ばれるかを理解しているかもしれないが、系の複雑さが増すことでどのような影響が及ぶのかということはわかっていない(意訳


それと、ヴァーサ号の教訓という話しが載っていた

1625年、スウェーデン王は、史上最高の軍艦(ヴァーサ号)を作れと命令を出した。

最高の造船技師が雇われ、最高に丈夫なオークが特別の森で育てられて、最強の船ヴァーサ号の建造は開始された。

王は船にあれこれ注文をつけます。途中で砲列甲板を2つ備えた船にしたいと言い出した。そんな船はいままでどこにもありませんでした。

しかもすぐに作れと言った。当時の外交情勢から必要に迫られていたのです。

造船技師は当初の設計と違うが王の命令なので言われた通りにせざるを得ません。大急ぎだったため揺れのテストもできなかった。

で船は処女航海のときに数時間で沈没してしまった。

ヴァーサ号が沈没したのはいったい誰の責任なのか?


責任はともかく、少なくとも、沈没を避けることができるとすれば、それは造船技師だったと自分は思う。

王や営業や顧客はただ無知なだけなんだから。


プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)