Tuesday, January 11, 2022

The Agility Monster

Being on the first team of a big international company to go Agile was exciting.

They were building a brand-new application that was going to, among other things, allow them to finally retire a very outdated legacy system that was causing a lot of operational and technical problems. The team was strong and talented. The director was young and progressive and had the cutest British accent. One of the members of our consulting team was an Agile coach. And there were several other senior-level analysts and product managers on board.

Establishing Agile practices at the team level wasn’t too bad. We had a team room, met every day, turned the projector on, and talked through our tasks and issues just like an Agile team should. We were co-located and cooperative and enthusiastic. Or at least, not hostile. The developers, like code-slingers everywhere, had a “well here’s another new thing” attitude, but so long as they were able to build good code and do interesting work, they were satisfied.

The mid-level management folks were less happy. Some of the more astute realized that Agile meant the lines were being re-drawn and they didn’t see themselves in the new organizational geometry. Some of them bailed. Some of them adjusted and found new roles within the evolving landscape.

Months went by. Our team worked hard to stay one step ahead of the developers. It was a bit like being a detective, finding the systems and processes and teams that would be impacted in the future by the work we were doing. As our director said, we were in charge of “kicking over the rocks and seeing what was living underneath.” Slowly the application grew and went in front of user groups for demonstrations and feedback and refinement. It was an Agile success story.

So….

Like I said, it was a really big company. And more and more teams started switching to Agile. It became official. It become canon. It became a juggernaut.

The heart of Agile is small, self-directed, responsive teams. The heart of big corporations is standardization, measurement, and control. Rock, meet hard place. Now, there are folks who will tell you that scaling Agile is totally do-able. There are books and classes and certifications and conferences, oh my.

What everyone is really doing is trying to fit Agile into American corporate culture. It doesn’t work. What you end up with is chunky waterfall with a fancy new lexicon to describe the same old shit.  Nobody really wants to go back to the excesses of waterfall. The long planning cycles, the analysis paralysis, the heavy change management processes, the piles of documentation. So, why don’t we Agile better? How did something so simple, so radical, and so intuitive get so fucked up?

I’m not the person with the answers, but I can share a few examples that might shed some light on how it goes sideways.


Standardization – Imagine an organization with many Agile teams working in different business areas on different applications in different states or continents. Now, tell all of those teams that they must use the exact same structure and standards for their product backlogs, that they must build complicated and time-consuming dashboards and reports for management to track the details of their sprint activity, and that they must participate in multiple meetings every week outside of their regular team activities. This breaks the concept of “self-organizing” teams. You don’t trust your Agile teams to organize and manage themselves and their work to accomplish a goal.

Budgeting – Instead of funding Agile teams, you organize your entire budgeting process around projects. Say for the next year you have 30 possible projects. You’ll probably fund about 5-6 of them, but you require the IT organization to submit sizing and budget estimates for all of them so that you can evaluate them. This means that your Agile teams will have to drop their planned sprint work for several sprints while they analyze, document, and size the proposed projects. Later, when you evaluate the performance of your Agile teams, you notice that their velocity has slipped significantly, so you institute more controls and standardization to track and measure their performance. If you want your Agile teams to be productive, you need to change your corporate governance processes to align with Agile principles. Agile that is confined to IT will never truly succeed.

Starving IT – You think of software developers and IT as a cost center to be minimized as much as possible. You pay on the lowest end of the scale and utilize offshoring and contractors as much as possible. Slinging code isn’t a skill set you consider core to your company. Sure, turnover is pretty high, but you have standards and processes in place to ensure the less experienced folks don’t get too far off the rails. For Agile teams to be productive and maintain consistent velocity, they need to be able to gain expertise in the business and technical domain they work in, as well as to develop strong working relationships and trust within the team. This is impossible to do if the team is constantly churning and your most experienced people are leaving for better pay elsewhere.

Too Much Complexity – You’re a big company, and over the years you’ve added many off-the-shelf and bespoke software applications, with layers of services to connect them all. Because you engaged in rampant customization, any change to your ecosystem causes reverberations across multiple domains and applications. Any project you undertake impacts so many domains that 10+ Agile teams are involved in weeks if not months of development and testing. And regression testing? Well that’s a whole other story. If product teams spend a significant amount of their time supporting projects from other domains that have significant impact on them but do not provide noticeable benefit to their user groups, they won’t have the time to actually address their own backlogs. They spend all their time dog-paddling, and eventually, frustrated because they can’t build anything of quality and impact, they leave.

So, is there a lesson in all of this? I don’t know. Maybe that you can’t start transformation at the bottom. Maybe that American business culture is its own worst enemy. Or maybe that I just got too cynical to keep on pretending that with the right training and the right coach, miracles can happen. Folks tell me that Agile works pretty well at small tech companies with collaborative, forward-thinking leadership. I don’t know. Those aren't the ones who call in consultants to fix their shit.