Can Agile Methods Work for Software Maintenance? Part 1
The short answer is, yes, well, maybe no, or better yet, yes and no. But let me first define this question a little more. Software “maintenance” is an ambiguous term. The ISO ($) defines four types of maintenance: Corrective maintenance: corrects discovered problems; Adaptive maintenance: adapts software to changing needs; Perfective maintenance: improves performance or maintainability; Preventive maintenance: corrects latent faults in the software before they become effective faults. The first, corrective maintenance is what we usually think of as bug fixes and production...
read moreLaws of Software Evolution – and A Couple Other Notable Observations
The development of IBM’s OS/360 in the 1960’s was a seminal event for software engineering leading to the well known book, The Mythical Man-Month, and also The Laws of Software Evolution spearheaded by Professor Meir Lehman, University of London. These laws are worth understanding for AS/400 shops supporting legacy RPG systems, as they give some insight into how software seems to degrade over time. And there are hints of some possible lessons for going forward. So here is a summary of the eight laws. I will add notes where a given law is not reasonably self-explanatory, ...
read moreSoftware Maintainability – Is Anyone Managing This?
As noted in an earlier post, “the act itself of maintaining software causes it to degrade.” (Alain April, Software Maintenance Management) The continual decline of software has also been noted in the Laws of Software Evolution, as conceived by Professor Meir Lehman. Can anything be done about this? Should anything be done? Is it worth the cost and effort to keep software healthy and maintainable? I don’t think the science of software maintenance has advanced enough yet to consistently provide the methods for answering those questions, but I was reading some interesting...
read more