The best way fo make changes to a system is to make them incrementally. You want to keep the system running at each stage and make only small chages at a time. What do you do, them, when you need to change a whole component of the infrastructure. If you replace that component, all the code that uses that component would need to be changed as well. As a result, you could end up breaking large portions of the system for long periods of time.
The best thing to do in that case may be to write a replacement for that infrastructure component that can co-exist with the old one. In this way, you can get new code to use the new component and, over time, migrate old code which uses the old component to use the new component instead. If you're successful, you will eventually be able to remove the old component. This approach is much more likely to succeed than making the change all at once.
Download