Engineering Deadlines

Embracing the deadline: How engineers benefit from delivery dates

Main illustration: Olenka Malarecka

People sometimes shudder at the thought of working to a deadline. They can be seen as stressful, constraining and often arbitrary. It can feel like delivery dates are chosen on a whim and imposed randomly.

When working to a deadline, however, you should never feel that the number of hours worked between now and then is all you can vary to effect the outcome.

Project planning isn’t easy. You’ve probably already heard the famous line: “good, fast, cheap; pick two.” Yes, there are levers that you can pull, but it’s a bit more nuanced than that.

Delivery dates do matter

Building features takes a lot of work. Once you’re ready to ship, more work needs to be done by others to go to market. Without working to dates it becomes very difficult to coordinate that work. Delivery dates do matter. While working without the pressure of explicit deadlines can feel liberating, it also increases the chance of distraction. Deadlines help us stay focused, aligned and driven – and can be used to keep project scope in check.

“Deadlines help us stay focused, aligned and driven – and can be used to keep project scope in check”

At Intercom, we have shipped some ambitious projects to tight deadlines in the past year. Focusing on dates allowed us to set project milestones, line up any cross-team collaboration and keep only what was necessary in scope.

How to craft deadlines

It is crucial for everyone to understand why deadlines matter for other functions within your company. Everyone on your team should know why the date was chosen. They should feel that they have some input into this – having a sense of control over deadlines helps prevent the feeling of helplessness and dread that deadlines can inspire. Here are the steps we take to craft effective deadlines:

  • Help set the date by agreeing on the scope of the project and by estimating the amount of work involved.
  • Get the stakeholders into a room with a list of possible features.
  • Mark each as either table-stakes, a differentiator or a nice-to-have and have an idea of how much effort each might take.
  • Break a project into milestones and put dates against those milestones.
  • Evaluate your progress against the dates frequently.

If for some reason the date needs to be sooner than you are comfortable with, then let someone know! It might make sense to get more people on the project or reduce unnecessary scope. Talking to a product manager or designer about your concerns is a good start.

Adjusting project scope and managing uncertainty

A big part of how we successfully handle deadlines here at Intercom is by adjusting scope. When we commit to a launch date we’re always flexible as to what set of features we’ll actually ship. Dogmatically following a plan in the face of new information leads to death marches. Success is shipping the best product we can, not a set of features we agreed on months ago.

“Success is shipping the best product we can, not a set of features we agreed on months ago”

Estimating software projects is notoriously difficult. A team can get better at it over time, but without the accountability that dates bring it’s difficult to look back and see how to improve.

No matter how good you get, once you introduce change, you add more uncertainty. Estimates should have error margins to account for this – it’s dangerous to be too optimistic.

Factors such as the following add uncertainty, and you should expand the range of your estimate if you spot them:

  • Does the team have a different makeup than before?
  • Does the project have different dependencies than before?
  • Are you using unfamiliar technologies or integrating with an API that you’ve not used before?
  • Are there any new engineering processes that might slow things down?

Planning timelines is about more than just work

Saying how much effort a project will take is only half an estimate. Putting dates against project milestones is much more effective. A team isn’t made up of easily calculable worker units – people have lives outside of work that have to be considered in planning. Laying a plan out on a timeline makes you think about other commitments that the people on your team might have: holidays, anniversaries, training, meetings. Life can’t be put on hold until the project is completed.

“Sequence your work in a way that progressively reduces the most uncertainty”

Revisit your estimates during a project. Sequence your work in a way that progressively reduces the most uncertainty. Even small things can hugely reduce risk. Look for a point of contact for each team you work with. Talk to people – make sure everyone agrees on exactly what you’re building and why.

Additionally, make reflection and improvement part of your process. Arrange a retrospective once the project completes.

Get stuff done with deadlines

To-do lists and SMART goals are great tools for getting stuff done, but goals without deadlines are mere aspirations. Adding dates turn these promises into commitments. You are probably already doing this if you use sprints or time-boxing. Adding a deadline to your goals and scheduling time in your calendar to work on them can be more effective – if only to remind you when you are busier than you thought.

Clear deadlines have had a transformative effect on how we work and helped us ship a huge amount of quality product on time. If you find yourself having a knee-jerk reaction when a deadline comes your way, rethink your response. Embrace the deadline.

Intercom careers