Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
昔、学校で遠足にいくとき「準備は前の日にしなさい」って親に言われたことありませんか?
私は、しょっちゅう言われてました。 でも、たいていは次の日の朝に慌しく支度をしてました。
それでも間に合ってしまうあたり、昔からアジャイル(=機動的)だったのかも知れません。
...全然ほめられたことじゃないですね(^_^u
でも、こういった機動的な判断や行動が「できる」だけで無駄な苦労がなくなるとしたら...
あなたはどうしますか?
後から必要になるだろうと思って、「汎用性」や「拡張性」を好む人がこの業界には結構いるみたいですが、そんな人にはこう聞いてあげるといいでしょう。
「どんなときにそれは必要になるんですか?」
必要に迫られた「汎用性」には価値がありますが、そうでない「汎用性」には全く価値がありません。
XPでは、こういった汎用性を「悪」と定義しています(^_^)
誰も使わないものに時間をかけるのって、とんでもなく不毛だし、無駄ですよね〜。おまけに複雑になることで、どんどん自由に身動きがとれなくなってきます。
それでも、この業界には汎用性や拡張性が好きな人ってビジネス側、開発側ともに多いんですよね。わざわざ物事を複雑にしては、「帰れない、残業ばかりだ」と嘆いているんです。
そんなの帰れなくて当然です(-_-u
...
なぜ、物事を複雑にしたがるんでしょう?
なぜ、今必要ないことをするのでしょう?
なぜ、最も簡単なことをやらないんでしょう?
...
それは、「未来の問題を予測している」からではないでしょうか?
今後、必要だと思われることに対して、前持って準備をすればするほど、物事は複雑になっていきます。これは頭のいい人がよく陥る罠でもあります。
そうやって準備したことが結局は使われないこともしょっちゅうです。
では、こういった行為を指して、なんと呼ぶか知っていますか?...
...「取り越し苦労」って言うんです(^_^)
なんで大変になるかが、これでわかりました?そもそも苦労って単語が入ってるんです。そりゃ大変になりますよね。
じゃぁ、取り越し苦労をしないためにはどうするか?
これは割と簡単なことです。
今必要なことは今やる。未来に必要なことは未来にやる。
ただこれだけなんです。
でも、これって心理的には難しいことなんですよ。
未来の問題が気になるのは、「人に何かをさせてしまう不安」があるからです。それが無駄なことだとわかりきっていても、不安に対して何もせずにはいられないのが人間という生き物なんです。
そんなときこそ、「やらない勇気」が必要なんでしょうね...
今必要なことだけをやる、これを設計の場面で実践すると、「シンプルな設計」が実現できます。
今必要な機能だけを開発する。これだけで設計は簡単になり、実際に動くものが手に入りやすくなるのです。
仕様変更が発生しても、もともとがシンプルだから、どこに手を入れればいいかが即座にわかり、必要な変更だけを反映するのですぐに対応できる。
障害が発生しても、どこが問題点なのかが即座にわかるからデバッガと何時間もにらめっこする必要がない。
これって、理想的だと思いませんか?
シンプルであるということは、これほどの威力があり、それだけで十分な価値があるのです。
シンプルな設計の要点は、「必要になったら用意する」ということ、そしてシンプルであろうとする「覚悟」や「潔さ」にあるでしょう。
最初は勇気のいることですが、これをマスターすれば、無駄が自然となくなり、余計な不安も消えていきます。
また、心構えだけではシンプルな設計は支えきれません。当然、テクニックが必要となります。
必要なテクニックの詳細については、「テスティング」と「リファクタリング」をお待ち下さい。
あなたもシンプルな設計で毎日をスッキリ暮らしてみませんか?
次回、12/24(金)はクリスマスイブに「テスティング」をお届けします。
ビジネスよりもプライベート優先な日ですが(笑)、今年最後の更新になりますので、お見逃しなく!
There is no comment.