I Think, Therefore I am Agile
By: Shahzad Khan
Tags: Software Development, Agile Methodology, Project Management, Product Management, Agile

I Think, Therefore I am Agile

History of the Agile Revolution in Software Development, and How We Got It All Wrong.

Agile is a mindset.

This is the story of how a new approach to workflow ended up defining an industry. And like all good stories, this story too begins with a few people hanging out at a ski resort.

When you are surrounded by pine trees, a fireplace, maybe some food & drinks, and the right people, there is a good chance that your chit-chat could lead to a wonderful idea.

Or not. I guess that depends on how much alcohol was involved.

Party!

The authors of the Agile Manifesto got turnt up at a lodge, the Snowbird Ski Resort in the winter of 2001. They met there to argue about what was wrong with the software developers’ world in the 1990’s. This conversation — originally sparked at a conference called OOPSLA, Object-Oriented Programming, Languages and Systems — had them realize that they all agreed on the fact that creating software is messy, and they wanted to figure out what to do about it.

But why is creating software messy?

Imagine you just signed a lease to a new apartment or home. You have your floor plan, the dimensions, the angles, and a vision for an aesthetic that says “This is me…” to anyone who visits your new place.

You’ve got a couple weeks before you get your key, and in the spirit of excitement you have been on a level-four shopping mode, browsing for furniture, color palettes, glassware, carpets, storage, etc.. And you’ve been using those AR apps to visualize your living room! You go ahead and order all the furniture and have it shipped to your new place. Great!

The day has come and you walk into your apartment and begin orchestrating the unboxing, building, and arranging of furniture. Then you find that the patio door opens inward and it is going to block your book shelf. So you say, “Oh well, I will move the shelf somewhere else,” and then you realize that by placing the shelf somewhere else your entire aesthetic falls apart and you realize that a chaise isn’t as cool as you thought it would be. Facts.

The point is that you have to pivot because you could not successfully model the world of your apartment or home and think of all the possible edge cases. The human brain is just not up to modeling the real-world accurately enough to be able to know what it wants upfront. This is the same story in software development. You are going to have to iterate whenever it involves any unknowns at all.

I have had to experience this process often, where I got a spec from a client and my implementation was pretty much identical to that spec.

It gets to the end:

Client: “But that’s not what we wanted.” Me: “But that is what you asked for.” Client: “Yeah, but that’s not what we meant.”

…

The level of ambiguity in software development demands an iterative process, in which the most important step is the feedback.

In the 1990s, software development was a complete mess. Companies were spending more money fixing software than they were creating it in the first place. Developers could only put out new software out every few years. Every few years? Good heavens!

The Grand Waterfall Development Strategy of the past

Back then, everyone had a new idea on how to solve this epic problem of expensive and messy software development. There was pretty much a methodology war. It is during this time of new visions and new fixes that David Thomas and his friends (the authors of the manifesto) were stepping into this space by exchanging ideas at the Snowbird lodge.

The problem at hand was that the speed of production was ramping up like never before — open source had made developers more powerful — and in turn, developers needed a new, more agile mode of production.

So the word Agile describes the exact opposite of a waterfall’s pre-ordained path. And as new information comes up, it’s the word for people willing to change course on a dime. But more importantly, the word is not intended to be a noun, it’s actually an adjective.

Agile is a mode of being, not a concrete saying as we have made it to be.

Today, the Agile Methodology is a complex set of roles and systems. You have a scrum master(leader), a scrum team, a product owner, and they are all going through one-or-two week sprints of work. While all these roles are in process, there is a ton of work that keeps getting shoved into ice boxes, sand boxes, piggy banks, and under the carpet, and in the back of closets, etc..

It’s just a lot of process these days.

The whole point of the manifesto was aimed for simplicity and clarity.

Let’s look at some of the values that are a part of the 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.

These four values and some supporting material was published on a website, Agile Manifesto, and then they straight up asked developers to sign their names to show support. They received a lot of support.

The whole concept of Agile fundamentally resonated with people because it basically said, “Look, we focus on people over tedious processes. We focus on interactions and collaboration over tools and excessive documentation. We value working with software above all else, and we’d rather people work in small batches and be highly interactive and highly iterative.”

Wow! Sign me up!

But if there were no people throwing mad shade on this and thought that this weird developer revolution has gone too far, then it would not be real enough to have the legs it has today.

We had the type of folks who had some forty-plus years of experience in the industry, and who had seen it all, speaking out against Agile. They were like “Here we go again, another bunch of people sat around drinking beer and coming up with other ideas for developing software.”

They weren’t completely wrong to feel this skepticism. Those experienced developers had seen these agile-ish philosophies decades before the buddies at the Snowbird lodge. For example, lean work methodologies like Kanban go all the way back to the 1940’s when Toyota got inspired by shelf-stocking techniques at supermarkets. This philosophy of lean manufacturing ended up being repurposed for software development.

Another criticism was that agile basically allowed software engineers to spend more time writing code, less time figuring out what needs to be done, and a lot less time documenting anything. To some, the integrity of software engineering was at stake.

These criticisms are seen today too. They stem from the idea that for anything to be legitimate, it must have a process. The greatest resistance that you tend to see in Agile adoption in companies comes from senior and middle management. It makes sense, the responsibilities of those roles depend a lot on hard processes. The adoption of agile changes everything. It changes the very notion of how they believe they add value because they’re moving away from micro-managing of teams, to empowering and coaching instead. It puts you in the spotlight!

Now, it is also fair to say that going Agile is no guarantee against micro-managing. In fact, when you first see an agile management board, you see this never ending to-do list. It’s a bit overwhelming and you might want to shut down your computer and throw it out from the balcony.

But when you start actually using an Agile product management tool, you will find yourself blown away by how it can help you prioritize features and make product decisions. It forces you to organize all your ideas, give them names, order them, and apply structure. It helps you manage your project and gives you the agility you need if and when something goes wrong.

Agile has been used by tens of thousands of teams at this point. Any time you are thinking of doing innovation, an agile team can probably do it better than the way you are doing it today. Well-known companies like Amazon, Netflix, Facebook, and Salesforce are heavy users of Agile, and it has not just redefined the way they work, but the way the industry works.