Agile software development has become a standard for software product development and services. From start-ups to large enterprises, IT companies to government agencies, agile is prominent in almost every industry. Its adoption has grown from being used by a small number of agile teams within an organization to many agile teams, larger teams, and entire organizations themselves, bringing a new set of challenges and complexities.
According to the VersionOne 12th Annual State of Agile Report, the top three challenges when adopting and scaling agile are an organizational culture at odds with agile values, general organizational resistance to change, and inadequate management support and sponsorship. In spite of these obstacles, 97 percent of survey respondents said their organizations practice agile development. How can we address the challenges?
The need to scale agile has given rise to frameworks that provide guidelines for organizations, including Scaled Agile Framework (SAFe), Scrum of Scrums (SoS), Large Scale Scrum (LeSS), and Disciplined Agile Delivery (DAD). Regardless of the framework, some important factors play a major role in making large-scale agile adoption successful.
Here are seven aspects you should consider when endeavoring to scale agile across a large organization.
1. Executive leadership support
Executive leadership support and sponsorship is the most fundamental factor in a scaled agile transformation. Successful transformations have leadership that is deeply engaged with organizational change agents, fostering innovation, collaboration, and value creation as new ways of working are implemented.
Change brings challenges to all levels in the organization, so leaders must be ready to address those challenges and provide strong support to assure that the organization stays focused on an agile mindset and that behavioral changes stick. Scaling agile from the team level to the enterprise level also involves considerable cost and effort and needs an investment in resources to be successful, so management has to be absolutely clear on the outcome envisioned. Among other parameters, customer satisfaction, employee engagement, and frequent delivery of valuable features are the measurable success indicators executive leadership should seek. The progress made, actions taken, and outcomes achieved must be measured, as they will determine how long the support and sponsorship will continue.
2. Knowledge acquisition
A systematic training and coaching program on agile values and processes is required for an agile adoption to scale. Inadequate knowledge or guidance creates chaos and poor implementation. In absence of the right training and coaching, teams often adopt practices that aren’t agile at all! Without an understanding of what agile is—and is not—organizations that attempt to scale will encounter significant challenges.
To address this risk, provide regular agile training opportunities for teams, engage in external learning events, and spread awareness through internal meetups and conferences. Also be sure to provide ongoing coaching support for teams in the middle of an agile transformation. Changing old habits is more difficult than starting fresh, so plenty of support must be given to those entrenched in the old way of working. Leverage experienced agile coaches who have a deep understanding of agile and how to apply the principles to your unique situation.
3. Engineering excellence
A strong engineering culture is very important when scaling agile. In general, a lack of solid engineering practices slows down team productivity and results in poor-quality deliverables. Technical debt rises due to the pressure of continuous delivery, and the issue gets compounded as more teams must coordinate their agile efforts. When pressed for time due to additional interactions between teams, teams may skip critical quality assurance activities, and quality suffers.
When scaling agile practices, organizations should assure engineering excellence by employing end-to-end test automation, building a cross-functional DevOps culture, maintaining a solid definition of done, growing multiskilled team members, collaborating across teams constantly, and using visual radiators to track overall code quality.
4. Tools and infrastructure
Organizations have to invest in modern tools and infrastructure to support fast and frequent agile deliveries. Complexity of programs and integration of deliveries across teams increases with scaled agile adoption, so existing tools and infrastructure may be outdated or insufficient to meet the demands of agile ways of delivering products and services.
Modern software practices such as continuous integration and deployment, behavior-driven development, containerization, cloud native platforms, design thinking, and agile planning are often an integral part of today’s agile delivery process. The need for tools and infrastructure to support these practices multiplies with the increasing number of agile teams and the need to synchronize work. Also important are modern workplace facilities, video conference equipment, virtual meeting rooms, and collaboration tools to support a distributed agile environment when scaling, even if individual teams are collocated.
5. Communities of practice
CoPs play a significant role in knowledge sharing and promotion of best practices across agile teams and the organization. These are often informal, self-organizing group of individuals who share common interests in promoting better ways of working in areas such as business domain, technical practices, tools, and software processes.
CoPs for ScrumMasters, agile testing, UI/UX, DevOps, and test automation are common in large organizations. As agile adoption scales, it becomes more important for like-minded people to collaborate and exchange best practices and skills across the organization. Sometimes these CoPs create guidance on agile best practices, technical practices, project management, and supporting processes to maintain some consistency across teams.
The goal for communities of practice is to provide knowledge and support without being too prescriptive, giving just enough guidance and frameworks for teams to refer to as needed.
6. Integrating nonsoftware teams
One of the important factors in making scaled agile successful is to slowly include more and more teams and functions in the transformation journey. Traditionally, business and support functions like operations, release management, database administration, security assurance, and auditing have worked in a waterfall model and will be skeptical of a move to agile. They often have a set pattern of activities and processes that they believe ensure stability of systems, and they don’t want to jeopardize that. Bringing them under the agile umbrella creates a state of uncertainty for them.
In many successful organizations, these functions have made a careful transition with full support from executives and their own change agents. The acceptance to a new way of working has led to a positive impact not only in the working relationships between teams, but also in the stability and quality of releases.
7. Agile champions and change agents
The needle won't move if organizations don’t have agile champions and change agents who are the main catalysts between management and teams. Any successful change requires someone who can translate an organization's vision into reality. Agile champions and change agents make this happen.
They take ownership to drive change by working with management and teams. They take part in scaling agile to wider teams due to their passion and belief in new ways of working. Giving up the traditional mindset is always a challenge, and because these people understand the culture of the organization better than an outsider, their involvement proves to be more successful.
Scaling agile requires a good understanding of the reasons behind it, backed by well-thought-out decisions. The decisions can create ripples in the organization that may not go over well with some individuals, so buy-in and support from organizational management is crucial. Being agile and customer-focused is necessary in today's highly competitive and fast-changing market. Making the entire organization more agile is the way to stay in the game.