About This Course
Learn why well-informed use of modern Agile practices is important.
We'll cover the following
In the early 2000s, software leaders raised significant questions about Agile development. Leaders were concerned about Agile’s ability to support quality, predictability, large projects, measured improvements, and work in regulated industries. Their concerns were well-founded at the time: Agile’s initial promises were inflated, many Agile adoptions were disappointing, and achieving results often took longer than planned.
The software industry has needed time and experience to distinguish ineffective missteps of early Agile from genuine advances. In more recent years, the software industry has improved some of Agile’s early practices, added new practices, and learned to avoid a few practices. Today, the use of modern Agile development offers the opportunity to improve quality, predictability, productivity, and throughput all at the same time.
For more than 20 years, my company, Construx Software, has worked with organizations that develop software systems ranging from mobile games to medical devices. We have helped hundreds of organizations be successful with Sequential development, and over the past 15 years, we have experienced increasingly good results from Agile development. We have seen organizations significantly reduce cycle times, increase productivity, improve quality, improve customer responsiveness, and increase transparency by using Agile practices.
Much of the Agile literature has focused on high-flying, high-growth companies in new markets, such as Netflix, Amazon, Etsy, Spotify, and other similar companies. But what if your company makes software that’s the less leading edge? What about companies that make software for scientific instruments, office machines, medical devices, consumer electronics, heavy machinery, or process control equipment? We’ve found that modern Agile practices—applied with a focus on what’s best for the specific business—provide advantages for these kinds of software too.
Why effective Agile matters
Companies want more effective software development for its own sake. They also want more effective software development because software enables so many other business functions. The State of DevOps Report found that, “Firms with high-performing IT organizations were twice as likely to exceed their profitability, market share, and productivity goals” (Puppet Labs, 2014). High-performing companies were twice as likely to meet or exceed their goals for customer satisfaction, quality and quantity of work, operating efficiency, and other objectives.
Selective, well-informed use of modern Agile practices offers a proven path toward more effective software development and all the benefits that go with it.
Unfortunately, most organizations are not realizing the potential of Agile practices because most implementations of Agile practices are not effective. For example, Scrum is the most common Agile practice, and it can be incredibly powerful, yet we have most often seen it implemented in ways that fail to realize its benefits. The diagram below compares the average Scrum team my company has seen to a healthy Scrum team.
We typically see only one of Scrum’s key elements being applied effectively (daily scrum/standup), and even that’s far from universal. The rest of Scrum’s elements are applied sporadically or not at all. (The scoring used in this diagram is described in detail in the “More Effective Agile Beginnings: Scrum” chapter.)
A poor implementation of a potentially good practice is not the only source of Agile failure. The term “Agile” has become an umbrella term that covers myriad practices, principles, and theories. We have seen Agile implementations fail because organizations are not aligned on what they mean by “Agile.”
Under that large Agile umbrella, some practices work much better than others, and we’ve seen some organizations fail because they choose practices that are just not effective.
Organizations can achieve markedly better performance, and this course describes how to do that.