In 2021, Manifesto for Agile Software Development celebrated 20 years. During that time agile product development lifecycle became a mainstream methodology of project management not only in IT but also in other fields, including finance, marketing, sales, human resources, and hardware design. According to the 15th Annual State Of Agile Report, in 2021, around 86% of development teams adopted agile as their main production framework. While 32% of teams have applied agile for more than five years, 33% of developers reported that their company applies agile only for 3-5 years, proving that the methodology is still a relatively fresh concept for many enterprises.
So, what exactly is Agile SDLC, and why is everyone so obsessed with it? What are the Agile SDLC phases, and how to implement an Agile attitude? Are there any pitfalls? What is the Scrum master role in agile SDLC methodology? Read the article below to find answers to these and other related questions.
What Is Agile SDLC?
Before starting the detailed analysis of the Agile development life cycle, let’s draw a quick overview of the methodology.
The term Agile lifecycle was first introduced in 2001 by a group of software developers and managers who searched for a better way of organizing the software development process. On February 11-13, seventeen experts met together at The Lodge at Snowbird ski resort in Utah and composed a short document that became famous as the Agile Manifesto. Among the co-authors of the Manifesto, we can find such well-known experts as:
- Jeff Sutherland (creator of the Scrum methodology)
- Ken Schwaber (president of Advanced Development Methods who helped Sutherland to formalize the Scrum)
- Mike Beedle (CEO of e-Architects Inc., and one of the first adopters of Scrum)
- Robert C. Martin (a veteran C++ developer and theorist of the software development principles and practices)
- Brian Marick (a prominent Ruby programmer and tester).
As you can see, the Agile approach was theorized and tested inside the Scrum community gathered in the early 1990-s. Although it repeats and expands the principles of Scrum in many ways, it is still different. While Scrum implies mostly the methodology of managing teamwork, the term Agile usually identifies the method of project stage structuring.
Principles of Agile
The initial reason why the Snowbird 17 met together was the feeling of frustration that originated from the experience of software development. After years of work, group members noticed that the focus of current software development shifted from satisfying a client towards excessive project planning and product documentation. Snowbird 17 wanted to change things back. After three days of discussion, they forged four short maxims that conceptualized their vision of a new software development paradigm.
The ideas formulated in the Manifesto appeared so genuine that they became a core of corporate culture for many companies. At Forbytes, we follow the Agile principles as well.
What Are Agile Phases?
While the exact number of agile phases may vary, there are six stages that compose the core of the Agile cycle: concept, inception, iteration, delivery, support, and end of use.
- Everything begins with a concept. At this initial stage, a product owner prioritizes the most important project and determines its scope – a list of tasks required to deliver the product. To prepare the concept, a product owner conducts a product discovery. A meeting with the key stakeholders is organized, their needs and problems are discussed, and possible solutions are proposed. In the end, a product owner provides the plan of future work as well as a rough order of magnitude.
- Inception. Once the project outline is scratched, it’s time to begin the work. A project manager assembles the team and assigns the first tasks. While starting a project, developers must be supplied with all the required resources, including the physical and virtual infrastructure.
- The next step is the iteration phase, also known as the construction phase. This is the most time-consuming period of a project since it is the stage when a product is developed. The construction phase is structured in a row of Agile iterations, or sprints: short-time periods when a limited amount of work is done and tested. The aim is to receive a functioning product at the end of the first iteration.
- Release and testing. Before deploying a product for mass consumption, a separate team of testers should check if it functions well and has no serious issues and bugs. User training is also required.
- Maintenance. A product is deployed and is available for the consumers. Now, you have to maintain it. At this stage, the development team provides support and fixes new bugs and malfunctions. The client’s feedback about a product and the list of lacking features are also collected. After some time, an upgraded version of a product might be released.
- Retirement. The product served well, and now it’s time to replace it with a newer one. The publisher of a product notifies their clients about the end-of-use and prepares it for retirement. Support in migrating to a replacement system is necessary. In the end, developers carry out the last end-of-life activities and close the support.
Agile Team Structure
Agile roles are distributed in a way the development process can stay flexible and scalable. By choosing the right Agile team structure, you will arrange activities, processes, and workflows effectively. Here are some of the characteristics the development team structure should possess to be called Agile:
- Cross-functionality is highly favored. Agile team roles are clearly defined but are not limited to particular aspects of work. The goal is to deliver quality products on time and satisfy a client. If cross-functional activities and the exchange of experience facilitate product development, team members are only welcome to mix their skills and knowledge.
- There is no hierarchy. Agile structure says no to hierarchy implemented in traditional approaches. Instead, a cross-functional Agile team uses a flat structure under which team members work independently of each other and organize their tasks by themselves.
- Collaboration is the key. Regardless of Agile team size, everyone has to support collaboration not only within a team but also across teams. Open communication, cross-training, readiness to help, and knowledge-sharing are the features valued and promoted under the Agile approach.
As you see, Agile teams differ from traditional ones in a number of aspects. Traditional teams are based on a hierarchical structure, which triggers competition and adversely affects communication and cooperation. Unlike the traditional approach, Agile development doesn’t drive internal rivalry. This method unites teams and individuals under shared goals.
Agile team structure for software engineering is classified into a generalist, specialist, hybrid, parallel, and subteam type. Generalist teams do not focus on specific aspects; they possess a general understanding of topics related to their objectives. The universality of this model allows generalist teams to perform a variety of tasks and effectively change their focus from one goal to another. Specialist teams consist of individuals with specialized knowledge. A member of such a team is strong at a particular niche and bears responsibility for the role that falls under this niche. As a rule, specialists are the best in generating insights and finding efficient ways of problem-solving in their target areas. Hybrid teams, in turn, combine the features of a specialist and generalist type. In a hybrid team, specialist representatives use their narrow-area expertise to maximize the quality of particular aspects of the goal. Meantime, generalists control the global picture and make sure that these components play well together.
Under parallel Agile team structure, one task is changed to another when interaction comes to an end. For instance, during one iteration, the whole team works on website optimization. When the iteration ends, they leave the optimization task and move to performance testing. This approach allows team members to maintain a fresh view of the development process and recharge their motivation and attentiveness to details. Last but not least, the subteam type of Agile structure presumes that particular individuals are included in larger teams to add extra value by implementing specific knowledge.
When you choose the right team model, you need to make sure that you have enough professionals to fulfill the key roles. This is what your typical software development team structure should look like:
- Product owner. A person who represents the interests of a customer. Their task is to clearly communicate client needs and offer guidance.
- Team member. Any individual who works in a team and fulfills a particular role. For instance, UI/UX designer, software engineer, QA tester, etc.
- Team lead. This individual coordinates team work, keeps an eye on workflow effectiveness, manages tasks, and organizes meetings.
- Stakeholder. These are people possessing a particular interest in a product as they expect to get benefits after its release. These, for instance, can be product users or investors.
Yet, even when you have all these roles fulfilled by skilled individuals, the management of Agile iterations can be a challenging task. This is why you may need a Scrum master. What are their functions? Let’s discuss it in the next section.
What Is the Scrum Master Role in Agile SDLC Methodology?
As was said before, the development of a product within the Agile lifecycle happens during the construction phase.
Scrum master teaches team members to be self-manageable and self-sufficient. Also, Scrum master identifies and removes barriers that restrict the team’s progress. To do so, Scrum master ensures that all of the events are productive, positive, and follow the schedule. While managing Agile iterations, Scrum master keeps close communication with a Product Owner. Together they define the Product goal, decide which items from the Product Backlog to choose, and organize the collaboration with the stakeholders.
What are the aspects you should consider while hiring a Scrum master? First of all, check the candidate’s certification. The official Scrum training provides three levels of mastery. Also, inquire if a candidate has true faith in self-organization, values rhythm, and steady pace of a workflow. While planning the interview, invite your current Product Owner to make sure that a candidate makes a perfect match with them.
Why Do You Need Agile?
Let’s refer once again to the State of Agile Report to answer this question. According to the report, the majority of product managers shifted towards the agile project life cycle to enhance the capability to administrate fluctuating priorities. Indeed, a short time span of a Scrum sprint allows adjusting the arrangement of tasks according to the changes in the product context. The other reason to adopt agile is a desire to accelerate the delivery of the consumable product. Moreover, many managers believe that the agile approach makes their teams more productive than the traditional waterfall attitude. The quality of a product developed with agile is also considered higher than average. Finally, predicting a product’s delivery terms is easier with agile than waterfall.
Variants of Agile Methodologies
The popularity of Agile and its appliances in different spheres resulted in the development of several variants of Agile methodology that are adapted for specific business needs.
- One of them is called Nexus. The aim of Nexus is to help Scrum master scale Scrum framework for big projects without losing flexibility. A typical Nexus group includes three to nine Scrum teams working together on a single project. All Scrum teams are managed by a single Product Owner, who controls the backlog and assigns the tasks. The agility of the Nexus group relies on the decrease of cross-team dependency and maintaining the team’s self-sufficiency. The success of the Nexus group depends upon how a Product Owner structures the product and how they break it into single units. To get the work done, the Scrum master has to facilitate the communication between teams and make sure that the feedback is received without delay.
- The other solution for complex project management is the Scaled agile framework (SAFe). Under this approach, the agile team size is between 5 and 11 individuals. The problems SAFe addresses derive from the complexity of modern software development caused by the distribution of production multi-nationally, increase in product units and mergers, offshoring, and rapid growth of the demand for a product. To handle those challenges, experts from Scaled Agile, Inc. developed ten principles that help scale the Agile framework. Some of the SAFe principles include:
- Develop system thinking
- Be ready for the variability of the market and technical solutions
- Be open-minded to new options
- Increase the speed of production incrementally by constant learning and improvement of Agile iterations
- Limit work in progress and reduce work batch sizes
- Synchronize with cross-domain planning
- Decentralize decision-making
- Organize around the value of a product.
- The third alternative for scaling Scrum to multiple teams is Large-Scale Scrum (LeSS). The aim of the LeSS framework is to reduce the complexity of a project and hence reduce waste. Due to its simplicity, LeSS earned the title of ‘barely sufficient’ framework. Similar to the SAFe, recommendations of LeSS are also organized in 10 principles:
- Large-scale Scrum remains to be the Scrum
- Control process with the empirically obtained data
- Keep the progress of a project as transparent as possible
- While scaling the teams, keep one Product Backlog managed by one Product Owner
- Determine value and waste in the eyes of a client
- Apply lean-thinking
- Learn queuing theory and optimize your ques.
To gain maximum benefit from Agile, you can combine different aspects of mentioned methodologies in a single project.
After reading all of the described benefits of agile, you might ask yourself: if agile is so great compared to the waterfall methodology, why does the adoption rate is not 100%? Why do some companies deny agile?
The results of the 15th Annual State of Agile Report show that the reason hides in the persistence of thinking. Among 10 barriers mentioned in the report, the most widespread are:
- Discordance in the existing procedures and routines (checked by 46% of respondents)
- Cultural hostility (checked by 43% of project managers)
- General organizational denial of any kind of changes (mentioned by 46% of team members).
In some cases, product managers are convinced that Agile works well only for small teams and will not suit big enterprise-scale projects. In fact, such a belief is nothing more than a misconception. The difficulties of scaling Agile SDLC have been discussed for a long time and a number of specialized tactics were developed.
The dark side of Agile’s high popularity is its turn into a ‘cargo cult’. Applied without a proper understanding of its values, Agile becomes nothing more than a magical methodology. The team starts focusing on the development process more than on the result itself. To avoid drifting towards the Dark Agile, monitor your working routing for the following symptoms:
- The work discovery phase, design, and production are executed separately by individual teams. Within true Agile, all the teams should collaborate during the whole project.
- The amount of planned work is huge. The team experience exceeding pressure from a Product Owner and hence fails to deliver outputs on time. The real aim of Agile was to avoid delays by breaking the work into pieces small enough to deliver outputs within short iterations.
- Instead of one Product Owner, there are several people demanding results from the team.
- Outputs became more important for a team than the business results (outcomes).
In 2022, the world of Agile software development has become super complicated. There are myriads of methodologies available for different business needs and management styles. Whether you manage a small team or administrate enterprise-scale product development, there is always something for you. And yet, despite awareness of Agile, many companies fail to implement it in its true form.
If you look for an experienced Project Manager who confesses true Agile values, contact the Forbytes team. We will gladly assist you with hiring a real professional and achieving your project goals.