The Art of Software Estimatation
Wednesday, May 09, 2007 11:29:47 AM (Mountain Standard Time, UTC-07:00)
So Mr. Scott Hanselman just recently posted an article about Software Estimation. In the first comment on the post there was a link to an article on MSDN that I thought was also interesting, titled "From Bouncy Balls to Better Estimates".
Estimating how long is going to take to build a piece of software, is definitely one of those touchy questions. Early in my career, I remember when my manager would ask me how long it would take to build a new feature into our product. I would do my best to please him with my S.W.A.G., and then afterwards I would do my best to make sure I was on schedule for delivery... it's interesting how that silly acronym (Silly Wild Ass Guess), was a nice way of saying...
"Hey mO, can you tell me that you can build this feature into the product in less than a week? So that I can go tell that client that I wasn't lieing and that we actually have that piece of functionality already in our product!"
Oh man... this brings back to many bad memories! I'm not as eager to please others, especially sales people. It is possible to deliver some pieces of software in almost no time... but you're probably going to put out a pretty bad product. I have recently caught the TDD, or BDD bug. I'm very rigid, and feel rather uncomfortable delivering a piece of software that I don't feel confident in. By having Unit tests to back up my code, I have that extra level of confidence...
So when someone comes to me and asks me how long it will take to build this... (read below) What am I supposed to say?
System Features
- Windows Forms-based interface programmed using C#.
- Simple, large button interface.
- Ability to print 4" x 1.25" tags
- One (1) web report using MSSQL Reporting Services
I'm not even sure where to begin... what am I supposed to build? And you want an estimate right away? You told the client that it would be done yesterday? Uhhh.... great, so basically anything that comes out of my mouth means nothing!
Good day... I said GOOD DAY!