Almost every day, there are software development teams finishing agile sprints who are left wondering what happened. How did we fail? Where did we go wrong? The answers are as hard to come by as it is to successfully implement an agile approach that is sustainable and maximizes its true value.
There’s a saying in the agile community: Agile is simple, but it’s not easy. But if we step back and look at this statement, we find the true, root cause of many agile failures: too much focus on the easy parts, and not enough time and effort devoted to the hard parts. All too often someone will pick up a book on agile, start chopping up requirements into User Stories, begin Daily Stand-up meetings, develop software in two- or three-week sprints, and then call themselves agile. Easy, right?
They will likely see some improvement in their ability to respond to change, and may even provide working software faster—for a while. It won’t be too long, though, until the promises of agile become less evident, teams struggle to keep up the pace, software doesn’t always match user expectations, and agile is deemed a failure.
So, what are the hard parts? More often than not, the most challenging work in an agile transformation relates to the principles behind the agile framework. Avoiding agile failure begins when we devote the proper time and resources to changing how people interact, work and think. Real transformation usually exposes existing corporate and culture problems that must be dealt with, problems such as poor communication, lack of accountability and distrust between business units.
Effective agile transformation is often a total culture change. Successful agile implementation is about establishing a culture that embraces open communication and collaboration between business and technical individuals across an enterprise. It’s also about continuous improvement through inspection and adaption, and a culture of transparency and accountability.
Agile practices are important, but it’s the agile principles that make the practices work well and make them sustainable in the long run. Principles are much harder to incorporate than practices, which is why many companies fall short. Performing techniques without understanding why they are doing them will lead to frustration. Agile is about people, interactions and culture, not processes, practices and tools.
For example, one of the principles behind the Agile Manifesto is “Businesspeople and developers must work together daily throughout the project.” All too often business partners go through the pain of creating a solid product backlog only to then step back and wait for the development team to deliver the product, and then wonder why it doesn’t meet their expectations. Continuous collaboration and course correction helps to ensure that what’s delivered at the end of the sprint is just what stakeholders intended. Active stakeholder participation is critical to successful agile development, and is sometimes one of the hardest practices to begin and maintain.
We all know that documenting software usually ends up not being done because it is seen as a low priority compared to moving on to the next coding assignment. Similarly, some agile teams forego Sprint Retrospectives due to lack of time or perceived lack of value.
Inspection and adaption is a cornerstone principle to building high-performing agile teams. Continual improvement can only be attained when we pause to reflect on what’s working well, what’s not working well, and making a conscious decision to adjust our practices. Small tweaks can mean the difference between project success and failure. Done right, the Retrospective can be an interesting and even fun meeting that yields valuable results. Yet, Retrospectives are sometimes left out due to time constraints; that’s one of the hard parts.
While not agile principles, there are also key technical practices that mature agile teams incorporate as standard operating procedure in order to keep up a sustainable pace of rapid software development. Two such practices are continuous integration and automated testing. Producing clean, integrated builds several times each day and running those builds through automated test suites speeds up the flow of development work. It also helps maintain stable code that stakeholders can play with at will, encouraging shorter feedback cycles. These are sometimes hard practices to incorporate due to resource or capital constraints, but are important to long-term sustainability.
Agile is more about people, interactions, and culture than about processes, practices and tools. While agile practices are important and provide practical guidelines that can help increase project success, the principles—the hard parts—are what make agile sustainable in the long run and maximize the great benefits it has to offer.
Dwight Kingdon is the principal consultant and agile coach at the Mindtree US Delivery Center in Gainesville, Fla. He possesses more than 25 years of project-management experience leading complex information technology projects, and more than nine years of agile/Scrum experience coaching and leading mission-critical projects.