The Agile Method of software development is gaining ground as more organizations focus on improving and accelerating their development processes while enhancing the quality of their products.
Amplifier et étendre le succès d'une équipe agile
Lorsque vous déployez la méthode Agile à grande échelle, à travers plusieurs équipes et initiatives, il vous faut assurer la synchronisation. Téléchargez cet eBook et découvrez sept conseils qui vous aideront à promouvoir la coordination inter-équipes et la livraison d'Agile à grande échelle.Lire le livre blanc • Amplifier et étendre le succès d'une équipe agile
Les clés pour constituer des équipes Agile et des Agile Release Trains hautement performants
Découvrez comment bâtir des équipes Agile extrêmement performantes et obtenez des réponses à des questions importantes.Consulter l'e-book • Les clés pour constituer des équipes Agile et des Agile Release Trains hautement performants
The key component for success with the Agile Method, as with many other business initiatives, is not the technology but the people involved. So much of what Agile is all about involves the individuals who play various roles in the process of planning, designing, developing, testing, approving, and rolling out software, and in the overall management of the process.
If these team members are not experienced, competent, dedicated, and engaged in the effort, the potential benefits of the Agile Method are diminished, and projects are not successful.
The Agile Method is designed to help development teams effectively address the uncertainties that are so common with the creation of new software products, and these teams are made up of the professionals who bring Agile to life. To be effective, project teams and stakeholders must communicate effectively.
Even the Manifesto that is at the heart of the Agile Method has a people component. Among the four central tenets of the Agile Manifesto are individuals and interactions over processes and tools, and customer collaboration over contract negotiation.
And included in the manifesto’s 12 principles:
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals, give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Among the key differences between Agile and the traditional waterfall method of development are that Agile is people-centric while the traditional method is process-centric. It’s also important to note that the traditional method favors specialized roles while Agile encourages the interchangeability of roles. And while the customer’s role is important in the older method, it’s critical with Agile.
Here are some of the key roles that might be part of an Agile development initiative at an organization.
The stakeholders in an Agile development project can include a wide variety of individuals, all of whom are materially affected by the outcome of the product or products being developed. They might be:
- Those funding the project
- Senior managers
- Portfolio managers
- Operations staff
- Direct end users
- Indirect users
Stakeholders can also include developers who are working on other products that integrate or interact in some way with the software being developed as part of the project, as well as support and maintenance staff that might be affected by the development or deployment of the software.
Depending on the specific project and its strategic importance to the overall business goals of the organization, some or all stakeholders might be intricately involved in the day-to-day progress of the project. Close and ongoing collaboration with stakeholders can be an important success factor with development projects, because they are the people who stand to gain the most from the outcome.
Among the most important stakeholders is the product owner (or product manager), generally a representative of the organization that is buying or acquiring the software being developed.
The product owner sets and communicates the requirements of the product or set of products, including which features and capabilities are needed, which security and privacy settings are essential, and ease of use factors. This individual is the person on the project who is the voice of the customer and therefore plays a major role in ensuring the success of the project.
It’s critical for the product owner to have the skills to communicate with members of the Agile development team so all requirements are clearly understood. If the line of communication fails for any reason, the project is likely doomed, and the customer won’t be happy.
The product owner should be someone other team members can go to for information about work priorities, updates, and issues that emerge during the development process, and be able to provide timely responses to queries. The owner also offers value by providing team members with access to expert stakeholders.
The product owner is also the person who will represent the work of the Agile team to the stakeholder community, so they must have a clear understanding of the project and its progress. Responsibilities in this regard might include:
- Demonstrating software programs to key stakeholders
- Communicating project status
- Organizing reviews
- Educating stakeholders about the development process
Every development team needs a leader, and even though the Agile Method downplays the idea of centralized management, Agile teams are no exception when it comes to leadership.
A leader within the concept of Agile is different than with traditional project management, however. This person is looked upon as a “leader” rather than a “manager.” As such, the leader of an Agile team, which is self-organizing by nature, facilitates and guides the team in performing management activities such as planning and testing.
The team leader helps create and maintain conditions that enable other team members to succeed in completing their tasks, so they take on the role of a coach or mentor. Such a person can help keep the team focused on the tasks at hand, to deliver work on time and meet the goals of the project.
Other key functions of a team leader are to make it easy for members to collaborate and communicate with each other, to ensure that the development team has all the resources it needs to complete the project, and to quickly and effectively addresses any challenges and issues that might arise during a software development initiative.
On the surface it might seem as if the Agile Method downplays leadership because of its focus on team. But it’s precisely because Agile teams are self-organized that strong leadership is needed.
Development Team Members
If not for the individuals on the development team, the work simply does not get done. Development team members are responsible for designing and building the software products required by stakeholders.
Among the key functions development team members perform are planning, testing, analysis, programming, and many other activities throughout the course of the project. It’s not likely that all team members will have all the necessary skills to complete a project. But some will clearly take on multiple aspects of the software development process.
Many people refer to development team members as “developers” or “programmers,” but development teams can also include professionals who are not involved in actual coding work, such as designers, business analysts, quality assurance engineers, and database engineers.
Among the essential qualities of development team members are good communications skills. These individuals will be working closely with colleagues, sometimes for months at a time, and the core concept of Agile is collaborative work that includes sharing best practices and working together to resolve any issues that might arise.
Members are expected to meet frequently to ensure that everyone is on the same page regarding their responsibilities and requirements, and to make sure project milestones are being met. The term “team player” is used a lot within a business context, but it truly applies to those working on Agile development projects.
The architecture owner is the person who is primarily responsible for facilitating decisions about the overall architectural direction of a project.
This individual takes on responsibilities such as helping to create an initial vision for product architecture, and then working to bring that vision to life. Depending on the scope of a project, the architecture owner might be part of an architecture ownership team made up of other architecture owners.
Responsibilities of the architecture owner in software development might include:
- End-to-end, cross functional system design
- Working with other team members on architectural elements that support product features
- Testing architectural elements of the project
While most people on an Agile development team are well-versed in many areas, a project will likely also require several specialists. Agile development team specialists are expert in areas such as:
- Business analytics
- Machine learning
- Regulatory compliance
- Database administrators to design, build, and test databases
- Build masters to set up build scripts
- Information security professionals to create features aimed at stopping the latest threats
- User experience experts to ensure that features and interface are easy to use
Because these are specialized roles, these individuals might not be full-time members of the project team but instead part-time or temporary members who are brought in as needed. Specialists might be called upon to educate others about specific skills or issues so that the team can address problems on its own if the specialist is not available at some later date during the project.
Specialists might also be called in for specialized functions such as software testing and quality assurance (QA).
While most Agile development testing is conducted by full-time team members, in some cases an independent testing team is needed to validate their work; this is particularly true for large or complex development projects.
Quality Analysis (QA) professionals help prevent defects from entering the development process, and thus contribute to adding integrity to the software and the development process itself. They are responsible for:
- Creating test plans to enforce the acceptance criteria of product features
- Keeping test plans up to date
- Measuring and enhancing the quality of the product
- Enforcing best practices for quality assurance
Another possible specialty area is integration. If a software product has multiple components that need to work together seamlessly, effective integration is a major factor in the success of the project and quality of the product.
Integrators might be needed to help pull together all the components into one coherent system and can work with the test team to perform system integration testing throughout the project. While integration is important for project teams of all sizes, it’s especially vital for large teams.
Scrum is one of the two main development models underpinning the Agile Method (Kanban being the other), and the Scrum Master is one of the key roles of the model.
A framework for managing work with an emphasis on software development, Scrum is designed for teams of three to nine developers who divide their work into actions that can be completed within sprints – incremental, iterative sequences of work. They track progress and re-plan in 15-minute meetings called daily scrums.
The Scrum Master facilitates Scrum and is responsible for addressing any problems that might hinder the ability of the development team from delivering on product goals. This person acts as a buffer between the development team and any inside or outside influences that detract from a project and ensures that team members are following the Scrum framework.
One of the key responsibilities of a Scrum Master is to help the product owner maintain product backlogs to make sure the required work is understood, so the team can make continual progress. The Scrum Master also:
- Helps the team determine the definition of a completed product
- Promotes self-organization within the team
- Facilitates team events to encourage regular progress in the project
- Educates product stakeholders about Scrum principles
Scrum masters, like other members of a scrum team, need to be flexible and adaptive. One component of the model is the assumption that customers or product owners will change their minds about what they want regarding the product, so there will be unpredictable challenges during the development process for which predictive or planned approaches are not suited.
Another important trait is the ability to communicate and collaborate. Scrum masters will work with other key people, including the product owner who represents the product’s stakeholders and speaks on behalf of the customer that will use the product, and the delivery team that is responsible for delivering software product increments at the end of each sprint. These delivery teams perform the tasks necessary for creating the product increments, including design, development, testing, and other functions.
Conclusion: It Takes a Team
If there is one thing to take away from the Agile Method of software development, it’s that having people who possess widely diverse skills is essential to the process.
No matter how much automation organizations adopt through artificial intelligence, machine learning, and other technologies, people continue to be the primary sources of creativity and innovation in the development realm.
The Agile Method is all about bringing teams of professionals together to achieve common goals. The atmosphere of collaboration, creativity, and working together to bring a new product to life can lead to greater worker satisfaction, among other benefits.
Developing new software quickly and efficiently is becoming increasingly important as organizations look to digitally transform their operations. That means the Agile Method will likely gain even more momentum as a development methodology.
With the right people in place to take on a variety of roles, organizations can deliver the most value from the Agile method.