What does take more time — implementation or maintenance?
Implementation and Maintenance are both parts of the Software Development Cycle. In the best case scenario the ratio between them should be 80 to 20. However, in reality it varies and depends on a few factors:
- Which subject area we are talking about?
- How well are the requirements documented?
- How experienced is a developer?
- At which point of time has the developer joined the project?
Especially the subject area influences the ratio. There are some areas where any mistake can cause catastrophic consequences (e.g. aviation, automotive and space industries). In these areas all the requirements have to be well-documented and any deviation from the documentation will contribute to the quality check issue. That is why in such areas the ratio is close to 80/20.
In other areas, such as typical Software Development, deviations do not cause any big issue. Additionally the business-side wants to deliver the result as soon as possible. That is why the requirements are not well-documented due to time savings and a lot of questions are solved during the ongoing project. This happens especially when the SCRUM methodology is used with weekly or bi-weekly sprints. This leads to the point when time spent for development reduces, while the maintenance costs grow as there is a need to adjust previous developments to fit new functions and fix bugs. That’s why the ratio is moving to nearly 20/80.
On average though, according to “Frequently Forgotten Fundamental Facts about Software Engineering” by Robert L. Glass, (an article in IEEE Software May/June 2001), maintenance take 60% of the time in comparison to the development.