Software Is Hardwork

ISimplicityAffinative: The endless pursuit of anti-complexity.
The technology-centric blog of D. P. Bullington.

Email D. P. Bullington View D. P. Bullington\ Follow D. P. Bullington on Twitter Get Software Is Hardwork code on CodePlex

Blog Post(s)

Resharper: The New Software Estimating Tool
Thursday, May 29, 2008

Today, I was asked to provide an estimate of effort required to rip out a few entities in the subsystem I am generally responsible for. I thought that I really did not have any basis to provide any meaningful estimate due to the lack of, nor necessity of, “requirements”; this was a moderate refactoring job for the most part. My initial thought was to fire off an email, containing a number of hours of effort pulled out of the clouds. Then reality set in and I knew I really wanted that basis or some other metrics to provide an estimate to some degree of accuracy. So I started thinking: the refactoring job was purely code based; why not use the code a metric.

When I think of code, the first thing that comes to mind is Resharper. I started by writing out all the entities which needed “touching”; either removal, alteration, or replacement. I then used Resharper to easily get a count of “usages” of each entity which will be used as the metric for the estimate. If you think about it, a usage of a type/member/etc. is a natural point in which to determine level of effort. Any changes needed to bring a specific usage in line with the proposed refactoring are efforts needing accounting for.

Clearly, each usage which needs a changes will take effort different from another usage; that is okay, I decided to that for a single usage, an average level of effort in hours would suffice of this estimate. So, looking over a few usages ranging in difficulty, I came to an estimated average level of effort of 0.25 hours (15 minutes) per usage. There were a total of 171 usages of all the affected entities, thus:

(171 usages†) * (0.25‡ hours per usage) = (42.75 hours) + (4.275†† hours) = 47.025 hours total

Note the added 10% buffer for the unknown.

In a nutshell, I was able to play an estimating game at the source code usage level, with the help of trusty ole Resharper.

1 comments:

ncloud said...

Resharper is my favorite VS tool. I am waiting eagerly for 4.0 to be released so I can use it with VS2008 and .NET 3.5 features. Thanks for the good ideas -- I am constantly asked to do time estimates on refactoring changes, and knowing Resharper can help me do that is pure developer gold!

Blog Archive

Labels

Blog List

Speaking Enagements

  • 12/8/2009 | Hampton Roads .NET Users Group | Cheaspeake, VA | Topic TBD
  • 07/16/2009 | Charlottesville .NET Users Group | Charlottesville, VA | Debugging on the Windows Platform
  • 05/23/2008 | NoVa CodeCamp 2009.01 | Reston, VA | Going Proxy-less - The WCF Proxy Factory
  • 04/25/2009 | Richmond Code Camp 2009.1 | Richmond, VA | Software Programmer to Software Engineer: Concepts to Span the Divide
  • 02/05/2009 | Richmond .NET Users Group | Richmond, VA | Debugging on the Windows Platform
  • 10/04/2008 | Richmond Code Camp 2008.2 | Richmond, VA | Going Proxy-less - The WCF Proxy Factory

Disclaimer

© D. P. Bullington, all rights reserved. Everything posted on this blog is my personal opinion and does not necessarily represent the views of my employer or its clients.