Engineers and deadlines

Engineers and deadlines

Avadhut Phatarpekar bio photo By Avadhut Phatarpekar Comment

“So, how long will it take?”

As an engineer I hear these words everyday. Multiple times. Project managers & business leaders always need to know how long something will take to deliver—it could be a bug fix or a new feature request. Chances are they need the deadline estimate fast and they need it to be as accurate as possible. However, there is a missing piece of puzzle when it comes to deadline estimate—the requirements aren’t as detailed as they need to be. And it is partly us, engineers, fault. We never turn around and ask more details. We simply consider what we are told as the final version of the truth and proceed to provide the deadline we think is achievable if the specifications we were once told remain frozen. And as we know, this rarely happens. Result: missed deadlines and blame-y retrospectives.

Here’s how I put a stop to this travesty in my team.

  1. Deadline estimation is a collaborative excercise: Arriving at a deadline is not the sole responsibility of engineers. When asked for a deadline, ask your product manager to sit with you, break down the task further into more granular items. Then, assign time estimates to the items you know about & some risk-associated buffer to the ones you don’t. This will also help the product manager to, over time, intuitively estimate deadlines on his/her own too.
  2. When the deadline is specified: Sometimes, instead of asking you for a deadline, business priorities dictate that we achieve something by a particular date. In this case, we still follow the above approach but we work from the bottom toward the top. So we again break down the task into more granular items. Assign time estimates and then see what we can achieve by the given deadline. Eliminate items, along with the business owner, that are deemed unnecessary/good-to-have for the given deadline. The analogy I like to use to explain this approach is car manufacturing. The business dictates that the car needs to cost a specific amount (so we can’t go overboard). Based on this, engineering determines what material to use, what level of craftsmanship, etc. You can’t expect to engineer a Maybach at the price of a Ford Mondeo. It is all about tolerances.