木を見て森を見ず
という言葉があります。

一本の木だけを見ていては
森の全体像は把握できないという意味です。

しかし、何か問題や課題が出てきた時、
ついついそれを解決する事だけを
考えてしまって、
全体像が疎かになる事がよくあります。

私はこれまで、
コーディング規約を押し付ける事や
安易にドキュメントを書いて残す事を
否定してきましたが、
これも「ソースコードを揃える。」
「意識を共有する。」といった
「木」だけを注目している限りでは
何ら否定するものではありません。

しかし、コーディング規約の押し付けは
ソースコードが揃う代わりに
技術者のモチベーションが犠牲になりますし、
ドキュメントを残す事は
意識共有の手段とはなり得ますが
その先、変更がある度に修正しなければならないという
「負債」を抱える事になります。

これ以外にも
一つの事を解決しようとするあまり
他の物を犠牲にしてしまっているけど
それに気が付いていないという様なケースは
私の経験上、山ほどあります。

これは、洋服に空いた穴を塞ぐ時に
その服の生地を破ってから
補修に当てている様なもので、
全体が良くなる事は決してありません。

ソフトウェア開発では
全てが順調にいくというケースは
ほとんどなく、
必ずと言っていい程、何らかの問題が出てきます。

その問題を解決する事は大切ですが、
しかし、その際は
その問題だけを考えるのではなく
全体に及ぼす影響を十分考慮した上で
判断する事が必要です。