Disciplined Agile

Developer: Responsibilities and Practices

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 

Responsibility

What the Developer Does

Planning

Developing estimates at beginning of iteration and in story points

Decomposing features into stories and Tasks

Committing to the backlog 

Ecosystem

Working within the team’s project environment to ensure it meets the needs of the team including:

  • Tools
  • Logistics
  • Team room 

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.

May 2023