By definition an agile team has a high amount of daily interaction. This brings out a need to establish some common set of rules that all team members abide by.
This is a simple document which can be changed every iteration or sprint or necessary. Anything goes here that all developers agree.
Common things added in this list are:
1) Core time that the team members will be present. In case of a distributed team this would define the core overlap time the distributed teams will meet
2) Time of stand up.
3) How much pairing hours are considered good. An ideal pairing day could consist of any where from 2 – 6 pairing hours for example
This document is visited every interation and changes are made. This is one of the visible indicators that should be in the area where the teams are working.
Here is an actual example of one such document from a highly productive scrum team
- Tell the Truth.
- Use the Impediment Backlog for blocking issues
- Address any issues to the correct party (at the right time).
- Meetings: Be on time, end on time, have an agenda
- Communicate individual schedule
- Use sticky note on monitor, email, phone call, etc.
- Update backlog before SCRUM daily
- Be present for core hours: 10:00AM – 5:00PM
- Communication – to the best of our ability
- Publish phone numbers & Calendar
- SCRUM is at 11:00AM Pacific Time
- If unavailable for SCRUM, communicate status
- Test Driven Development is a requirement for the project.
- Pairing or code reviews are required for any shipping code
- Part of requirements for DONE criteria
- When pairing, turn off distractions (email, IM)
- Define and adhere to DONE criteria for stories
- Record Accurate (actual) hours
- Define and adhere to Version Control rules
- Don’t break the CI build!