プログラムの作成は足し算でやるべきだというのがここ数年思っていることです。まあ、自分で導き出した結論ではないのですが。
足し算というっても数学的な足し算じゃなくて、レゴブロックみたいな感じでしょうか? 機能追加は新しいパーツを別途作って追加することで行います。ということは、外すのも別の機能への差し替えも簡単なわけです。
当然、こんなことしなくても、ソースコードを直接修正すれば、機能追加も機能削除もできるんですが。
「ソースコードを修正するとバグが生まれる」という原則を考えたら、ソースコードへの修正は最小限にとどめたほうがよい。だからと機能追加というのは、ソースコードの修正ではなく、追加によって行うべきというのがあるんです。
まあ、この手の話はいろんな本に書いてあるんですが、正直よくわからなかったですが、いろいろと仕事でプログラムを書いてるとなるほどなーと思うようになったわけです。
もともと動いてたのは動いているわけですし、機能追加でソースコードを修正しないなら、原則として今までの部分は確実に動くわけです。バグがあってもどっちが原因かわかりやすいし、一時対策として機能追加分を外すのも簡単です。
メリットだらけだと思うんですが、問題はメリットに気が付かない人にとってただ難解で意味のないことをやっているようにしか見えないことかな?