Nov 12, 2013

Simple Cost Benefit Analysis for the Software Developer

I took some college courses about finance a few years back. Little did I know that the knowledge I acquired during those sessions was going to become handy during a discussion about the best course of action on a project we were reviewing. In this case, the conversation went something like this:

We need to add functionality "x". If / when we do this our application will perform much better and it would clean up our design. 

But the cost to analyze, design, code, and test would be very expensive. You know development hours are expensive! How about we "throw more hardware" at the problem?

It has got to be cheaper than coding it right. Besides, we do not want to over engineer something if we don't have to. Right?


So we decided to do the math and see if the assumptions held up...

Mo' Hardware... Mo' Hardware...

After running some numbers we listed the following costs for the option to add more hardware at the problem:

  • Monthly cost of virtual server  -  $125
  • Monthly cost of SAN space     -  $0.85 x GB x 40 = $34
  • # of virtual machines needed   10 (at least)
  • Total Yearly Cost for this setup:   $19080   (Payment [Pmt] at perpetuity)
    • (10 boxes) x (12 mo) x (125 virtual box) x (40 GB) x (0.85 x GB)
  • Assuming the following:
    • our company's return on investment is 8% (r - interest rate)
    • our hosting service would increase their rates at 0.25% x year (g - growth rate)
    • we would continue to pay for these boxes for ever
What is the Present Value (PV) of this set up?  Well, it just so happens that there is a very simple calculation for these parameters. It goes something like this


     PV =  Pmt         PV =    $19,0800       PV = $246,193.55
          (r - g)             (8% - 0.25%)

As you can appreciate, the cost of of throwing hardware at the problem is almost $250K!

The Development Route  

Our preliminary estimates indicated that this effort could be fitted on a regular development cycle (8 business weeks) and could be addressed, comfortably, by allocating between 2 or 3 dedicated development resources. Our internal, company-wide, average, blended rate for development has been set at $62.50 per hour. This yields the following calculations:

Avg. Dev Cost =  (6.5hr x day) x (40 days) x ($62.50 x hr) x (2.5 FTE)

Avg. Dev Cost =  $40,625

As you can see, the development cost for this effort alone is less than 1/5th of the TCO for renting the hardware.

The moral of this story is to challenge the premise that not doing the right thing, when comes to software development could  be more expensive than the seemingly cheaper option.  Do the math and argue with science facts not fiction.

Follow this link for additional resources related to calculations related to the Time-Value of money.

No comments: