The Agile movement represents a major turning point in the way software development is performed nowadays. Captured in part by the Manifesto for Agile Software Development, published in 2001, the movement is based on twelve principles:
- Customer satisfaction by early and continuous delivery of valuable software
- Working software is delivered frequently (weeks rather than months)
- It welcomes changing requirements, even in late development
- Projects are built around motivated individuals, who should be trusted
- Close, daily cooperation between business people and developers
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Simplicity: the art of maximizing the amount of work that doesn’t need to be done—is essential
- Face-to-face conversation is the best form of communication (co-location)
- Continuous attention to technical excellence and good design
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective and adjusts accordingly
There are many specific agile development methods and most of them promote teamwork, collaboration, and process adaptability throughout the product development life-cycle.
The roles of an Agile Team
An Agile team works with a sense of urgency that is tough to match. That’s because the team knows how quickly today’s software development market moves.
“The key to successful team building is creating unity while celebrating the individuality of each team member.”
Members of an Agile team often have different roles and these roles can have different names, depending on the methodology used. Still, some roles are fairly universal.
Let’s look at the roles one by one:
Development team
The team members are responsible for the project’s creation and delivery. Normally in this team, you will find developers, QA, designers, and anyone else who has a hands-on role in product development are development team members.
Product Owner (Scrum)
Represents the voice of the customer and is responsible for bridging the gaps between the customer, business stakeholders, and the development team. The product owner is an expert on the product and can help clarify the project requirements.
Stakeholders
A stakeholder is anyone with an interest in the project. They can be users, managers of users, operations, support, Portfolio Managers, other Agile teams with dependencies, executive team, investors, and more.
Even if they are not ultimately responsible for the product, they provide input and are affected by the project’s outcome.
In addition to these roles, there are some situations where Agile teams will have extended cast members who are called upon to provide technical expertise for certain specialized skills that may not be present amongst the team members.
In time, Agile teams will find that different approaches are available and some specific solutions that work best for them. Ultimately, improving how teams innovate is a continuous journey and new methodologies will certainly emerge over time.