ヤグニ(YAGNI)

タイトルの響き、いかがですか?
私は昨日この言葉を見つけてから、気になっているのです。
最初は、ヨガの言葉?だってアグニとかに似てません?(笑)
調べたら、全く関係なく
エクストリーム・プログラミングにおける原則なんですって。
は?なんのこっちゃ??(笑)
よくわからいけれど、ケント・ベックらによって定式化され、
提唱されているソフトウェア開発手法ですってー。
しかも、これ“You ain’t gonna need it”を縮めた言葉なんですってー。
さらにWikiを参照させていただくと、
YAGNI原則を提唱する人々は、その理由として以下を挙げている。
・あとで使うだろうとの予測の元に作ったものは、
実際には10%程度しか使われない。

したがってそれに費やした時間の90%は無駄になる。
・余計な機能があると我々の仕事が遅くなり、リソースを浪費する。
・予期しない変更に対しては設計を単純にすることが備えとなるが、
今必要とする以上の機能を追加すると設計がより複雑になってしまう。
あなたの人生の時間は貴重である。あなたの能力は単にコードを書くためではなく、
現実の問題に集中するために使うべきである。
・結局はその機能は必要ないかもしれない。
もしそうなったら、あなたがその機能を実装するのに費やした時間も、
他のみんながそれを読むのに費やした時間も、その機能が占めていたスペースも、
すべて無駄になってしまうだろう。
・コードをすばやく実装するために最も良い方法は、あまりコードを書かないことである。
バグを減らすために最も良い方法も、あまりコードを書かないことである。
ほー[E:eye]
超アナログな私が言うのもなんですが、やっぱりヨガっぽい。
プロから言わせれば、いやいや・・・となるのかもしれないけれど、
今必要なことに注力し、無駄な考えに時間を取られないようにしなさい。」としか
取れないんですけれど(笑)
いかが思われます?