The purpose of this document is to:
- Organize content in the playbook for quick reference and discoverability
- Provide content in a logical structure which reflects the engineering process
- Extensible hierarchy to allow teams to share deep subject-matter expertise
- Discuss and start writing the Team Agreements. Update these documents with any process decisions made throughout the project
- Set up the repository/repositories
- Decide on repository structure/s
- Add README.md, LICENSE, CONTRIBUTING.md, .gitignore, etc
- Build a Product Backlog
- Set up a project in your chosen project management tool (ex. Azure DevOps)
- INVEST in good User Stories and Acceptance Criteria
- Non-Functional Requirements Guidance
- Plan the first sprint
- Agree on a sprint goal, and how to measure the sprint progress
- Determine team capacity
- Assign user stories to the sprint and split user stories into tasks
- Set up Work in Progress (WIP) limits
- Decide on test frameworks and discuss test strategies
- Discuss the purpose and goals of tests and how to measure test coverage
- Agree on how to separate unit tests from integration, load and smoke tests
- Design the first test cases
- Decide on branch naming
- Discuss security needs and verify that secrets are kept out of source control
- Set up Source Control
- Agree on best practices for commits
- Set up basic Continuous Integration with linters and automated tests
- Set up meetings for Daily Stand-ups and decide on a Process Lead
- Discuss purpose, goals, participants and facilitation guidance
- Discuss timing, and how to run an efficient stand-up
- If the project has sub-teams, set up a Scrum of Scrums
- Agree on code style and on how to assign Pull Requests
- Set up Build Validation for Pull Requests (2 reviewers, linters, automated tests) and agree on Definition of Done
- Agree on a Code Merging strategy and update the CONTRIBUTING.md
- Agree on logging and observability frameworks and strategies
- Set up Continuous Deployment
- Determine what environments are appropriate for this solution
- For each environment discuss purpose, when deployment should trigger, pre-deployment approvers, sing-off for promotion.
- Decide on a versioning strategy
- Agree on how to Design a feature and conduct a Design Review
- Conduct a Sprint Demo
- Conduct a Retrospective
- Determine required participants, how to capture input (tools) and outcome
- Set a timeline, and discuss facilitation, meeting structure etc.
- Refine the Backlog
- Determine required participants
- Update the Definition of Ready
- Update estimates, and the Estimation document
- Submit Engineering Feedback for issues encountered