|
Software ErosionSoftware erosion is the constant decay of the internal structure of a software system that occurs in all phases of software development and maintenance. It has many causes ranging from “copy & paste programming” to neglect of architectural specifications. The unfortunate thing about software erosion is that each contributing step in itself does not hurt, and indeed you can sometimes even save time in the short term. This is why software erosion is such an insidious process. Software erosion cannot be measured using traditional testing methods: “The software works fine”, yet, appearances are deceptive. Sooner or later, software erosion makes itself felt through its symptoms: rising development costs, increasing test effort, longer release cycles, escalating project risk, etc. For this reason, software erosion is a primary cause of problems in developing and maintaining software systems. Causes of Software Erosion When software is first developed a clearly structured architecture is often defined and sometimes also strictly implemented. However, software needs to be adapted repeatedly during its lifetime. The reasons for this range from changes in technology and feature requests to the need to fix bugs. As a result the initial architecture definition is neglected more and more, especially when there is a high staff turnover. An ever-growing gap arises between the desired architecture and the actual implementation. This process is called software erosion. In the beginning, the consequences of software erosion are often underestimated and with a focus on developing software features no measures are taken to stop this erosion. However, without active correction, hidden problems will build up in the software. There is a point when the software is no longer completely comprehensible. When this happens it becomes very hard to plan, implement, and test changes. It can become necessary to implement highly complex workarounds which often cause additional hidden problems. Software quality declines further and subsequent changes become even more time-consuming. Time pressures constantly increase. Symptoms of Software Erosion: Reduced effectiveness and efficiency The symptoms of software erosion are widely known: delayed releases, budget overruns, quality defects, and so forth. Over time, the situation worsens. There is a point in time where the software seems doomed. Rewriting from scratch seems to be the only way out. However, this option is extremely expensive, risky, and time consuming. The new software first needs to gain all features that the existing software already has. Thus, valuable time for innovation is lost. There is also a risk that the new software won't be delivered; the project and organisation could be at risk. Read how Bauhaus Software Analysis Tools stop software erosion. Find out about Bauhaus Usage Scenarios. Find out about Bauhaus Success Stories. Contact us to discuss your requirements. |
|