人間には未来の出来事を知ることはできない。だから、せめてできる限りの予想をして未来に備えよう、ということになる。プログラマの仕事でもそうだ。 「次のバージョンアップでこんな機能が要求されてるんだけど」 「そんなこともあろうかと、その仕組みは既に作ってあります」 なんてことになれば、得意な気分になる。予想が当たれば嬉しいのは、ギャンブルもソフトウェア開発も同じだ。 しかし、予想に基づく行動にはリスクが伴う。それもギャンブルと同じである。 以前、私は、あるシステムの内部データを CSV ファイルとして出力するプログラムを作った。その際、将来のバージョンアップで出力するデータ項目が追加されるかもしれないと考えた。そこで、プログラムを直さなくても、「定義ファイル」に項目を追加するだけで、CSV に出力できるようにしておいた(顧客からそんな要望はなかったにも関わらずだ)。 しかしである。その後、実際
![『YAGNI ~ 予想でモノを作るな』](https://cdn-ak-scissors.b.st-hatena.com/image/square/9a6d74ed229e0096f3b1d26318f629e105ce8e8b/height=288;version=1;width=512/https%3A%2F%2Fstat.profile.ameba.jp%2Fprofile_images%2F20180309%2F06%2F54%2Fhs%2Fj%2Fo02000200p_1520543173782_e4nkl.jpg)