Home > technical > Application Infrastructure

Application Infrastructure

The most recent C++ application that I wrote is named “ADSBsim” The figure below shows some source code level metrics that characterize the program. The metrics are presented in two categories: global and infrastructure. Infrastructure code includes all of the low level, non-application layer logic. For this application, the ratio of infrastructure code to total code is 1725/2784*100 = 62%. Thus, over half of the application is comprised of unglamorous infrastructure scaffolding.

Unlike the application layer logic, which doesn’t get neglected up front, the amount of infrastructure code to be developed is hardly ever known to any degree of certainty at the beginning of a new project. Thus, in addition to the crappy guesstimates that you usually give for the application layer, you should add an equivalent amount of effort to cover the well-hidden infrastructure logic. Instead of multiplying your guesstimate by the classic factor of “2” (rule of thumb) to accommodate uncertainty, you should consider multiplying it by “4” to get a half-way reasonable result. If your org managers mandate schedules from above and always ignore your input, then never mind the advice in this post. You’re hosed no matter WTF you do :^)

BTW, I initially estimated 2 months to complete the ADSBsim project. It ended up taking 4 months instead of the 8 recommended by the technique above. One could interpret this as successfully finishing the project well under budget and within schedule. On the other hand, if one “thought” that it should’ve only taken two months to complete, then my performance can be interpreted as being horrendously below par.

  1. Ray's avatar
    Ray
    December 4, 2009 at 8:27 am

    Most estimates assume about 40 hours of work per week. So was your 4 months calendar time that didn’t include working above 40 hours effort for a week. Does it also include other peoples review time? There is a lot of effort that is put into software design, implementation and test that is not accounted for. I believe some companies do not want to know that amount so they can get away with low balling the effort and have the management has plausible deniablity.

    • December 4, 2009 at 1:45 pm

      Good points Ray. Don’t tell anybody, but I did not work any unpaid overtime on this effort. I also didn’t drill down to the man-hour level of detail – I only tracked calendar months.

  1. No trackbacks yet.

Leave a reply to Ray Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.