This section provides a breakdown of the backlog for a program starting with Programs in the program backlog, features in the product backlog, and tasks in the team backlog.
Once we commit to a Program, we apply resources to break it down into Themes, Epics, Features, Product Backlog Items and Tasks.
Programs are created and remain in the program backlog.
Themes are delivery milestones in a program and they represent major bodies of work that can include the following:
There can be post-GA activities if needed, but in general a program ends once a new product is delivered to production. Additional functionality should be funded through a new program. The program team works together to define Themes. This team includes a Strategic Program Manager(SPM), Engineering Program Manager(EPM), and Architect or Principal Software Developer(PSD).
Themes are created and remain in the program backlog.
An Epic may require work by several development teams and span across multiple products or services. The program team collaborates to create Epics and usually represent the workflows defined during the program design. Epics should be self-contained enough that they can be moved from one theme to another as needed as priorities shift.
Epics are created and remain in the program backlog.
Features mark the hand off from the Program team to the Development team. The Technical Product Manager(TPM), Engineering Manager(EM), and Staff Developer collaborate break down Epics into Features.
Features are created and remain in the product backlog.
Development teams, led by an Engineering Manager, are responsible for breaking features down into Product Backlog Items(PBIs). They will typically collaborate with senior technical staff on their team to determine how the feature will be completed.
PBIs are created in the product backlog and then moved to the team backlog, once the team plans to work on them in upcoming sprints.
During sprint planning, development teams determine how PBIs will be completed. The development team self-organizes and determines which developer will complete each task.
Tasks are created in the team backlog.