Lean 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 more

Unsolved 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 more

Unsolved 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

Unsolved Software Maintenance Problems

In the writing, research, development and consulting work that I do, I find that I keep coming back to the same set of problems in software maintenance that no one seems to have solved.  I’m going to write a post on each of these problems laying out what the issue is and what is currently the best practice for dealing with each. Let me first clarify the term “maintenance” as it is very ambiguous – in this context what I am referring to is software “enhancement”, aka, “adaptive” maintenance according to the ISO 14764 specification. Here are the key unsolved software...

read more

Software Maintenance Measurements – Processes

What processes should be measured in software maintenance work? Consider first the goals of measuring these processes.  The goals of measuring such work are that the measurements should be: Translatable into process improvements and increased value delivery Cost effective to capture Demonstrably consistent Automated wherever feasible Traceable, in two respects: from summary to original point of capture, and from one point in a project to another Parallel, that is, measurements should line up for the same time periods, projects, resources, etc Let me emphasize the...

read more

Software Maintenance Measurements – Users

A simple list of things to measure that are related to users includes items in the list shown below.  Some of these can be defined further, for example, categories could be defined and reported on for the first three items, but for current purposes I will keep the list at a fairly high level.  These measurements are not solely related to maintenance, but I think it’s worth talking about them in the overall context of measurements. Caveat: selection of which measurements to implement should be based on the anticipated value they contribute to software maintenance process improvement...

read more