Abstract :
When we maintain existing code, we must be very careful to avoid breaking or degrading the system we´re working on. During development, we can minimize problems through reviews, adherence to style rules, defensive programming, maintenance of backward compatibility, and the preservation of architectural properties. Thorough testing at all levels can catch many issues before they reach the deployment stage. Finally, during deployment, a phased rollout, a back-off plan, and careful planning can minimize the occurrence of catastrophic failures. The Web extra at http://youtu.be/pifgzfFXanE is an audio podcast of the Tools of the Trade column in which author Diomidis Spinellis discusses how we must be very careful to avoid breaking or degrading the system while working to maintain existing code.
Keywords :
software architecture; software maintenance; backward compatibility; code architectural properties; code development; code maintenance; defensive programming; Codes; Computer applicaitons; Programming; Software engineering; Software testing; defensive programming; deployment; maintenance; operations; reviews; software engineering; testing;