Software Development

A Culture of YAGNI

My natural habitat is an agile software development company. I usually meet with people who are already agile, or aspiring to become agile. And then there are other times, where the “real world” hits me on the head, saying I should leave my little pond for a while, and see what’s really out there.

For the last few days I’ve been doing some very important work in a, let’s call it a government agency. People here do not develop software, but they are software users (and abusers, read on). Nice people, but they have been corrupted by a very strange force.

They don’t know what YAGNI (“You ain’t gonna need it”) is, but they practice it religiously. They put a lot of time, effort and energy (real energy – passion, anger) into working on stuff that isn’t used. They know it, yet they do it anyway.

What makes so many people work on waste? These are intelligent people, mind you, not simple drones.
People who tried to inject any agile methodology or practices and failed miserably know the answer: It’s that vague thing we can’t put our finger on called “organizational culture”.

This organization has top-down management, command and control style. The workers are managing a lot of information. A lot. This information is collected diligently over time.The collection of data, as well as filtering it up to management is the primary business goal of the organization. The organization understands there’s a data overload, so upper management requires data filtering.

But here’s the catch: Because no one is ever sure what the top man will actually ask for this time, they provide all the data, in different formats through different filters, so if there’s a question popping up, it is available in just a few clicks. And as you probably guess, no almost never looks at that information.
If we translate it to actual actions, the guys take the raw data from one system (a giant excel sheet), copy-paste to a PowerPoint slide-set, then hide/unhide stuff, copy that too, make sure the links are working correctly. In the activity I was part of, the data changed every few hours so the operation needed redoing over and over again. All this extra formatting work almost never gets viewed, because management is, rightly, looking for the most filtered data.

“Are they crazy?” you ask. “All you have to do, is just provide the filtered data, and if someone asks, and only then, hit the raw data and get some answers. That’s the logical thing to do”.
When culture and logic collide, logic rarely wins. People get used to the “crazy question of the day” and they adjust. They prepare to mitigate (which is usually a good thing), but in the process they spend too much time on the wrong work.

There’s a saying: “It’s better to ask forgiveness, than to ask permission”. I always say that if you’re a team leader, fighting the organization to get agile adoption, do the guerilla agile dance. Make the changes, hope that no one notices, and then show results.

But it’s not as easy as I make it sounds. Because culture is a very inclusive club. People within a culture accept people who fit the culture, growing the core group. When you’re fighting against the culture, it’s in all directions: upward with management, downward with your team and sideways with your peers. Some will help. Others won’t.

It’s not easy. In this organization, there’s no way of changing the culture in the apparent future. Waste will continue, because people feel safe in what they do, despite of the waste.
You might face the same problem in your organization. My advice still stand: Find allies, work to show results, get promoted and recruit and train the people who will help make the sweep.

If all that fails, because of the culture, it may be a sign to look for another organization with a different culture.

References: A Culture of YAGNI from our NCG partner Gil Zilberfeld at the Geek Out of Water blog.

Related Articles

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Back to top button