Project teams are sometimes trapped by off-the-cuff estimates.
A projectmanager on a team asks, for example, "How long would it take to implement this component", while showing the developer a wireframe. The immediate response is typically, "I don't know. I think it might take a week. I'll check into it", and of the developer is to his/her desk to investigate the functional requirements further. Back at the desk the developer looks at the design and code for the component, back at the desk the developer notices a few things forgotten when the PM asked the question, adds up the changes and decides that it would take about 3 weeks. The developer hurry over to the PM's desk to update the first estimate, but the PM is in a meeting and therefore not to be found. Later that day the PM suddenly appear at the developer's desk and happily notifies the developer (before this can get a word out): "Since it seemed like a small project, I went ahead and talked to the customer about it. He was very excited about it and can't wait to see the component next week. Can your start working on it today?".
I have found that the safest policy is NOT to give off-the-cuff estimates. Using intuition and guessing as basis of software estimates are almost always related with cost and schedule overruns.
One of the errors people commit when estimating solely from personal memory is that they compare the new project to their memory of how long a past project took, or how much effort is required. Unfortunately peoples sometimes remember their estimate for the past project rather than the actual outcome of the past project. If they use their past estimate as the basis for a new estimate, and the past project's actual outcome was that it overran its estimate, guess what? The estimator has just calibrated a project overrun into the estimate for the new project.
While guessing and intuition most definitely are positively correlated with project overruns, another less recognized fact is that the use of documented facts are negatively correlated with project overruns. In other words, there is a world of difference between giving the PM an off-the-cuff estimate versus saying, "I can't give you an answer of the top of my head, but let me go back to my desk, check a few notes, and get back to you in 15 minutes. Would that be OK?".
While this is a simple point, off-the-cuff estimates is one of the most common errors that project teams make. So in order to become a better software engineer, we need to stop delivering off-the-cuff estimates !
This blog post is the first in a long series about estimation I will be doing. Estimation is probably the single most important skill next to actual programmatic skills for a programmer, and even for non-programmers estimation is one of the most frequently performed activities, however also one of the skills that we pay the least attention to.
First step in becoming a better estimator is to realize that off-the-cuff estimates are invalid and errorprone, and should be replaced by a structured analysis of the entity being estimated based on documented facts.
Idealism is what precedes experience; cynicism is what follows...
Subscribe to:
Post Comments (Atom)
Blog Archive
-
▼
2008
(123)
-
▼
July
(31)
- Adobe Flash Player : MultiThreading
- Adobe Flash Player : Codenames
- Google Gears : WorkerPool
- Google Gears
- Adobe Flex : Change between Debug and Production B...
- Adobe Flex : Code Quality of Flex 4
- Archived Adobe Flash Player Installers
- Debugging WebORB from Visual Studio
- AXIS IP Cameras SWF Streams are not loadable with ...
- WebORB : Installing on Vista
- Adobe MAX 2008 in Milan is now open for registration
- Adobe Flex : MXML 2009 Specification
- Adobe Flex : Documentation for Gumbo (Flex 4)
- Adobe Flex : 3 methods for Deeplinking
- Workaholics United : Push, Pull & Standardization
- Workaholics United : Consider All Factors (CAF)
- Estimation : Off-The-Cuff Estimates
- Flash Player is the most ubiquitous Platform avail...
- Writing Final Classes and Methods
- Workaholics United : Playing the Percentages
- 21 laws of Programming
- Workaholics United : Upgrade an Unproductive Day b...
- Flex : URI Class implementation
- Flex : Pageable ArrayCollection with support for a...
- PV3D : Training in Cologne
- Flex SDK : Skinning in Flex 4 (Codename: Gumbo)
- ILog Elixir 2.0 Beta Program Started
- Google Trends of XAML and MXML
- A Flex SEO contest (by Ryan Stewart)
- Adobe Flex : The Undocumented StaticEventDispatcher
- SWF now supports SEO !
-
▼
July
(31)
My Network
-
-
Stop dragging me into board meetings - Dear Reader : This might be a bit more NEGATIVE than you’re used to. Apologies about that. I love to chair startups and companies, but I hate 95% board m...9 years ago
-
Design practice makes perfect - Evidence gained from research is powerful. It can persuade the most stubborn board members if presented in a way where decisions can be made based on facts...10 years ago
-
-
dutch vs danish politics - First reaction: glad I don’t live there. And then I made this comparison. It doesn’t differ that much actually. CDA 14% – Konservative 10% VVD 21% – Venstr...14 years ago
-
The Next Web – Timothy Ferriss - First speaker on the last day of The Next Web was Timothy Ferriss, author of the ”4-Hour workweek”. I don’t know what I was really expecting from a guy who ...14 years ago
-
Links for Motorcycle enthusiasts - MC travel-blogs: Must see: http://www.kccd.no/ http://4qconditioning.blogspot.com/ Danish blogs: http://www.ossianbuilds.blogspot.com http://wrenchmonkees....14 years ago
-
New Arduino project - I found myself a new Arduino project – an automated car! Well how to go about this. My best approach was to get a cheap RC toy car from the local toy store...15 years ago
-
Unrecognized selector sent to instance - As you may or may not know, I do iPhone/Cocoa touch now... While playing around with something this evening I stumbled across something I thought I'd share...15 years ago
-
-
-
-
-
-
-
About Me
- Peter Andreas Molgaard
- Copenhagen, Denmark
Labels
- Adobe Flex (62)
- Events (28)
- Best Practices (27)
- ActionScript 3.0 (16)
- Adobe AIR (15)
- Tools (15)
- Workaholics United (14)
- PV3D (10)
- Arbitrary Thoughts (9)
- PureMVC (7)
- Adobe Flex SDK (6)
- Adobe Max (6)
- Methodology (6)
- RIA (6)
- State Machines (6)
- .NET (5)
- Adobe Flex Builder (5)
- DFUG (5)
- Google (5)
- WebORB (5)
- Data Visualization (4)
- Flash Platform (4)
- Independent Thinking (4)
- Process (4)
- SEO (4)
- Silverlight (4)
- Adobe Flash Player (3)
- Code Design (3)
- Flash Player (3)
- HCI (3)
- MAC vs. PC (3)
- Microsoft (3)
- Performance Optimization (3)
- Stockholm (3)
- Undocumentation (3)
- Visual Studio (3)
- Windows Workflow Foundation (3)
- ACE (2)
- AUG (2)
- Adobe Thermo (2)
- Ajax (2)
- Bug Report (2)
- Cairngorm (2)
- Commerciel (2)
- Documentation (2)
- Estimation (2)
- Firefox (2)
- Google Gears (2)
- London (2)
- Morphable Interfaces (2)
- SVN (2)
- SoftwareEngineering (2)
- Test (2)
- Admin (1)
- Adobe Flex Adobe Flex Builder (1)
- Facebook (1)
- Graphics (1)
- Hardware (1)
- HelloGroup (1)
- IEEE (1)
- Outsourcing (1)
- Training (1)
- XAML (1)
No comments:
Post a Comment