November 24, 2009, 2:19 am
If you manage a large software organization, should code reduction be the first bullet in your 2010 strategy?
According to Finnish computer scientist Jussi Koskinen, the cost of software maintenance can account for >50 to >90% of an overall software development budget.Â¬â With code bases doubling every seven years, maintenance is the budget buster of software development.
So a 200 person software organization, that pays developers $100,000 per year, is spending $20M annually on software development.Â¬â Â¬â $10M to $18M of this is devoted to code maintenance.Â¬â Each 1% reduction in the size of the code base represents $100,000 to $180,000 of resources that you can reassign to tasks that create greater business value.
Code reduction can be achieved by taking the following steps:
- Inventory every software component of every project including versions (there are automated solutions that will do this efficiently and accurately)
- Publish this inventory in an internal catalog so that globally distributed teams can collaborate better
- Remove redundancy (i.e., multiple versions of the same code, or different versions of the same component, etc.)
- Task the architecture team with finding opportunities to standardize around common components
- Replace proprietary (internal) components with open source thus sharing maintenance with external communities
- Institute an approval process that controls software component adoption so that projects are managed with judicious guidance and oversight.Â¬â There are automated solutions for this as well.Â¬â Workflow automation can also help lighten the load of robust processes.
With concerted effort and a strategic outlook you can enable your resources to achieve more with each dollar invested in software development.Â¬â In one real-world case, a development organization found that they were using nine different databases.Â¬â They worked with project teams to reduce this to three, enjoying a significant reduction in maintenance overhead.Â¬â Â¬â How much redundancy do you think exists in software organizations?
Â¬â PS: Repost from blog.blackducksoftware.com