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.
You will find much more detail on this in my Online Agile Project Management Training.