This index structure is intended to accomplish the following goals
- Organize 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.
This layout structures the playbook content to make it easy day to day to find relevant resources during an Agile sprint.
- Project Start
- Team Agreements
- Repository organization strategies (How many repositories? How should I decide?)
- Setting up a new repository (readme, license, ignores, etc)
- Versioning (extend)
- Recipe for implementing Semantic Versioning
- ADO Pipelines
- Jenkins
- Recipe for implementing Semantic Versioning
- Building a Product Backlog
- Guide to creating stories
- INVEST
- User story and acceptance criteria examples
- Defining stories for ML
- Recipes
- Managing product backlog in ADO
- Guide to creating stories
- Day 1
- Sprint Planning
- Purpose, Goals, Participants, Facilitation Guidance, Impact, and Measures
- Capacity Planning
- Tasking
- Dividing work WIP Limits
- Test-First Development
- Conceptual (Purpose, Goals, Impact, and Measures)
- Developing Test Cases
- Unit Testing
- Conceptual (Purpose, Goals, Impact, and Measures)
- Load Testing
- Feature Branching (creating branch for new story)
- Sprint Planning
- Day 2
- Source Control
- Commit best practices
- Git guide
- Continuous Integration
- Conceptual (Purpose, Goals, Impact, and Measures)
- Recipes for ADO
- Conceptual (Purpose, Goals, Impact, and Measures)
- Scrum of Scrums
- Purpose, Goals, Participants, Facilitation Guidance, Impact, and Measures
- Daily Standups
- Purpose, Goals, Participants, Facilitation Guidance, Impact, and Measures
- What should be in my standup update
- Recipes
- How to run efficient standups for remote teams
- Purpose, Goals, Participants, Facilitation Guidance, Impact, and Measures
- Source Control
- Day 3
- Pull Requests (separate from code reviews)
- Conceptual requirements for pull request (it should build, have 1 reviewer, linked work item, build changes)
- Add emphasis on importance of protecting master, effect this has on crew efficiency
- Recipe for Setup in
- Azure DevOps
- GitHub
- Code Reviews
- Conceptual
- Add to checklist (breaking changes & backward compatibility, security, fault tolerance, etc)
- Conceptual
- Conceptual requirements for pull request (it should build, have 1 reviewer, linked work item, build changes)
- Code Merging
- prescribe strategy (i.e. squash /w or w/o rebase)
- Pull Requests (separate from code reviews)
- Day 4
- Continuous Deployment (extend, much more explanation needed)
- Conceptual, Purpose, Goals, Impact and Measures
- Which environments (ci, test, stage)? For each environment...
- Conceptually whats is the purpose for each env
- When should deployment trigger
- Pre-deployment approvers
- Sign off for promotion
- Which environments (ci, test, stage)? For each environment...
- Recipes for Setting up CD Pipelines
- Azure DevOps
- Conceptual, Purpose, Goals, Impact and Measures
- Asserting Test Cases and Automation
- Continuous Deployment (extend, much more explanation needed)
- Day 5
- Sprint Demo
- Retrospectives
- Conceptual
- Inputs (Requirements to have ready before meeting)
- Participants required
- Outputs (Decisions, actions to conclude meeting)
- Guide for retrospective facilitator
- Timeline for 1 hour retro
- Tips for sticking to time
- Voting for action items
- Recipes
- Remote retros using ADO Retrospectives
- Remote retros using Retrium
- Conceptual
- Grooming
- Conceptual
- Inputs (Requirements to have ready before meeting)
- Participants required
- Outputs (Decisions, actions to conclude meeting)
- Definition of ready for stories
- Examples of well defined acceptance criteria
- Can the story be tested as written
- Can it be completed within a sprint
- Is it dependent on other stories
- Estimation
- Resolving estimation conflicts (two people are sizing differently))
- Conceptual
This workflow makes the following assumptions about the development environment
- Team is using git for version control.