|
| 1 | +--- |
| 2 | +title: Structure of a Sprint |
| 3 | +summary: A guide to how a sprint should be structured |
| 4 | +author: Scott McCarthy |
| 5 | +date: 18/08/2022 |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +The purpose of this document is to: |
| 10 | + |
| 11 | +- Organize content in the playbook for quick reference and discoverability |
| 12 | +- Provide content in a logical structure which reflects the engineering process |
| 13 | +- Extensible hierarchy to allow teams to share deep subject-matter expertise |
| 14 | + |
| 15 | +## The first week of a Project |
| 16 | + |
| 17 | +### Before starting the project |
| 18 | + |
| 19 | +- Discuss and start writing the [Team Agreements](../team-agreements.md). Update these documents with any process decisions made throughout the project |
| 20 | + - [Working Agreement](../team-agreements/working-agreements.md) |
| 21 | + - [Definition of Ready](../team-agreements/definition-of-ready.md) |
| 22 | + - [Definition of Done](../team-agreements/definition-of-done.md) |
| 23 | + - [Estimation](estimation.md) |
| 24 | +- XXX [Set up the repository/repositories](source-control/README.md#creating-a-new-repository) |
| 25 | + - Decide on repository structure/s |
| 26 | + - XXX Add the following files [README.md](resources/templates/README.md), [LICENSE.md](resources/templates/LICENSE), [CONTRIBUTING.md](resources/templates/CONTRIBUTING.md), .gitignore, etc |
| 27 | +- Build a [Product Backlog](../backlog-management.md) |
| 28 | + - Set up a project in your chosen project management tool (ex. Azure DevOps or JIRA) |
| 29 | + - [INVEST](<https://en.wikipedia.org/wiki/INVEST_(mnemonic)>) in good User Stories and Acceptance Criteria |
| 30 | + - XXX [Non-Functional Requirements Guidance](design/design-patterns/non-functional-requirements-capture-guide.md) |
| 31 | + |
| 32 | +### Day 1 Activities |
| 33 | + |
| 34 | +- [Plan the first sprint](../sprint-planning.md) |
| 35 | + - Agree on a sprint goal, and how to measure the sprint progress |
| 36 | + - Determine team capacity |
| 37 | + - Assign user stories to the sprint and split user stories into tasks |
| 38 | + - Set up Work in Progress (WIP) limits |
| 39 | +- XXX [Decide on test frameworks and discuss test strategies](automated-testing/README.md) |
| 40 | + - Discuss the purpose and goals of tests and how to measure test coverage |
| 41 | + - Agree on how to separate unit tests from integration, load and smoke tests |
| 42 | + - Design the first test cases |
| 43 | +- XXX [Decide on branch naming](source-control/naming-branches.md) |
| 44 | +- XXX [Discuss security needs and verify that secrets are kept out of source control](continuous-delivery/secrets-management/recipes/azure-devops/secrets-per-branch.md) |
| 45 | + |
| 46 | +### Day 2 Activities |
| 47 | + |
| 48 | +- XXX [Set up Source Control](source-control/README.md) |
| 49 | + - XXX Agree on [best practices for commits](source-control/README.md#commit-best-practices) |
| 50 | +- XXX [Set up basic Continuous Integration with linters and automated tests](continuous-integration/README.md) |
| 51 | +- Set up meetings for [Daily Stand-ups](../stand-ups.md) and decide on a Process Lead |
| 52 | + - Discuss purpose, goals, participants and facilitation guidance |
| 53 | + - Discuss timing, and how to run an efficient stand-up |
| 54 | +- If the project has sub-teams, set up a [Scrum of Scrums](../scrum-of-scrums.md) |
| 55 | + |
| 56 | +### Day 3 |
| 57 | + |
| 58 | +- [ ] [Agree on code style](code-reviews/README.md) and on [how to assign Pull Requests](code-reviews/pull-requests.md) |
| 59 | +- [ ] [Set up Build Validation for Pull Requests (2 reviewers, linters, automated tests)](code-reviews/README.md) and agree on [Definition of Done](agile-development/team-agreements/definition-of-done.md) |
| 60 | +- [ ] [Agree on a Code Merging strategy](source-control/merge-strategies.md) and update the [CONTRIBUTING.md](resources/templates/CONTRIBUTING.md) |
| 61 | +- [ ] [Agree on logging and observability frameworks and strategies](observability/README.md) |
| 62 | + |
| 63 | +### Day 4 |
| 64 | + |
| 65 | +- [ ] [Set up Continuous Deployment](continuous-delivery/README.md) |
| 66 | + - Determine what environments are appropriate for this solution |
| 67 | + - For each environment discuss purpose, when deployment should trigger, pre-deployment approvers, sing-off for promotion. |
| 68 | +- [ ] [Decide on a versioning strategy](source-control/component-versioning.md) |
| 69 | +- [ ] Agree on how to [Design a feature and conduct a Design Review](design/design-reviews/README.md) |
| 70 | + |
| 71 | +### Day 5 |
| 72 | + |
| 73 | +- [ ] Conduct a Sprint Demo |
| 74 | +- [ ] [Conduct a Retrospective](agile-development/retrospectives.md) |
| 75 | + - Determine required participants, how to capture input (tools) and outcome |
| 76 | + - Set a timeline, and discuss facilitation, meeting structure etc. |
| 77 | +- [ ] [Refine the Backlog](agile-development/backlog-management/backlog-refinement.md) |
| 78 | + - Determine required participants |
| 79 | + - Update the [Definition of Ready](agile-development/team-agreements/definition-of-ready.md) |
| 80 | + - Update estimates, and the [Estimation](agile-development/sprint-planning/estimation.md) document |
| 81 | +- [ ] [Submit Engineering Feedback for issues encountered](engineering-feedback/README.md) |
0 commit comments