🖥

YAGNI原則とは?物語

2023/09/01に公開

Wikipediaによると

機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。

ちなみにここでいう機能とは、内部的なデータ等も含むと広く解釈して良い。

例えば、めちゃくちゃ単純な例。

たとえばデータベースで「本のテーブル」があって、タイトルと価格カラムがあるとする。
だけど果たしてこれだけで足りるだろうか?

将来の拡張性を考えておこう。

  • セール時の価格を示す「セール価格」カラムを追加しておこう。セールを開く予定はないけれど。
  • 本の詳細を示す「詳細カラム」を追加しておこう。ユーザーに詳細を見せる予定はないけれど。
  • 男性用の本か、女性用の本かを示す「性別カラム」を追加しておこう。今は全性別向けの本しかないけれど。

ま、使わなかったら、その時削除すれば良いや。

You Ain't Gonna Need It!

どのカラムも結局使いませんでした。当時の担当者は辞任しました。

プログラムのコードや、データベース構造はいつの間にか複雑になり、なんだかよく分からないカラムが3つあるけど、誰もいつまでも削除しません。なぜなら、今動いているプログラムが、もし動かなくなったらどうしましょう。クビを切られるのは自分です。

そしてこのプロジェクトの担当者は、新しい世代に語り続けるのです。

「あ、その3カラムね!どうやら使ってないらしいよ。まあ、削除しても良いかもね。どうせ使ってないわけだから。え、じゃあ削除すれば良いだって?そうだね。まずはカラム削除のストーリーを見積もって、削除して動作チェックして、リリースチェックをしてと。そこまでする必要があるかって?そりゃそうよ。プロダクトコードってのはそういうもんだよ。えーとこのプロジェクトは今とても忙しくてね。君、こんなことをしてる暇があるなら、もっと必要案件のことを進めてくれないだろうか。まあ余裕がある時にその3カラムは削除するってことで。あ、ところで私も来月に辞任するので、このことは次の担当者にも伝えておいていただければ!」

めでたしめでたし

YAGNI原則を破ったことにより、みんな少しずつ不幸になりましたとさ。

おしまい!

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2022-05-20

Discussion