Sometimes Change Is Bad

Once software becomes mature, every change carries with it a huge risk.

Code evolves slowly into a spider web of interwoven dependencies.

It eventually reaches a point where no single person can know the ramifications of changing stuff "deep" in the core.

There is a delicate balance to managing change in mature software.

Make sure you have lots of automated functional tests and review your changes.

Most importantly: Make sure you have an agile process -- so you can respond quickly not if, but when something gets screwed up.

Further reading:

  1. http://blog.jasonhanley.com/2009/04/software-development-when-change-is-bad.html