Agile Teams

Introduction

 My personal observation of Agile teams, their structuring and ability to deliver 

Collateral

Whole teams

Agile teams should be whole/complete teams comprising of members with all the skills required to get the job done.  That does raise the question as to what happens when your team requires specialist skills??

T-shaped members

The team members should have a depth of knowledge in certain areas (technical specialities so that they can contribute something of value to the team) but a breadth of knowledge that covers the SDLC.  They seek to deepen their current specialities as well as those areas where they are not experts.

Agile teams are stable

The team delivers not individuals.  So they function as one, hence the whole teams concept from above.  Pulling and reassigning team members from iteration to iteration is detrimental.  Yes, there is the concept of T-shaped members but remembers the analysis of story point value us based on a number key attributes, one of which is the team members abilities to do something.

Small Agile Teams

Agile teams do not consist of positions but roles.  There are a number of roles, each of which may have zero or more persons acting in that role.  

RoleDescription

Team Lead

Scrum master in scrum

Team Coach in other other approaches

Responsible for facilitating the team, obtaining resources for it, protecting it from problems. Typically this role encompasses the soft skills of project management. Some would argue that it shouldn't take on the activities of planning and scheduling alone, these should be a team activities.

Team Member

(developer/programmer)

Responsible for the creation and delivery of a system. This includes modeling, programming, testing, and release activities, as well as others.

Product Owner

(on-site customer in XP, active stakeholder in AM)

The the one person on a team who is responsible for the backlog (prioritized work item list). They make decisions in a timely manner, and provide information in a timely manner. They should be empowered to make decisions on behalf of the customers, available to allow the team function at 100% and lastly qualified - they understand the needs of the customer and fully understand Agile.
StakeholderAnyone who is potentially affected by the development and/or deployment of a software project.

 

But in actual fact this is far too simplistic, there are many other roles that must interact with the Agile team.  For instance there are technical and domain experts.  Technical experts will bring knowledge of build environments and technologies to the team.  Domain experts will bring specialised knowledge to the team.  It's unreasonable to expect the Product Owner to have knowledge in all of these areas.  It is also highly unlikely that an Agile would knowledge in all of these areas.

So structurally the model would look something like this

Team Members

Team Leam

Architecture Lead

Product Owner

Domain Experts

Technical Leads

End Users

Support Staff

Architects

Senior Managers

Auditors