by Morgan McCollough, Senior Software Engineer
In the first week of June, I made the trek to Caesar’s Palace in Las Vegas to attend the Agile Development and Better Software Conference. The conference itself was only two days, but I attended a three-day Agile scrum master training class beforehand. It rounded out a full week immersed in all things Agile.
I’ve worked with a number of clients who claimed to have adopted Agile in one form or another. I’ve also read quite a bit about it, but prior to my week in Las Vegas, I had never received any formal training. The trip was eye opening, and it was a great opportunity to talk with people from across the industry.
What really became obvious was just how many companies are successfully implementing Agile processes at both the software development and program management levels. Some are achieving pretty dramatic results, with up to 30% shorter schedules and 75% fewer defects on average! However, learning the formal practice of Agile also made it clear how much dysfunction still exists, even in companies claiming the Agile moniker.
Agile software development is the new catchphrase in the tech industry, but it is based on ideas that have been around for a long time. Agile applies the principles of ‘Lean’ manufacturing and the Toyota Production System to the modern world of software development. It shares many of the principles put forward by W. Edwards Deming in the context of quality manufacturing.
Executed well, an Agile process can increase software quality, reduce long-terms costs, improve customer satisfaction, and even raise team members’ morale. However, Agile is not merely a one-size-fits-all process that can be easily imposed on all companies equally. At its core Agile follows the four key ideals put forth in the Agile Manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What some companies fail to grasp is that Agile doesn’t live in a vacuum; it’s not some isolated activity the development team does in their secret corner. Agile implementation involves and requires a change in corporate culture. It needs strong motivated proponents open to collaboration who believe in the power of failing early and often, and who are committed to learning from their mistakes rather than leaving everything up to the “lone genius in the corner.”
Agile requires enthusiastic management sponsorship, not just lip service, and the team as a whole — project managers, business analysts, testers, and developers must be on board. Managers with a history of “top-down”, prescriptive leadership must change their mindset. The same goes for testers and developers who are used to being told what to do.
This isn’t an easy change for an organization to make, and it may not be the best fit for every company. Judging from conversations I had at the conference, I’ve concluded that making a successful transition to Agile can take several years.
Those companies that are most successful at the transition are the ones that recognize it as a cultural shift, invest in training and hire an Agile coach to help them along the way. The switch to Agile is a process of discovering specifically what works best for your team and your company. Having access to someone who has been in the trenches can be a valuable asset.
Agile is a set of ideals and principles; so while the implementation process will be different at every company, the benefits are becoming more clear as Agile spreads through the high-tech industry. One of the most exciting things I learned at the conference is how the ideas of Agile, Scrum, and Kanban are being applied beyond software. They are being implemented in high-tech manufacturing, and even in education. So, if your company is considering Agile, do yourself a favor and take the time to learn more about it and how it might benefit your entire organization, not just the development team.