Way back when, in the late 1990s and early 2000s, groups of software engineers got fed up. They were tired of following a process that was not designed by them for their craft and often ended up seeing their hard work go to waste in the form of a failed project. This process is known to us as the Waterfall Model.
To be fair, it's not that the model didn't work in the right environments. The waterfall model originated in the manufacturing and construction industries. It thrives in highly structured physical environments where after-the-fact changes are usually prohibitively costly. Sometimes they are just outright impossible. Early on in software development no formal software development methodologies existed, so this hardware-oriented model was simply adapted for software development.
Then, one day back in 1996, an engineer by the name of Kent Beck couldn't take it anymore. In response to his experiences, he developed a new methodology while serving as the project leader on Chrysler Comprehensive Compensation (C3), a long-term project to rewrite Chrysler Corp.'s payroll application. He called it Extreme programing and it called for putting the customer on-site to work with development teams, sharing code techniques, pairing developers, performing automated unit testing and editing code frequently to keep it simple. This methodology, and the resultant success of other projects which chose to follow it, became the basis for the Manifesto for Agile Software Development.
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Since then, and based on the success of this type of thinking, software developers have made a huge shift towards Agile development. What has always interested me is that managers and executives, with few exceptions, have not embraced this type of thinking as it applies to their roles in running successful organizations.
Customer demands and a rapidly changing integrated world economy are putting previously unseen pressures on organizations. Innovation is the only viable option for many long standing companies to remain competitive in this new landscape. The people that run companies tend to have attended MBA programs where they were taught to look at their markets and customers with a data-driven approach. When they do this, they will service their existing market very well. Yet, as Harvard's Clayton Christensen notes, "When we teach people to be data-driven, we condemn them to take action when the game is over because there’s no data about the future."
With an ever-expanding global economy, a great deal of pressure has been placed on managers and executives to find ways to succeed. Two integral aspects of this pressure stem from continually evolving competitive forces and a heightened sense of customer demand. Managers and executives see Agile as the methodology to meet and potentially exceed expectations under these pressures. Yet, because of a lack of agility on their own part, managers and executives often fail the very Agile teams they have created. In turn, this causes a demoralizing shift in the employee base. Unfortunately, because Software Engineers as a group tend to be non-confrontational, the managers and executives don't realize they are failing until the talent base walks out the door.
By then it is too late.
What if we were to get business operations to embrace Agile in a similar manner to the software development teams?
The initial reaction of managers and executives is likely to be that Agile projects on the surface look disorganized and chaotic. If they were to stop and be mindful about the world we live in, they would recognize that all large projects of any kind tend toward disorganization and chaos. The core strength of Agile is that it surfaces these realities much sooner.
If we were to modify the managers and executives’ general approach to become more Agile in the way they approach their markets and customers, we would expect the following:
Business would spend in smaller chunks on the assets and items that are most valued by the business at that time. Big, long-term resource commitments (a potential source of wasteful spending) would go out the door. Stuff that isn't really important to running operations in the short run doesn't get bought.
Agile forces delivery in time-boxed increments, so higher-priority items quickly percolate into view rather than being buried on page 87 of some impenetrable business planning document that few people have ever read.
You will fail fast on the less-certain elements of your business plan rather than increasing costs and scheduling nightmares. If something isn’t going to work out or won’t be worth the effort, the organization will know sooner. As a direct consequence, investment in that wasteful area will be abandoned earlier than with traditional business approaches.
Running your organization in an Agile manner will give visibility sooner to the real costs and real benefits of a particular project or approach.
Agile projects ruthlessly avoid things for which there is no demand. This will help you simplify the way you approach running your organization. You will avoid over-thinking issues and attempting to account for every possible scenario, and instead focus on things that best improve your organization's immediate ability to surprise and delight your customers.
Agile gives you the latitude to inexpensively change your mind about an approach and a direction, which in turn allows your organization to pivot to meet the rapidly changing conditions in business. You, your employees, and your customers will benefit from having the latitude to imagine future possibilities that don't include the current way you are doing things because you will have reduced the overall cost of pursuing your vision and the windy road it will likely take to result in success.
Management and executives should be leading the Agile education efforts within their own organizations. Leading means being actively involved in Agile through stewardship and continually pushing the continuum forward. It means looking at the non-technical challenges they face through an agile lens. Having the agility to adapt and change in the face of new information only strengthens your business’ ability to survive unexpected outcomes. It also implies that every organization will have a group of people dedicated to actively seeking out new information that directly challenges your current business assumptions.
The ability to think actively about the future comes from a willingness to have an open mind to all possibilities. The agile approach causes us to chunk the business challenges into small enough pieces which can be addressed in a few weeks time. This practice creates an environment where changes in business conditions can be addressed in close to real time, that is to say, give or take a few weeks.
Regardless of whether an organization has just started incorporating Agile methods or has been practicing Agile for years, it may discover that the existing management structure is not equipped with the skills that will allow Agile to thrive. Your challenge as a manager or executive is to help create the environment, leading by example, that will allow Agile to thrive in your technology departments and allow you to thrive using the principles of Agile in your operational departments.
Take the Agile methodology to heart and mind and see how the business side of your company can benefit from this approach day in and day out.