Shape the work
A project lead and product turn a brief into requirements, stories and milestones, each one a useful increment we can release.
The project lead
Every project has a project lead, chosen by engineering leadership. The lead is usually a Senior Engineer or above; an Engineer sometimes leads a smaller project. The lead owns the project plan, the requirements, the risks and the release plan, and keeps product and engineering in step.
Leading a project is an assignment for this piece of work, not a career level or a management role. Engineers at several levels lead projects, and leading one is a good way to grow. See Roles.
Requirements, stories and milestones
The project lead works with product on the requirements, then breaks the work into stories and tasks grouped into milestones. The lead decides when there's enough context to start writing code, usually together with product.
Ship useful increments
We shape milestones around useful increments we can release and turn on in production, such as a new page customers can use. We often call these MVP milestones. A project can have several, so customers get value before the whole project is finished.
Feature flags control when each increment becomes available. That lets us deploy early and release when the business is ready. See Review and release.
Plan the finish from the start
Every project's last milestone is a post-live milestone, planned alongside the MVP milestones rather than added at the end. See Finish clean.