The role of an Agile Developer is not well-understood and many developers may have difficulty making this transition.
In a traditional plan-driven environment (aka “Waterfall”), a developer might be able to sit in his/her cube with their headset on listening to some cool tunes. And, he/she could be fairly isolated from the rest of the world and simply write code. That isn’t possible in a true Agile environment.
Agile Developer Role
The role of a developer in an Agile environment is significantly broader than that and includes:
|Task/Project Management||Taking responsibility for estimating, planning, and managing all of his/her own tasks and reporting on progress. |
This role is essentially what a project manager might do on a very small scale.
|Effective Teamwork||Collaborating closely with all the other members of the team to take shared responsibility for the overall efforts that the team has committed to. |
This role is also similar to what a project manager might do but rather than being done by a single person with the title of “Project Manager”, the responsibility is distributed among all members of the team.
|Software Quality||Taking responsibility for the quality of the software the developer produces. |
Instead of turning over some code to a separate and independent group for testing, the team, as a whole, takes responsibility for the quality of the work they produce.
A developer may or may not do the testing himself/herself but the key point is that the quality of the code is not someone else’s responsibility.
|Understanding User Needs||Interacting with users as necessary to clarify requirements. |
Developers will typically not be given a well-defined set of requirements. More often, the developer will get some general user stories that are intended to be a “placeholder for conversation” and the developer will be expected to interact with the Product Owner and users as necessary to better define what is needed.
This is essentially equivalent to a Business Analyst role on a very small scale.
The role of a developer in an Agile environment is significantly different. Developers have additional responsibilities in an Agile environment that go beyond simply writing code. I recently was in a situation where the development team was completing tasks required for a sprint, but the overall stories were not being completed. The team allocated development tasks to individual developers and also allocated overall responsibility for each story to individual developers. However, for several sprints, the development tasks were completed but a number of the stories were not.
I don’t think the developers on the team clearly understood what it meant to be responsible for a story. I think most saw their primary responsibility as completing development tasks. Completing stories was seen as kind of an administrative coordination function. It’s more than that, in my opinion – a developer who takes responsibility for stories in a sprint needs to be responsible for:
- Understanding the business purpose of the story and defining and analyzing possible alternative ways of satisfying the business purpose of the story
- Planning and estimating development tasks with other developers that are required to fulfill the story
- Working directly with the Product Owner to clarify and further define the details of how the story should be implemented
- Providing guidance to other developers as necessary who are engaged in development tasks associated with the story
- Taking overall responsibility for “shepherding” the story through the process all the way to (and including) UAT. The developer responsible for the story should lead the presentation of the completed story to the Product Owner in UAT (or Sprint Review)
I think it’s sometimes taken for granted that any developer can easily move into an Agile project – I don’t believe it’s that simple and my experience is that some developers have a hard time making that transition. Some developers just want to write code and are not even interested in taking on these additional responsibilities.
You can find related articles on the topic of “Agile Development” here:
You will find much more detail on this in my Online Agile Project Management Training.