docs/src/process/cycle.md
Development of Open MCT occurs on an iterative cycle of sprints and releases.
The sprint process assumes the presence of a project manager. The project manager is responsible for making tactical decisions about what development work will be performed, and for coordinating with stakeholders to arrive at higher-level strategic decisions about desired functionality and characteristics of the software, major external milestones, and so forth.
In the absence of a dedicated project manager, this role may be rotated among members of the development team on a per-sprint basis.
Responsibilities of the project manager including:
Certain process points are regularly scheduled in the sprint cycle.
Allocation of work among sprints should be planned relative to release goals and milestones. As a general guideline, higher-risk work (large new features which may carry new defects, major refactoring, design changes with uncertain effects on usability) should be allocated to earlier sprints, allowing for time in later sprints to ensure stability.
| Sprint | Focus |
|---|---|
| 1 | Prototyping, design, experimentation. |
| 2 | New features, refinements, enhancements. |
| 3 | Feature completion, low-risk enhancements, bug fixing. |
| 4 | Stability & quality assurance. |
The first three sprints of a release are primarily centered around development work, with regular acceptance testing in the third week. During this third week, the top priority should be passing acceptance testing (e.g. by resolving any blockers found); any resources not needed for this effort should be used to begin work for the subsequent sprint.
| Week | Mon | Tue | Wed | Thu | Fri |
|---|---|---|---|---|---|
| 1 | Sprint plan | Tag-up | |||
| 2 | Tag-up | Code freeze and sprint branch | |||
| 3 | Per-sprint testing | Triage | Per-sprint testing* | Ship and merge sprint branch to master |
* If necessary.
The software must be stable at the end of the fourth sprint; because of this, the fourth sprint is scheduled differently, with a heightened emphasis on testing.
| Week | Mon | Tue | Wed | Thu | Fri |
|---|---|---|---|---|---|
| 1 | Sprint plan | Tag-up | Code freeze | ||
| 2 | Per-release testing | Triage | |||
| 3 | Per-release testing* | Triage | Per-release testing* | Ship |
* If necessary.