It started as a simple request.
It was a cold, lazy day and my wife asked me to move furniture from room A to room B. Easy enough I can get that done in a couple of hours — I foolishly thought.
Initial estimate: 3 hours.
As with any project, initial estimates are highly speculative.
After removing the first desk, the scope creep starts. The wall behind the desk was a mess. It needed to be repainted.
“How about Accessible Beige?” New paint color — more scope creep.
Luckily, it was still early in the day. I could prep the walls, make a paint run, and get the walls painted today. Right?
New estimate: 1 day.
“Those are soooo ugly.”
Issue #2 (or is it 3?) The desk was hiding two vintage outlets that matched the old wood paneling. Even worse, outlet boxes were metal and stuck out from the wall slightly as a holdover from the original wood paneling design. (Technical debt is everywhere!)
At this point, we had to make a decision to fix it right or ignore the problem.
Adding electricity and legacy technology into the mix kills any schedule.
New estimate: Unknown.
Given there no hard deadline (i.e. company coming over), we pushed ahead to fix it the right way.
Removing, the old outlets I found that one of them was black inside where it had shorted against the metal outlet box. Bonus points: fixing fire hazard!
At the end of the day, the electricity issue was closed. The next day, we got the room painted and it looks great.
Final work time: 2 days (16 hours)
Sound familiar? From a schedule point of view, the project seems horrible: 3 hours to 16 hours (For program management nerds: Schedule Variance -433%)!
On the other hand, keeping the original schedule would have resulted in a product that was requested, but not what was wanted.
Moving the furniture into a room that looked bad would have simply resulted in an unhappy customer and new work to move the furniture (again) and repaint.
Next time, you are working on a software project consider a project at home. How often does the project grow?
In my experience is about 100% of the time.
“What about if we also did this?”
Software estimates are almost always wrong because of changing the scope and the unknown technical difficulties. To keep your project on track here are a few tips.
- Ruthlessly focus the project scope to achieve your goal.
- Understand the why! You need to have a measurable goal tied to the project. Acquire X new clients in first 3 months. Improve conversion rate by 10%.
- Technical gotchas, are a fact of life in any software development project but hiring experienced team can help fix the fire hazards and defer the annoying issues.
- Track your progress regularly. At Orange Robot, we prefer weekly updates. Longer time periods can turn a small misunderstanding into an expensive mistake.
- See 1. “It might be nice” kills more projects. Focus on 1 goal at a time. If it is not critical to your “why” do not do it.
Have a new software project that needs help with scope or roadmap?
Or a sinking software project that needs to be rescued?
We can help. Orange Robot provides software management consulting services and turn-key development solutions. Alas, we are not available for home remodeling help.