英語 Code will be changed.
コードは、一度書いてそれで終わりということはありません。その後、必ず変更されます。1回きりの「作り捨て」ということは、まずありません。
コードが変更されるという事実は、コードを書く時の、様々な「判断」「選択」「決断」において、最大優先度で考慮するべきです。
ソフトウェアは、本質的に複雑であり、完璧なものになりえません。リリースされた後は、必ず障害が発生し、それを修正しなければなりません。
また、リリース後にユーザーから要望が上がり、機能を拡張する場合もあります。ユーザー側でも、実際に使用してみるまで、わからないことがあるからです。最初のリリースだけで、要望を完全網羅したソフトウェアを作ることは不可能です。
さらに、ユーザー自身というより、ユーザーのビジネス環境の変化により、要求が変化していきます。この変化に、ソフトウェアを合わせていかなければなりません。最初にプログラミングしたものに固執して、役に立たないソフトウェアを作成しても意味がありません。
また、視点を変えると、新規開発のプログラミング中も、考え方によっては「修正している」と捉えられます。プログラミング中は、前日の自分のコードに新しいコードを追加したり、コードをきれいにするためリファクタリングします。チームのレベルで考えても、イテレーション2ではイテレーション1のコードに手を加えていくので、同様です。どのようなフェーズでも、様々な理由で、コードには必ず変更が入ります。
プログラミングにおける1つ1つの判断は、「そのコードが変更される」という前提で行うようにしましょう。つまり、「変更に強いコードを書く」ということです。
そして、そのためには「コードが読みやすい」ということが、もっとも大切です。結局コードというものは、書いている時間より、読んでいる時間の方が、はるかに長くなります。変更されるという前提に立つと、書くのにどれだけ時間がかかっても、読む時間を短縮できるなら、十分に元を取ることが可能です。
出典書籍
『達人プログラマーーシステム開発の職人から名匠への道』アンドリューハント他, ピアソンエデュケーション(2000)
関連書籍
『ソフトウェア開発はなぜ難しいのかー「人月の神話」を超えて』大槻繁, 技術評論社(2009)
『XPエクストリーム・プログラミング入門―変化を受け入れる』ケントベック, ピアソン・エデュケーション(2005)
『プログラマが知るべき97のこと』和田卓人他, オライリー・ジャパン(2010)
Copyright © ITmedia, Inc. All Rights Reserved.