logo
  • Jobs
  • About Me
  • Contact
  • Home
« NTime
Pong »

The 5 pitfalls of estimating a software project

Posted June 23rd, 2004 by Matt Berther

Christopher Hawkins has a great piece about the 5 pitfalls of estimating a software project. I wonder how many of his issues would be mitigated by implementing an XP methodology.

Estimates would be a consensus between all parties involved (sales, marketing, development, *and* the customer), thereby getting rid of point one, which was allowing non-technical staffers to give development estimates. I agree with Christopher that it is very easy for a salesperson to think, “well, that is only one button or one screen; it shouldnt take that long”. This is, of course, done without any working knowledge of the system and any of its underlying systems which may need to be modified to make this work. By having consensus estimates, everyone (including the customer) buys off on the estimate.

Refusing to look in the mirror is not something that is covered by any programming methodology, and I dont believe is something that can be easily enforced by process. The concept of doing a post-mortem is good, but what makes a post-mortem is great is to correctly identify and learn from your mistakes. This requires a lot of inward looking, which I think people are not accustomed to doing. It is quite difficult to find fault with ones self. Unless you have a strong desire to learn and improve, any sort of post-mortem will be of no benefit. Making a mistake is okay, not learning from it is not. This reminds me of an old quote, “It’s not that fact that we shot ourselves in the foot that bothers me, but the fact that we reloaded and fired again.”

Additionally, Mr. Hawkins discusses three other items; underestimating design and debugging time, inadequate/unclear requirements/ and taking too large a bite from the apple. I believe that these three items would all be covered by one principle of XP, which is do the simplest thing that can possibly work.

It’s not necessary to have a complete functional specification prior to starting development of an application. Using XP, there is a consensus on a small set of functionality that will be delivered (the simplest thing that could possibly work) and those requirements are generated. If these requirements are inadequate or unclear, then immediate clarification is obtained from the customer, so that work can continue.

It’s not necessary to have a fully designed object model in place prior to starting development. By doing the simplest thing that could possibly work and constantly refactoring your code, you will end up with a much more elegant solution than you would by attempting to think of everything at the very beginning.

Now, I understand that prior to a project commencing you will still need to give some sort of ballpark estimate for completion so that it can be determined whether the project’s timeline will be congruent with everyone’s needs.

Like Christopher said, if you can break the project down into the simplest thing that could possibly work, the more accurate your estimates will be.

This entry was posted on Wednesday, June 23rd, 2004 at 11:05 pm and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Christopher Hawkins
June 24th, 2004

Hi, Matt!

First off, thanks for the mention.

Second, I agree with you on this bit:

“It’s not necessary to have a complete functional specification prior to starting development of an application. Using XP, there is a consensus on a small set of functionality that will be delivered (the simplest thing that could possibly work) and those requirements are generated. If these requirements are inadequate or unclear, then immediate clarification is obtained from the customer, so that work can continue.”

I usually outline the overall application and then develop detailed specs for one feature or task cluster at a time, making sure it is as unambiguous as possible before proceeding.

Now, I’ll admit that I would prefer to be able to spec the whole system up front, but I’ve found that even with the most diligent requirements gathering practices, clients invariably have epiphanies along the way that change the way they want to treat business processes, which of course means they want to change the tools supporting those processes.

Thanks again. I’ll be reading your blog. ;)

meryl's notes
June 30th, 2004

Five Pitfalls to Estimating a Software Project

Matt Berther points to a thought-provoking entry by Christopher Hawkins who knows how to produce an accurate estimate and shares what to avoid when doing the estimates for a project….

georg
July 9th, 2004

hallo friends. really nice here.

georg
July 9th, 2004

hallo friends. really nice here.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
-->

flag
Favorite Charity
wounded warrior project
Search
Social
  • mattberther on twitter
  • mattberther on linkedin
Syndication
Archives
  • June 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • September 2008
  • August 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
  • June 2005
  • May 2005
  • April 2005
  • March 2005
  • February 2005
  • January 2005
  • December 2004
  • November 2004
  • October 2004
  • September 2004
  • August 2004
  • July 2004
  • June 2004
  • May 2004
  • April 2004
  • March 2004
  • February 2004
  • January 2004
  • December 2003
  • November 2003
  • October 2003
  • September 2003
  • August 2003
  • July 2003
  • June 2003
  • May 2003
  • April 2003
  • March 2003
Jobs
mattberther.com © 2003 - 2009