誰もが再利用性について話すのが好きです。私が働いている場所では、新しいアイデアが投げかけられたりテストされたりするたびに、再利用性の問題が常に浮かび上がります。「これへの投資を最大限に活用したいので、再利用可能にしましょう。」「再利用性は、少ない作業でより高い品質をもたらします。」などなど。
私が見つけたのは、再利用可能なコンポーネントやアイデアが導入されると、誰もがすぐにそれを恐れて、それを悪いアイデアとして書き留めることです。アプリケーションがそれに依存するようになると、それは保守不可能であり、変更を加えると、それを使用するすべてのものに対して回帰テストを実行する必要が生じると彼らは言います。ここの人々は、特に長い間存在し、多くの扶養家族とライチョウを持っている1つのコンポーネントを指摘します。これは、変更がどのように機能するかわからないため、変更できなくなったためです。
この苦情に対する私の回答は次のとおりです。
- 依存関係が多いコンポーネントへの変更が遅いのは良いことです。これは、設計者が変更について実際に考えることを余儀なくされるためです。
- そもそもコンポーネントを正しく取得するには時間がかかるはずです。当然のことながら、常に変更する必要があると感じた場合、そもそも再利用できることはありませんでしたね。
- ソフトウェア開発は難しく、作業が必要です。テストもそうです。あなたはそれをしなければならない。
残念ながら、これらの回答で人々が耳にするのは、「遅い」、「時間」、「努力」です。
経営陣からブラウニーポイントを獲得するために自分が作ったものをひっくり返すことができる魔法の「これを再利用可能にする」スイッチがあればいいのですが、物事はそのようには機能しません。何かを再利用可能にすることは時間と労力を要します、そしてあなたはまだそれを正しくすることが保証されていません。
「再利用性」の要求は、それを実現することで苦情しか得られないように思われる場合、どのように対処しますか?