Advice from a hiring manager

From Coding to Leading: An Experienced Manager’s Tech Journey.

Software Estimating
Technology

Software Estimating

Sep 21, 2023

Estimates are necessary for a business to function – how many engineers to hire/staff, how long those resources will be unavailable and dedicated to this work, how much money to set aside to pay this group. Should the business move forward with this work. This is with an in house engineering team – more complicated if it’s an outside team doing the work.

 

As an engineer I don’t like estimates, they’re always wrong (question of how much they’re off by), and it’s assumed that they’re easy to create and they are accurate. For simple, one person areas of work that has a well know solution sure – can pretty quickly turn out an estimate, and it may even be close.

 

In reality estimating is hard. The work is often complicated and taken on by teams of engineers that have dependencies between them to make it more complicated. Often the decision to go forward with a project is made based on the estimate given. There is real tension between the business team and the engineering team if the expectations are dramatically different.


Worst example of estimating and then being wrong. 

I was at Microsoft working on Windows Vista (previously known as Long Horn), anyone remember that one?  It had a release window and many external companies were making plans around the impending release and then Bang.  Leadership hit the reset button – code quality was low, too much work was only half done and it was continuing to grow in size and effort – effectively making it impossible to ship or predict when it would ship.  What a learning experience! 

 

What should change?

The business: recognize it’s not a blood oath or guaranteed outcome.  Estimates are a point in time of the best educated guess you can make.

Engineers:  Break it down – simplify it where you can.  Deliver the work in phases.   Ask any startup company that needs to get to market quickly – do enough now to get to market.  Estimate based on what’s known, leave time for exploration, POCs or spikes to  learn more about the unknown.  Last – continually update your estimates of how much remains.  As long as it’s not a moving target you’ll be more educated every day on the area you’re working in.  Providing updates makes it easier for the business and leadership to make plans around the work that you’re doing.

 

What estimating process do you use? Is it effective? Does it scale?