In his latest post on software estimation, Mike Nichols says "Software estimation has been one of these quandaries for me mostly because of my lack of experience." I couldn't agree more. I only hope software estimation will be easier the longer I'm in the business. He goes on to say that his boss has certain expectations about estimates because he is used to estimates from his (civil?) engineers being complete and accurate.
This made me wonder how similar the estimation process is for building a skyscraper vs. building an ERP? Or building a bridge vs. building a shopping cart. Since I know zero about civil engineering I will commence with the presumptions. I presume that if I presented a bid to build a skyscraper using Agile methodologies I would be laughed out of the room. "Yes, it will take us three weeks to pour the foundation, then we will meet again to talk about how long it will take to complete the parking garage." I think the reason why the two processes cannot be considered even remotely similar is this: It's pretty hard to refactor concrete, rebar, and I-beams and there's no such thing as a v2. The design has to be right the first time. I don't think the most senior architects at Microsoft, Oracle, or EDS can guarantee they will get it right the first time. The skyscraper customer is aware of this also. If I came to my skyscraper engineer in the last phase of the project and told him "I want to add another 25,000 square feet to the parking garage, I have to have this, this is a deal breaker for me", he would laugh me out of the room. So why do software customers think they can do that to us?
I think the software industry needs something to help lend a physical aspect to software systems. If customers understood that software project Z had the equivalent physical representation of ten skyscrapers, six months into the project the would understand why it is unfeasible to even request changes to certain parts of the system.
Perhaps that is why Selling agile is hard, if not impossible. People that aren't in the software business are used to hearing estimates from their mechanic, or general contractor, or plumber. And those estimates invariably say the task will be done in X number of days for Y cost. They understand the process enough to know not to even ask if it's too late to add a basement to the house after the foundation is poured.
posted @ Sunday, March 11, 2007 6:35 PM