Proper culture is critical for success of agile methodologies
At the turn of the millennium, there was great anxiety. While the fin-de-siecle of centuries past was met with unabashed optimism, the closing of this last century was met with paranoia, suspicion, and panic. Y2K, the oft-repeated shortening of the year 2000, was spoken with dread. Many decried the end of the world.
The computerized world, the one we embraced without much worry, was thought to meet its perilous end because of a small computer programming oversight. In the shadow of the Y2K scare, a great optimism pervaded. As a result, some truly great feats of software engineering were wrought.
The year was 2001. One fateful night, a group of software professionals assembled in Utah to dine after a day of skiing. On this wintry February evening, full of food and lively conversation, a deeper conversation sprung up and its contents changed software development forever.
A new way to develop
“What emerged was the Agile ‘Software Development’ Manifesto,” explains the official History of the Agile Manifesto. “Representatives from Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming, and others sympathetic to the need for an alternative to documentation driven, heavyweight software development processes convened.”
Agile software development practices are a set of relatively new rules. The principles of agile software development offer a novel way to approach project management for time-sensitive, complex projects. The idea was to protect software projects from failure by cutting out unnecessary fat, trimming meetings and micromanagement. These projects would emphasize self-organized teams, trusting employees, clients, and customers, and communicating face-to-face to solve issues.
The 12 principle of Agile development, as outlined in the Agile Manifesto:
- Satisfy the customer through continuous delivery of working software
- Welcome change, even late in development
- Working software must be developed and delivered consistently and on a short timescale
- Business people and developers need to work together
- A team of motivated individuals will get the job done/
- Face-to-face conversation is the best way to convey information
- Working software is the primary metric for progress
- A consistent pace must be set and followed
- Technical excellence must be paid attention to
- Simplicity heightens agility
- Self-organizing teams are the most effective
- Take time to reflect on the team’s progress and adjust based on your assessment
Agile is a philosophy built on trust
While it’s easy to get caught up in the details of the specific principles of Agile software development, it’s important to understand the whole picture. Agile software development is a philosophy. At its heart is a basic belief of cooperation.
“While the Manifesto provides some specific ideas,” the official history of the Agile Manifesto elucidates, “there is a deeper theme that drives many, but not all, to be sure, members of the alliance.”
“At the close of the two-day meeting, Bob Martin,” a founding member of the Agile Alliance, “joked that he was about to make a ‘mushy’ statement. But while tinged with humor, few disagreed with Bob’s sentiments—that we all felt privileged to work with a group of people who held a set of compatible values, a set of values based on trust and respect for each other and promoting organizational models based on people, collaboration, and building the types of organizational communities in which we would want to work,” reads the History.
As technical as Agile methodologies may seem, the principles are really about the culture you need for a software project, or really any project, to survive. Teams need to be trusted at a high level, business people and technical people have to be on the same page, and change must be welcomed.
Truly, the agile development method is about greater cohesion between development teams. Businesses cannot be exclusively focused on the bottom line. Instead, the agile method recommends that the developers are cared for first and then the work follows.
“At the core, I believe Agile Methodologists are really about ‘mushy’ stuff—about delivering good products to customers by operating in an environment that does more than talking about ‘people as our most important assets’ but actually ‘acts’ as if people were the most important and lose the word ‘asset,’” writes one of the authors of the Agile Manifesto. “So in the final analysis, the meteoric rise of interest in—and sometimes tremendous criticism of—Agile Methodologies is about the mushy stuff of values and culture.”