Code Reduction is Job #1

81
Article Source FOSSBazaar
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:

  1. Inventory every software component of every project including versions (there are automated solutions that will do this efficiently and accurately)
  2. Publish this inventory in an internal catalog so that globally distributed teams can collaborate better
  3. Remove redundancy (i.e., multiple versions of the same code, or different versions of the same component, etc.)
  4. Task the architecture team with finding opportunities to standardize around common components
  5. Replace proprietary (internal) components with open source thus sharing maintenance with external communities
  6. 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