YAGNIの前に計画を立てよう

これ、若干の違和感を感じたので。違和感というより説明不足って感じかな。

そんなあなたにおすすめなのが、eXtreme ProgrammingのYAGNI(You Aren't Going to Need It)の考え方。意訳すると「今必要のあることだけをやれ」という感じかな。

「人は未来のことはわからないんだから、できる限りの予想をして未来に備えよう」ってのと真逆な考えで、「人は未来のことはわからないんだから、予想するのはやめちゃって、今必要最小限のことだけをしよう」ってことです。

「明日は今日よりよくなる」ではなく「今日必要なことをする」 - yvsu pron. yas

この書き方は誤解を招く気がするなぁ。これじゃあ、後先考えずに今だけを刹那的に生きればいい、と誤解されちゃうんじゃなかろうか。この表現だと言いたいことが正確に伝わらないような気がする。というわけで、失礼を承知で勝手に補足という余計なお世話をあえて試みてみる。


そう、確かに未来は、予想したところで当たらない。

それでも、計画は立てる必要がある。

安心して「今必要なことだけ」に集中するためには、計画が必要なのだ。

だから、計画を立てた上でYAGNIを実践すればいいと思う。


一冊本を紹介してみるよ。僕が過去に読んだXP(eXtreme Programming)の本で最も好きなのが次の本だ。

XPエクストリーム・プログラミング実行計画 (The XP Series)

XPエクストリーム・プログラミング実行計画 (The XP Series)

  • 作者: ケントベック,マーチンファウラー,Kent Beck,Martin Fowler,長瀬嘉秀,飯塚麻理香
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/04
  • メディア: 単行本
  • 購入: 2人 クリック: 14回
  • この商品を含むブログ (15件) を見る

この本は、第一章「なぜ計画を立てるのか」から始まるのだけれど、のっけからいきなり次のように喝破しているところがすごい。

未来を予想するために計画を立てるわけではない。

ときおり、未来を予想した(つもりの)計画に基づいたプロジェクトを見かけることがある。随分前に立てた計画があたかも「よげんの書」のような扱いで、何が何でもその計画通りにプロジェクトを進めようとするパターンだ。しかし、どうせ未来は予測できないのだから、コトは計画通りには進まない。計画は「よげんの書」ではないのだ。本書は次のようにいう。

計画は現実を外れると、幻想になる。

では計画を立てることは無駄なのか。もちろんそんなことはない。

本書は、計画を立てるべき理由として次の3つを挙げていて、これがまたいちいち鋭い。

  • 実行すべき最も重要なことを常に行っていると確信するために
  • 他の人たちと調整するために
  • 予期せぬ出来事が起きたとき、前の2つの結果を理解するために

計画があってはじめて人は確信を持って「今」に集中できるのだと思う。何の計画もなく単に今を刹那的に生きるというのは、単なるバカのすることだ。

だからこういいたい。

不安を感じているのなら、計画を立てよう。現実が計画から外れたのなら、計画を変更しよう。計画があれば、「今」に集中できる。計画があってこそYAGNIができる。

蛇足

えっと、これは完全に蛇足なのだけれど。
僕はなんとなく、ニュートン法みたいな収束計算を連想しながらこのエントリを書いている。ニュートン法では、現在位置の微分量から根の位置を予測して、次の位置へ移動する。つまり、現在位置からは正確な根の位置は分からないけれど、微分量を元に計画を立てて次に進む。次に進んだら、再びその位置での微分量を元に次の計画を立てるわけだ。
人生も収束計算の手法みたいに「計画」と「行動」を交互に繰り返していけばいいのかもね。