Agile – 1 conversation, 2 views

Agile – One conversation two views watercolor illustration

I had a conversation with one of my developers earlier this week that was eye-opening. He had been resisting some of our practices, specifically pairing and test-driven development. He thought they both took more time than just writing the code. So I asked him what Agile meant to him. And that’s when the fundamental differences between our versions of Agility became apparent.

This is why we need to reimagine Agile.

Agile is about project management

He related a story to me about how his last company, where he had worked for years, operates. Agile in that company meant that leaders decided on a product to build, including a backlog filled with months worth of work that, when built, would constitute the product to be sold. The work was split into sprints, assigned to teams, velocity was tracked, releases built, and life went on.

Throughout the project, Scrum masters would measure progress and update status, and leaders decided what to cut or what had to get done no matter how much code the devs had to write. The testers had to test, operations had to release, and so on.

To him, this was Agile. It was a way to manage projects with fixed scope, fixed time, fixed budgets, and final deadlines for being done.

And I completely understand why developers and testers would hate to work like this.

But that is not Agile!

I thanked him for his story and started talking about how I had a different view. I talked about learning and experimentation so that product managers could understand their market and make course corrections as they went. I talked about how timelines and scope were both open to change because product managers were learning every day.

And the enabling capability of a team that allowed the course to change frequently was the ability to define, test, and release features quickly, cheaply, and repeatedly. The shorter the path from idea to deployment, the more frequently learning could happen, and the better the chances of releasing the right product were.

That, I explained, was why how we wrote our code was important. We use test-driven development to write our code incrementally and leverage test automation to safely change it. Building on that, we use pair programming to distribute knowledge about our code throughout the team so anyone can change any code as needed. Then, since we have tests for everything and we all know all the code, changing and releasing the system becomes simple and routine. And that is the magic that allows product managers to use code as a way to learn about their product as we build it. That’s the magic of Agile.

And I completely understand why developers and testers would love to work in an environment like this.

Agile: Reimagined

I believe this fundamental disconnect about what Agility means is at the core of why we need to reimagine Agile. Agile has become a bad word in a lot of companies because they spend a lot of time and energy implementing Agile into their organizations and don’t get the payback they were looking for. And it’s become a bad word for so many developers and testers because it ends up decreasing their freedom and puts them on a hamster wheel of delivering random features that never seem to add up to a whole.

No matter the context, whether it be a software product in a small startup or a Fortune-100 company, or something not involved with software at all, we need to get back to real Agility and focus on people, collaboration, learning, and embracing change.

We hope you found this post informative

Before you move on, please consider supporting our non-profit mission by making a donation to Agile Alliance todayThis is a community blog post. The opinions contained within belong solely to the author or authors, and may not represent the opinion or policy of Agile Alliance.

Picture of Brian Button

Brian Button

Brian Button is the Technical Director for Software, responsible for the Connected Buildings and Environmental Monitoring product lines for Emerson. It is his great pleasure to teach Agile, lean, and kanban concepts to his teams around the world, while delivering well engineered IoT and cloud solutions critical to the safety of food and medicine supplies globally. Prior to that, Brian began his career 30 years ago as a hardcore C/C++ dev on SunOS, building and…

Recent Blog Posts

Recent Posts

Join Agile Alliance!

$5 per month (paid annually)*

*Corporate plans are also available

Post your comments or questions

Recent Agile Alliance Blog Posts

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

IMPORTANT: We have transitioned to a new membership platform. If you have not already done so, you will need to set up an account on the new platform to establish your user profile.

When you see the login screen, choose “Set up Account” and follow the prompts to create your new account. You can choose to log in using your social credentials for either Google or Linkedin (recommended), or you can set up your account using an email address.

Not yet a member? Sign up now