Software Maintainability – Traits of Good Maintainability – Processes
What makes software maintainable? Let me first clarify that my goal here is to discuss what can be done to make it more maintainable, it’s not to just analyze whether existing code is maintainable. I say that because a number of researchers have invested time in studying the maintainability of software as an after-the-fact question. These researchers typically focus on the wide variety of complexity measurements that have been developed, e.g., Halstead’s Volume measurement, COCOMO Cost Factors, Lines of Code, Module Cohesion, Cyclomatic Complexity, Comments Volume, Average...
read moreLean Maintenance Techniques and Metrics
How can good general management principals be applied to the practice of software maintenance? One model worth looking at is “lean production techniques” as developed in manufacturing and which can be adapted to software maintenance to improve quality and throughput. The basic techniques include: Continuous process improvement Continuous product flow via reasonably sized projects constantly moving through the pipeline Planning for uncertainty by building adaptation to change into the process and plan Focusing on the software being usable and...
read moreInteresting Statistics – Numbers of Programmers in Maintenance vs. Development
In my ongoing effort to educate people about how software maintenance work outweighs development work, here are some interesting numbers about the evolution of software professionals and their work. I found this in a presentation at the International Conference on Software Maintenance 2008, in Beijing a couple months ago. These statistics were in the keynote address by Harry Sneed, ANECON GmbH in Germany, who credited long-time software authority, Capers Jones. Year Pgmrs in Development Pgmrs in Maintenance Percent in ...
read moreUnsolved Software Maintenance Problems – Measuring Program Comprehension
(This post is part of a general discussion of unsolved problems in software maintenance. The initial list of these problems is defined in this previous post.) Can the analysis process that maintenance programmers engage in, so called program comprehension, be measured? Is it important to measure it? If it can be measured, is it then possible to improve it? Some studies have shown that program comprehension takes from 40-60% of maintenance programmers’ time. That indicates pretty clearly that this is worth measuring and improving if there is a way. But is there a way? There ...
read moreUnsolved Software Maintenance Problems – Estimating
This post is part of a general discussion of unsolved problems in software maintenance. The initial list of these problems is defined in this previous post. There are a number of problems associated with estimating maintenance work (by which I mean enhancement projects as opposed to production support fixes.) A summary of these problems includes: In some cases analyzing the programming changes to be made can comprise half or more of the total programming work. How can reasonable estimates be made without doing half the work? There are no comprehensive measurements ...
read more