Agile Best Practices 101
- Priorities (product backlog) maintained by a dedicated role (product owner)
- Development process and practices facilitated by a dedicated role (Scrum master)
- Sprint planning meeting to create sprint backlog
- Planning poker to estimate tasks during sprint planning
- Time-boxed sprints producing potentially shippable output
- Mutual commitment to sprint backlog between product owner and team
- Short daily meeting to resolve current issues
- Team members volunteer for tasks (self-organizing team)
- Burn down chart to monitor sprint progress
- Sprint review meeting to present completed work
- Sprint retrospective to learn from previous sprint
- Release planning to release product increments
- User stories are written
- Give the team a dedicated open work space
- Set a sustainable pace
- The project velocity is measured
- Move people around
- The customer is always available
- Code written to agreed standards
- Code the unit test first
- All production code is pair programmed
- Only one pair integrates code at a time
- Integrate often
- Set up a dedicated integration computer
- Use collective ownership
- Simplicity in design
- Choose a system metaphor
- Use class-responsibility-collaboration (CRC) cards for design sessions
- Create spike solutions to reduce risk
- No functionality is added early
- Refactor whenever and wherever possible
- All code must have unit tests
- All code must pass all unit tests before it can be released
- When a bug is found tests are created
- Acceptance tests are run often and the score is published