The+Role+of+Developers+in+Agile+Teams

Historically, the role of developers in a project management environment was very narrow and restrictive with them being very instrumental in the delivery of projects but playing more of a background role. The project manager conventionally assigned roles for the developers to work on and were left on their own to work on specifications and requirements without being bothered with the outer world. In the agile environment, there has been a need for the developer to have a more visible role due to their cross- functional influence in the nature of their role. With developers usually being a self- organised team, the agile methodology creates a completely new set of roles they play in the project management process. (Blotney, 2010)

toc

Agile Teams
= = Agile teams are major part of software development and they are second important people in any business unit. Team usually consist of developers, testers, business analysts and so on, every team member is devoted to mutual vision and goal and every team member is committed to achieve desire goals, team members usually do what is expected of them at certain time to achieve goals.(Agile Sherpa, 2010) Agile teams can be large or small depending on the size of the project.

In agile processes there are several roles with different names depending on the methodology used. Roles are not allocated positions, any person in agile teams can take one or more roles and they can switch their roles over time, any certain roles have zero or more people in it at any given point in project. (Ambler, 2010)



When an agile team reaches around 20 or more they should be divided in to more smaller teams or sub teams or use “teams of team” approach. The strategy behind this approach is to divide larger teams in to smaller teams and more effective way to accomplish this strategy is to change the architecture of a system. Each sub team should be responsible for one or more subsystems, also this will enable them to work as a small agile team to provide working software on schedule basis. 

The role of developers in projects was really narrow. Previously, project managers were handing tasks to developers; once they had done the task they have to repeat same process for another task, in simple words developers were left alone with their task, not concerned about the external world. But now, the role of developers has been significantly changed due to agile teams. Agile methodologies are modified for cross-functional and self-organizing teams. Due to agile methodologies the set of responsibilities have been changed for developers:
 * Requirements for projects are not that much detailed, so it’s up to a developer to refine these requirements by asking questions or talking with business people.
 * Project Managers are no more assigning task, team should self- organize and choose tasks that are available.
 * Project Manager has no authority to estimating everything and committing on behalf of teams. Developers are involved in estimating tasks and making commitment to user.
 * Developers are not the only ones accountable for coding they are accountable for receiving story and they have to perform that task.
 * Teams have responsibility to reflect and adapt the situation they are in and their role is to identify the effective techniques and process to handle those situation.(Blotney, 2010)

Developers follow set processes required in an Agile methodology environment to deliver projects. See diagram below:



//Copy write : managedmayhem.com// Requirements: These are high level requirements as well as scope in delivering the project. Agile developers have the role of understanding requirements by gathering information and specifications to organically grow a workable software process that reflects the needs of clients. Architecture & Design: Developers agree on the architecture and design with both clients and project team members by identifying and exploring the best technological infrastructure needed. This can be done by coding and modelling the software to check for any issues that may arise in the development process and creates an understanding of what is expected. Once agreed, the software is then designed. Development: Review and continual development of product (software) is carried out incrementally over-time to meet the business needs of the organisation. Test and Feedback: Deliverables are tested against specifications by both developers and clients and feedback is given from both ends enabling the system to be improved as the need arises. (Rising, 2009)

** Roles and Responsibilities **
Agile developers are responsible for the creation of products (software) by actively defining an overall approach in translating client requirements and adding a high business value in employing good techniques and practices
 * Agile developers are responsible for the analysis, estimating, design, coding and testing of software processes and usually collaborate as part of a team with a shared aim and responsibility of delivering the software.
 * Agree technical architecture and integrity of software by adhering to standards of best practice.
 * Manage stakeholder expectations in terms of communication, progress reporting, budget management and facilitation in the delivery of software (Blotney, 2010)

Adaptive: Agile developers need to be adaptive due to the nature of projects. As a result of changes in requirements, being able to adapt to changes when required for continuous improvement of a software is very vital Proactive: Developers need to be proactive and own the project by seeing it from start to finish as part of their job profile. The developer keeps track of tasks being executed and completed without waiting for instructions from management. This process could include increasing test coverage of a software, re-factoring coding for simplicity of design, creating of accurate documentation to support design process and so on. Multi- Skilled: Developers may be required to do non- technical tasks at times as a result of changing requirements of a customer. This involves developing generalised skills and the willingness to work with others in adhering to an organisation’s current business need. Leadership and Influence: Effective and strong leadership skills is needed in an Agile environment. Developers take the role of organising a self sufficient team in assigning and managing tasks. This ensures the management of the developmental process by improving quality and effectiveness. Good communication Skills: Developers have to be effective communicators as they are responsible for understanding client requirements and communicating those requirements with team members. Effective Communication skills will ensure the smooth running and understanding of a project’s business objective.(Milinsky, 2009) Historically, the role of developers in a project management environment was very narrow and restrictive with them being very instrumental in the delivery of projects but playing more of a background role. The project manager conventionally assigned roles for the developers to work on and were left to their own to work specifications and requirements without being bothered with the outer world. In the agile environment, there has been a need for the developer to have a more visible role due to their cross- functional influence in the nature of their role. With developers usually being a self- organised team, the agile methodology creates a completely new set of roles they play in the project management process. (Blotney, 2010)

** References **
Agile Software Development’ More About Human Ideology, Rather Machine or Technology! [Online] Available at: [][Accessed: 10th February 2012]

Blotney, M. (2010) “Is it easy to be a Developer in Agile Team” Available at: [] (accessed 12th February 2012)

Milinsky, J. (2009), Top 10 Activities of the Product Owner, Available at: [] (assessed 15th February 2012)

Scott W. Ambler (2008) ‘Agile and Large Teams’ Does Agile scale to big—make that "really big"—team sizes?. [Online] Available at: [][Accessed: 10th February 2012]

Rising, J. (2009) Agile Software Development Process, Available at: [] (accessed 13th February 2009)

Scott W. Ambler (2008) ‘Agile and Large Teams’ Does Agile scale to big—make that "really big"—team sizes?. [Online] Available at: [][Accessed: 10th February 2012]

Thomas S (2008) ‘[|It's a Delivery Thing]’ The art of leading software development teams.8th June 2008. [Online] Available at: []