YAGNIの前に計画を立てよう
これ、若干の違和感を感じたので。違和感というより説明不足って感じかな。
そんなあなたにおすすめなのが、eXtreme ProgrammingのYAGNI(You Aren't Going to Need It)の考え方。意訳すると「今必要のあることだけをやれ」という感じかな。
「人は未来のことはわからないんだから、できる限りの予想をして未来に備えよう」ってのと真逆な考えで、「人は未来のことはわからないんだから、予想するのはやめちゃって、今必要最小限のことだけをしよう」ってことです。
「明日は今日よりよくなる」ではなく「今日必要なことをする」 - yvsu pron. yas
この書き方は誤解を招く気がするなぁ。これじゃあ、後先考えずに今だけを刹那的に生きればいい、と誤解されちゃうんじゃなかろうか。この表現だと言いたいことが正確に伝わらないような気がする。というわけで、失礼を承知で勝手に補足という余計なお世話をあえて試みてみる。
そう、確かに未来は、予想したところで当たらない。
それでも、計画は立てる必要がある。
安心して「今必要なことだけ」に集中するためには、計画が必要なのだ。
だから、計画を立てた上でYAGNIを実践すればいいと思う。
一冊本を紹介してみるよ。僕が過去に読んだXP(eXtreme Programming)の本で最も好きなのが次の本だ。
XPエクストリーム・プログラミング実行計画 (The XP Series)
- 作者: ケントベック,マーチンファウラー,Kent Beck,Martin Fowler,長瀬嘉秀,飯塚麻理香
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2001/04
- メディア: 単行本
- 購入: 2人 クリック: 14回
- この商品を含むブログ (15件) を見る
この本は、第一章「なぜ計画を立てるのか」から始まるのだけれど、のっけからいきなり次のように喝破しているところがすごい。
未来を予想するために計画を立てるわけではない。
ときおり、未来を予想した(つもりの)計画に基づいたプロジェクトを見かけることがある。随分前に立てた計画があたかも「よげんの書」のような扱いで、何が何でもその計画通りにプロジェクトを進めようとするパターンだ。しかし、どうせ未来は予測できないのだから、コトは計画通りには進まない。計画は「よげんの書」ではないのだ。本書は次のようにいう。
計画は現実を外れると、幻想になる。
では計画を立てることは無駄なのか。もちろんそんなことはない。
本書は、計画を立てるべき理由として次の3つを挙げていて、これがまたいちいち鋭い。
- 実行すべき最も重要なことを常に行っていると確信するために
- 他の人たちと調整するために
- 予期せぬ出来事が起きたとき、前の2つの結果を理解するために
計画があってはじめて人は確信を持って「今」に集中できるのだと思う。何の計画もなく単に今を刹那的に生きるというのは、単なるバカのすることだ。
だからこういいたい。
不安を感じているのなら、計画を立てよう。現実が計画から外れたのなら、計画を変更しよう。計画があれば、「今」に集中できる。計画があってこそYAGNIができる。