Sunday, June 3, 2007

Calculating the Value Added by a Good Development Framework

In one of my previous blogs, I had expressed my opinion on frameworks and data mapping tools. I had highlighted some of the benefits of using them, which are:
  • Allow for cleaner separation of layers
  • Automatically apply certain well established design patterns
  • Externally configurable
  • Structured to support plug-and-play of components
For some time now, I have been thinking about ways to calculate the value added by good development frameworks like Spring, Struts, etc. The way I look at it, every framework comes with its associated costs and benefits. Seeking out value is just a matter of being able to quantify these costs and benefits. Now that can be a challenge in itself.

From what I have seen, frameworks come with the following types of costs and benefits.

Costs
  1. Costs associated with the learning curve. These can be recurring as more resources are ramped onto a project or as resources are periodically cycled through maintaining a product
  2. Costs associated with conflicting life-cycles of the product being developed and the development framework. These involve either upgrading the framework to its newer version or replacing it with another framework
Benefits
  1. Savings on account of increased productivity
  2. Savings on account of decreased number of bugs. There is a direct correlation between the number of lines of code written and the number of associated bugs
  3. Savings on account of increased product life, mainly attributed to slower degradation of the core product architecture over time
  4. Savings on account of quicker time to market