Agile software development methodology adoption at your technology company is the key to staying competitive, but many companies that think they’ve reached agile maturity still have a long way to go.
7 minute read
Technology is a critical competitive differentiator for companies in every industry today. To stay ahead of the competition, developers need to be flexible and fast. Agile software development methodology is the key to getting there, but many companies that think they’ve reached agile maturity still have a long way to go.
We’re not placing any blame. It’s easy to overestimate your software development savviness—especially when you don’t have clear industry benchmarks to compare against.
We find that clients usually fall within one of the following four methodology maturity buckets (whether they know it or not):
Waterfall: Like the river leading to a waterfall, development happens through a series of steps that are completed before the following one starts, referred to as “phase-gating.” This means projects are thoroughly planned and scoped before development begins and then completely built before testing can begin. Projects then are completely tested from start to finish before being released to the customer. Each phase of the project can take weeks, months, or in some cases, years to complete before the next step can start. The rigid, often unrealistic nature of waterfall development results in wildly missed deadlines, enormous budget overruns, poor quality of work, unhappy staff, and teams executing on projects no longer strategically relevant to the business by the time it makes its way to the next phase.
Mini-Waterfall: This approach divides development into mini-projects developers plan independently and carry out consecutively. Each project takes several weeks. This approach has elements of agile, often in the delivery of the features themselves by the development team, but each mini-project still follows what amounts to a waterfall planning approach.
Agile: Unlike the fixed nature of waterfall development, agile development permits the process to speed up, slow down, zig, or zag as necessary. Agile software development methodology employs fast planning and responsive development cycles to allow for frequent feedback to enable teams to conduct small experiments and rapid learning so development teams can keep pace with ever-changing (and expanding) market and customer needs.
Dual-Track Agile: The top development teams practice dual-track agile development where they run more than one agile development process, often referred to as Continuous Discovery and Continuous Delivery, at once to multiply business outcomes and impact.
Learning which of these buckets you’re in now is essential to determining the best way forward. Overestimating your capabilities means overestimating your competitiveness. If you haven’t truly reached agile maturity yet, it’s time to get serious about committing to the process—and quickly.
Transitioning from waterfall to agile can help you save time and money while moving fast enough to seize market opportunities and respond to customer feedback. It’s critical for staying relevant in today’s digital-first economy. In fact, it’s the difference between success and failure for many tech-driven companies.
So, how agile are you really? Our agile maturity assessment questionnaire can help you find out:
If you find yourself writing, receiving, or reviewing lengthy specification documents before approving development projects, you’re practicing waterfall or mini-waterfall methods of planning. Even if your development team is breaking apart the features requested into small batches, only the delivery of your projects to customers is following some agile methodologies but the planning processes that lead up to development need to be flexible and adaptive as well. Otherwise, you’re not realizing all of the benefits to the business that agile offers.
If your determinants of success are how closely the development team matches the specifications provided to them in what they delivered to customers, you’re not practicing agile. And you’re focusing on the wrong thing.
Software development is a method of driving business outcomes and all teams should be oriented around these outcomes and responsible for implementing ideas and features that the business believes will affect them. If teams are being measured by how close to specs the project remained at delivery, what value does this drive to the business aside from knowing your team can execute on a plan? What if what they executed didn’t have the expected outcome we thought? What if the team has other ideas for how to solve the problem better? In waterfall where adherence to the planned document is the only measure of success, teams are discouraged from bringing better ideas to the table and are unable to quickly iterate on ideas to incrementally improve results since they are only expected to build what is dictated down to them and nothing more.
This often happens when you apply the basic principles of project management to a specialized discipline like software development. Those principles advocate for setting schedules and budgets early and bases success around hitting those targets.
On the other hand, an agile approach involves waiting until the last possible moment to identify deadlines and costs, leading to more realistic numbers developers can actually achieve. Often referred to as “deferred commitment,” this concept breaks down large projects into smaller, valuable batches that are delivered in stages to customers. Developers measure the outcomes all along the way. This makes projects easier to estimate because they are smaller and done empirically through reviewing past performance to predict future performance of the team. More importantly, it moves the emphasis from “hitting deadlines” to “hitting business outcomes.”
Teams can’t practice agile methodology when they’re constantly putting out fires. Strict deadlines and unreasonable expectations are the most likely problems because they force developers to sacrifice quality for timeliness. The product may arrive on time—but corners had to be cut to get there, technical debt is accrued, and quality is often sacrificed.
Truly agile teams rely on short cycles and tight feedback loops to uncover and eliminate software issues early and often on quick turnarounds. By having the flexibility to address bugs throughout development, even if it means missing a deadline to do so, the teams on the ground can make that call and defend the decision because they will be responsible for supporting the software that’s delivered to customers.
Waterfall development usually relies on gated phases (discovery, analysis, design, build, etc.) that proceed one after another. But software development is not a linear process. In fact, it’s more like a network of interconnected hubs and spokes. Developers discover unexpected issues along the way, and user demands and preferences change all the time. Adapting swiftly enough to exploit new opportunities or solve problems quickly is often impossible with waterfall methodology because it requires deviating from the original plan and gaining reapproval all the way back at the beginning. Most teams just have to execute against the plan, even if it’s not what the market or customer wants.
But agile prioritizes user feedback and problem resolution over strict project planning. When it’s easier to make necessary deviations from the course, it’s easier to adapt quickly. And failure to do so could be catastrophic. Just look at the case of Knight Capital Group, in which developers couldn’t respond fast enough to an error in their deployed code, and the investment firm automatically traded stocks without oversight. Forty-five minutes later, the firm realized its $460 million loss. What was once the largest trader in U.S. equities and a major market maker in the NYSE and NASDAQ went bankrupt in less than an hour because it couldn’t resolve an issue quickly enough.
The consequences likely won’t be so severe for most organizations, but one well-respected thought leader in product management, Marty Cagan, does include lack of agile adoption across an organization as one of the top 10 reasons product companies fail.
Most of the features developers add to software produce unexpected outcomes, and some might even have negative effects. The waterfall method has no built-in mechanisms for evaluation to address such instances and instead front-loads an enormous amount of risk by guessing what value a feature will deliver to the business, the results of which won’t be known for months or even years.
Companies only find out if the feature delivers on its promised value once it’s been planned, designed, built, deployed, and in a customer’s hands. Developers are forced to throw out solutions and hope for the best but are never given the agency to stop to evaluate whether they solved any problems as intended before building and delivering them to customers.
Teams with true agile maturity work nothing like this. They have ample opportunity to gather customer feedback and test possible solutions quickly, and they turn to that data to back up each software decision. When they can make informed decisions and evaluate features as they go, developers move faster and with more confidence. And the organization has the data-driven insights to back up the decisions the teams make.
When the business, customers, and technology sides of an organization operate separately, they’re far from adopting the principles of agile software development methodology. Agile frameworks require buy-in from the entire company—not just from software developers—to pull off well.
Agile teams earn buy-in from the top. Tech leaders must translate tech objectives into business terms and describe to executives how new methodologies can help the business reach its goals more efficiently. This is called creating a “line of sight” that sets the company direction and ensures teams on the ground operate in alignment with the vision and direction set since agile maturity trickles from the top down.
The unfortunate reality is that many organizations looking to develop software are still stuck in older operational models that aren’t conducive to flexibility and innovation. If you’re finding out you might be one of them, talk with one of our experts today about how you can reach agile maturity faster.