There are many reasons to go agile. A primary one is efficiency: In an agile organization, features are delivered more quickly; developers, quality assurance (QA), and customers provide feedback; and R&D responds accordingly. These short feedback loops reduce both technical and business risk, making it easier for your organization to get things right and deliver working software more quickly.
So why isn't agile readily adopted in more organizations? One factor is the tendency of organizations to adopt agile practices before defining what they want to achieve by doing so. Without a clear goal, there's no North Star to guide you through adapting your organization's culture or structure to agile methodologies. The result is a set of agile practices that don't make sense and don't benefit the organization.
The list of obstacles is long, starting with organizations that maintain the classic separation between development and QA while trying to adopt agile. Then there's the stumbling block brought about by R&D organizations: they build a wide and stable infrastructure before building any application features on top of it, only to discover that the feature set they deliver only uses a small portion of the infrastructure that they built.
These are just a few of the issues I struggled with when I promoted agile adoption in my organization. I tried different approaches to overcome these issues. Here are the three I found most effective.
1. Have a clear goal in mind
Many people claim that agile practices look good in theory but are either disconnected from software development in the real world or not compatible with the type of software that teams develop in their organization. This skepticism is rooted in the fact that many organizations adopt agile practices without adapting them correctly to their local environments. Each organization is unique, and the implementation of agile practices will be different in each case. No article or book will provide the exact adoption process that is perfectly matched to your organization's needs. The adoption process should be guided by the goal your organization wants to achieve. Without a clear goal, your process will never be effective.
You should also define and communicate your goal first. In my organization, the goal was to shorten the feedback loop from QA and then implement fixes quickly. "Early feedback, early treatment" became our mantra. This is a goal that speaks to every R&D engineer and is a clear and achievable target. In order to get early feedback from QA, we started defining our backlog based on functional requirements, rather than technical layers. Our definition of "done" was based on testing user stories in our nightly deployment environment. We started tracking our project's progress by measuring the volume of user stories that achieved "done" status while placing equal responsibility for the convergence of the project on development and QA. This helped us become more efficient because bugs were detected and handled quickly, rather than lingering in code (which makes them more expensive to fix as days go by).
Our goal was short cycles, and our tool was agile practices. The outcome was greater efficiency.
2. Adopt minimal best practices that serve your goals
Change should be implemented gradually. Once you have a clear goal, you should start with the smallest change needed to achieve it.
Once your organization accepts the small change, you can continue to improve as needed. In the beginning, I skipped many of the basic agile methodologies. For example, while we had user stories, we didn't require that they be completed in a single sprint (although we did limit their size). Over time, as the organization gradually accepted this new state of mind, I added more processes to achieve my goal of "early feedback, early treatment."
I also didn't try to change our organizational structure. QA and development teams were still separated in the organization, although we did put processes in place to significantly enhance cooperation between these teams. We established the minimum set of processes that would make a significant improvement in our efficiency by aiming for our goal of early feedback and treatment. As a result, we were able to significantly improve our efficiency.
3. Manage expectations
People have different perceptions about what it means to go agile. Some quote the definition of "done," while others talk about potentially shippable products or meetings. The reality, however, is that each organization adopts agile at its own pace and to a different extent. There are always questions around agile. Not everything happens at once, and not everything works on the first try. The important thing is to keep your goals in mind and align your organization accordingly.
Obstacles will appear and people will complain, but if you align the organization with your goals, it'll be much easier to overcome roadblocks and convert the naysayers. If something goes wrong, it's important to point out that in the agile world, failure is allowed as long as you learn from it and the deployment process is iterative.
Managing expectations begins with aligning people to the changes you want to implement and the way you link those changes to your goals. It also means explaining to your teams that the process can't predict every obstacle that pops up, but that obstacles can be overcome in light of the goal you've set. Be aware of the vulnerabilities in the process and of the mechanism you have in place to handle stumbling blocks as they occur. If people know what's happening and why, and they're confident in the organization's ability to cope with obstacles, they're more likely to come on board.
Adopting agile is like any process of change. It's a learning experience and a journey fraught with obstacles and challenges. If you know where you're going, how to get there, and what to expect along the way, the people in your organization are more likely to join you and celebrate with you as you achieve each goal.
Keep learning
Take a deep dive into the state of quality with TechBeacon's Guide. Plus: Download the free World Quality Report 2022-23.
Put performance engineering into practice with these top 10 performance engineering techniques that work.
Find to tools you need with TechBeacon's Buyer's Guide for Selecting Software Test Automation Tools.
Discover best practices for reducing software defects with TechBeacon's Guide.
- Take your testing career to the next level. TechBeacon's Careers Topic Center provides expert advice to prepare you for your next move.