貯まった問題との付き合い方――割れた窓の法則、エントロピーの法則に見る技術的負債が起こる理由問題解決力を高めるコツはプログラミングの原則・思考にあり(終)(2/4 ページ)

» 2017年08月25日 05時00分 公開
[上田勲]

コードは必ず変更される

 英語  Code will be changed.

 What 〜コードは修正されるもの

 コードは、一度書いてそれで終わりということはありません。その後、必ず変更されます。1回きりの「作り捨て」ということは、まずありません。

 コードが変更されるという事実は、コードを書く時の、様々な「判断」「選択」「決断」において、最大優先度で考慮するべきです。

 Why 〜コードとは無常である

 ソフトウェアは、本質的に複雑であり、完璧なものになりえません。リリースされた後は、必ず障害が発生し、それを修正しなければなりません。

 また、リリース後にユーザーから要望が上がり、機能を拡張する場合もあります。ユーザー側でも、実際に使用してみるまで、わからないことがあるからです。最初のリリースだけで、要望を完全網羅したソフトウェアを作ることは不可能です。

 さらに、ユーザー自身というより、ユーザーのビジネス環境の変化により、要求が変化していきます。この変化に、ソフトウェアを合わせていかなければなりません。最初にプログラミングしたものに固執して、役に立たないソフトウェアを作成しても意味がありません。

 また、視点を変えると、新規開発のプログラミング中も、考え方によっては「修正している」と捉えられます。プログラミング中は、前日の自分のコードに新しいコードを追加したり、コードをきれいにするためリファクタリングします。チームのレベルで考えても、イテレーション2ではイテレーション1のコードに手を加えていくので、同様です。どのようなフェーズでも、様々な理由で、コードには必ず変更が入ります。

 How 〜変更に強いコードを書く

 プログラミングにおける1つ1つの判断は、「そのコードが変更される」という前提で行うようにしましょう。つまり、「変更に強いコードを書く」ということです。

 そして、そのためには「コードが読みやすい」ということが、もっとも大切です。結局コードというものは、書いている時間より、読んでいる時間の方が、はるかに長くなります。変更されるという前提に立つと、書くのにどれだけ時間がかかっても、読む時間を短縮できるなら、十分に元を取ることが可能です。

出典書籍

『達人プログラマーーシステム開発の職人から名匠への道』アンドリューハント他, ピアソンエデュケーション(2000)

関連書籍

『ソフトウェア開発はなぜ難しいのかー「人月の神話」を超えて』大槻繁, 技術評論社(2009)

『XPエクストリーム・プログラミング入門―変化を受け入れる』ケントベック, ピアソン・エデュケーション(2005)

『プログラマが知るべき97のこと』和田卓人他, オライリー・ジャパン(2010)


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。