The book Essential Skills for the Agile Developer: A Guide to Better Programming and Design, points out many practices that can and should be done all the time. For developers, these include never use globals and consider what your tests will look like before writing code (which is a foundation for test-driven development).
There are also quite a few practices for developers on the process side. Here are a few.
- When you've completed something, look to see if you can finish something you've started or somebody else is already working on before starting something new.
- When a request is made of you ask the person "how will I know I've done that?" before agreeing to it.
- If you are going to need someone's help in the future, let them know when work is coming their way.
- Use the "rule of three." If you've exchanged three emails with someone and it hasn't resolved the issue yet, stop discussing the issue via email and set up a conversation. After three tries it is likely you won't get it done in four!
Here are practices for the developer role. In some of these practices, other roles are also involved.
Table 1. Responsibilities and practices of the Developer
What the Developer Does
Developing estimates at beginning of iteration and in story points
Decomposing features into stories and Tasks
Committing to the backlog
Working within the team’s project environment to ensure it meets the needs of the team including:
Produce code that meets acceptance criteria
Doing detailed design
Doing systems analysis and design
Working with the tester to ensure code is tested and that code passes all types of tests for code
Assuring flow of work
Swarming with other team members on stories and task
Controlling Work-in-Process (WIP)
Working with the team lead to maintain the kanban board or agile life cycle tool and to update the team backlog
At the end of Iteration
Participating in the iteration demonstration.
Attending to unfinished work.
Participating in the iteration planning meeting.
Participating in the iteration retrospective.
Working with release management.
Following and improving the guidelines suggested in the considerations for DAD teams and the considerations for daily coordination.
Helping the team to improve continuously
Participating in the daily coordination meeting as a full participant.
Resolving impediments to progress. See issues of quality.
Practices for the Developer
- Controlling work-in-process (WIP)
- Daily coordination
- Decomposing a feature into stories
- Design patterns
- Issues of quality
- Iteration demonstration and review
- Iteration planning meeting
- Iteration retrospective
- Responsibilities and practices
- Unfinished work
- Visual controls
- Writing tasks