Why is engineering slowing down? How leaders can create happy teams and good results in chaos
Agile software is based on the idea of a flywheel
Delivery is the yardstick that engineering organizations are measured by. After all, if we’re not creating and maintaining something valuable in the world, what’s the purpose of our work?
Ward Cunningham compares the heart of Agile to the pedal of a bicycle. Every turn of the crank…
- You deliver something of value to your customers or the business.
- You do something that makes the next turn of the wheel smoother.
If you follow this rule, your team creates more value over time.
Organizations usually slow as they grow
As organizations grow, they become more complex. Exploding complexity gums up your flywheel. So typically, organizations become slower over time.
If the pedals of your bike become harder and harder to turn, you eventually will stall out. And unfortunately, that’s what happens in a lot of engineering organizations.
One reading of Innovator’s Dilemna is that complexity always drives organizations to failure. You have to build your organizations very, very carefully.
What problems does complexity cause?
Everything works when you’re small. As you grow, these problems emerge:
More people
- …make meetings less effective.
- …make old communication patterns ineffective. Typically, organizations go from many to many communication (broadcast everything, ask anyone anything!) to segmented communication to structured communication.
- …lead to more relationships to navigate.
- … make alignment more difficult.
More software
- …increases cognitive load. Soon no single human can understand the whole picture.
- …has more patterns in it, making it harder to reason about.
- …makes it harder to make big changes, because it requires more effort.
More teams
- …which require coordination and dependencies between them to accomplish larger goals.
- …make it harder to understand who to talk with.
- …cause you to do more work with people you don’t have relationships with (which requires more effort to navigate).
- …cause more ways of doing things.
- …require coordination to decide on things that affect multiple teams (for example, with architectural patterns).
More leaders
- …make it harder to get people on the same page.
- …increase the number of people involved in decision-making.
- …increase ambiguity over roles and who does what.
The race between complexity and leadership
Growing an engineering organization is mathematical. You increase complexity with what you build and who you hire, and reduce complexity with many of the activities leaders take to streamline things.
A large part of your role as a leader is to design the organization so it is as clear and simple as possible. So it works for human beings.
In future posts, we’ll cover a lot of techniques to be effective in organizations — to lead effectively, to design organizations so people can thrive, to have the right structures to produce good results. We’ll review the principles behind what causes these failures, so you can develop an intuitive feel of what is driving the challenges you face.
Thanks to Ward Cunningham for his great insights. I learned a lot working with him at New Relic. And thank you to Nic Benders, best office mate ever, who shared the flywheel idea with me, and taught me so many things!
Photo by Gavin Mills from FreeImages
Comments powered by Talkyard.