Program Management: Defining Milestones

Question

How do you break up a complex project into milestones and prioritize these milestones?

Background

If you’ve worked on large complex projects that span multiple quarters or even years, then you know that being able to define incremental milestones to demonstrate progress is imperative to keep everyone on track and stakeholders happy.

Particularly for senior level roles, you’ll need to show that you have a record of delivering large scale projects with many stakeholders. Establishing smaller milestones along the way is a hallmark of a strong TPM.

Solution approach

We need to demonstrate that we can break down an ambitious project into smaller, achievable milestones in a logical manner. Similar to previous open-ended questions, we will use the following structured approach to answer this question:

  • Start by providing a framework for breaking a project into milestones.

  • Provide an example project where you applied this framework.

Sample answer

I’ll start by providing a framework for creating milestones.

Understand project deliverables

Complex projects will usually require a set of deliverables needed to accomplish the required objectives. The first step is to identify the necessary deliverables for a particular project. These can include:

  • A requirements document
  • A project plan
  • A functioning system
  • A system deployed on X% of servers

Some deliverables can be broken down even more. For example, a “functioning system” can be broken down into:

  • A functioning system with all P0 requirements implemented
  • A functioning system with all functional requirements implemented
  • A functioning system with all non-functional requirements implemented (i.e., performance and cost constraints are met)

Depending on the size and complexity of the program and system we are building, we want to make sure the deliverables are granular enough to be well understood by all stakeholders. Some smaller projects may not require any formal project plan and only contain one system release, while larger projects may involve multiple planning documents and many system releases.

Deliverables to milestones

Once we have a good understanding of the deliverables, we can group these deliverables into logical and meaningful groups. These groups will become our milestones. For example:

  • Planning Milestone
    • Requirements document
    • Project plan
  • Development Milestone 1
    • System that meets P0 functional requirements
  • Development Milestone 2
    • System that meets all functional requirements
  • Release Milestone 1
    • System is deployed on a subset of servers and only available to beta customers.
  • Release Milestone 2
    • System is deployed on all servers and available to all customers

Milestone ordering

Milestones should be ordered based on whether it is blocking work of future milestones or not. For example, a planning milestone will need to precede a development milestone which will need to precede a release milestone. Some milestones may be executed in parallel (for example, development of different system components can happen at the same time). So it is not always necessary to have a strict ordering.

For certain projects, you may have multiple iterations of planning, development, and release, so you may have multiple planning, development, or release milestones that are ordered as such:

  • Planning Milestone 1
  • Development Milestone 1
  • Release Milestone 1
  • Planning Milestone 2
  • Development Milestone 2
  • and so on

Goal setting

Once we have defined milestones, we will need to set goals against these milestones. This will depend on the business planning cycle and the resources available.

For example, if we have ten engineers, then we may be able to complete two planning milestones, three development milestones, and one release milestone in the next six months. This is usually determined in close collaboration with engineering leads and other folks responsible for doing the work.

Summary

This is a visual summary of a work breakdown structure utilizing the above approach for a project with separate Beta and GAGenerally Available releases with relevant milestones and deliverables:

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.