Innovation Science Pty Ltd : Evolvability Assessments
This text is replaced by the Flash movie.

Evolvability Assessments

Large projects (particularly government commissioned projects since the 1980s) have tried stipulating a range of requirements in an attempt to maximise the lifespan of custom software. Mandatory use of COTS (Commercial-Off-The-Shelf) was once believed to be the panacea. However, it was then discovered that the interface to the component rather than the component itself caused significant risk if it was proprietary in nature. This led to the trend for "open systems" — If a system can be considered "open", then the risk of a component becoming unmaintainable is theoretically mitigated because another vendor can provide a replacement component that complies with relevant published standards.

We believe well managed open systems offer an extremely promising contribution to long-term cost savings. However, they are not the answer in isolation. There are other aspects of software engineering and systems architectures that have the potential to negate the good work achieved by an open system.

Software maintenance accounts for over half of a software system's lifetime cost [1]. Furthermore, software maintenance generally becomes more expensive as the software becomes more brittle. As faults get fixed, ripple effects appear with ever increasing frequency. There are many factors that can contribute to a software application becoming less maintainable including repeated change, diverging user groups, backward compatibility considerations, documentation sufficiency, and natural attrition of engineering know-how. Open systems do not lessen the impact of these considerations.

Although the term "maintainability" can relate to the ease of any change to a software system [2], we prefer to scope the problem in terms of "evolvability". This term highlights our interest in the ability for software to support repeated addition, removal and augmentation of functionality.

[1] Stafford, Software Maintenance as Part of the Software Life Cycle, Department of Computer Science, Tufts University, http://hepguru.com/maintenance/Final_121603_v6.pdf, 2003.

[2] Open Systems Glossary, Software Engineering Institute, http://www.sei.cmu.edu/opensystems/glossary.html#m, 2006.

As an optional extension to Innovation Science's "openness assessment" capability, we can apply an evolvability assessment to identify aspects of a software architecture that present a risk to its own long-term evolution. Aspects of interest may be related to engineering process, architectural granularity, communication protocols or even management policies. The Innovation Science Evolvability Assessment combines with the Openness Assessment to provide essential input to any large project's risk mitigation plan.

print this page