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: |
