This post argues “Why We Should Stop Estimating” completely in software projects. It is very problematic.
I certainly agree that most of the IT projects I have been involved in, there is a huge effort to come up with an estimate, and then usually that estimate is neither used effectively nor provides any real bounds on the project. Projects estimated for two weeks go on for months. Other projects badly needed are never started because they are “too big”.
There is a better and more pragmatic approach. Generally the department has a fixed budget and a fixed overall size. The purpose of the estimate is just to prioritize work.
- Start with a simple tee-shirt estimate: S, M, L, and XL. Basically, will the project take one person-week, four person-weeks, 3 person-months, or larger than that? You need this ballpark to understand the potential ROI of starting the project. It is rough. Any effort in coming up with an accurate estimate is a waste of time, because it will most likely be wrong.
- Meet weekly to review all running projects, and whether they are providing value.
- Work to prioritize projects that are just about to complete. Get projects finished if at all possible, so that people can move on to other things.
- Shut down the projects that are dragging on and not producing any visible results.
- Don’t start any new projects while you have a specified number of running projects. You should never have more projects than you have people in the department, and it probably should be some fraction of that number. Decide on what the maximum number of fixed projects will be, and don’t start new ones when you have reached that number.
- Don’t attempt to schedule anything more than a week or two in advance. If you have a forced schedule (such as a trade show or some other event that must be fixed in time) then that is a goal to work for, and be sure to leave plenty of buffer for unexpected things.
It is not about planning things perfectly in advance, but instead it is about optimizing resource within the highest priority projects that you are currently running.
But it is important to realize that some basic amount of estimating is needed to support the decisions of which project to start next. If you have absolutely no idea how large a project is, you might choose the wrong one to start. Beyond that, efforts at coming up with detailed estimates are wasted.