Agility in software work is often blocked by an irony that people don’t spot.
“We’ll have to send a ticket to the DevOps department for that.” – Senior Developer
“We have so many bugs to fix before the demo. Could you maybe skip writing the tests?” – Product Manager
“We paired on that change last week, it’s just not merged. No one’s reviewed the pull request yet.” – Junior Developer
It’s fun to point and laugh at these problems when your company has grown past them. I mean, your company is pretty cool.
But I bet you still have an org chart that looks like this:
What’s wrong with this picture?
In this depiction, the person at the very top knows everything about the work the company does. They’d even do it all themselves, but that’s impossible. One person doesn’t have the time, energy, or hands to do this at scale, so they divide the labor into smaller jobs. Then they hand these jobs down to the people below them. Those people then divide those jobs, and so on down the structure.
Is this really how your company’s work works?
Wait, there’s more.
By the time we reach the bottom rung, the work has been split to a fine powder. These tasks are so well-defined that they call for no skill at all. Down here, employees simply show up on time and follow instructions, and the whole thing makes money.
No, seriously. That’s what this picture means.
Of course, in your work, you don’t merely show up on time and follow instructions. And you, your boss, and your company are all right to expect more than that. That’s why you are still in business. Maybe you’re even crushing it.
But this picture isn’t helping with that.
A modern, successful company that sees itself like this is modern and successful in spite of this.
We default to the upside-down tree. We resign ourselves to the frictions it creates for our work, and we are asleep to its alternatives.
What would a useful map of the connections and relationships in your organization look like?