There is another big thing that makes Agile different.
First, some history
Modern management was invented in the 1900s by a man named Frederick Taylor. He believed that factories would be far more productive if managers made all the decisions, and workers simply did as they were told.
This was the predominant management idea of the 20th century. In 2001, Fellows of the Academy of Management voted Taylor’s book on management “the most influential management book of the twentieth century“.
There was just one problem. Taylor’s approach to management isn’t suited to complex endeavours like product development in 2022.
The present day
Software products involve continuously making trade-offs between benefits and costs. But many benefits and costs are hidden to manager, because they depend on the technical details, on the wiring under the hood.
Even for the technical folks doing the wiring, many costs only become apparent as the work progresses.
Here’s how Steve Jobs describes it…
One of the things that really hurt Apple was after I left [in 1985] John Sculley got a very serious disease… It’s the disease of thinking that a great idea is 90% of the work, and that if you just tell all these other people, “here is a great idea” that of course they can go and make it happen.
And the problem with that is that there’s just a tremendous amount of craftsmanship between a great idea and a great product.
As you evolve that great idea, it changes and grows. It never comes out like it starts, because you learn a lot more as you get into the subtleties of it. And you also find there are tremendous trade-offs you have to make…
Every day you discover something new that is a new problem or a new opportunity to fit these things together a little differently…
It’s that process that’s the magic”Steve Jobs, The Lost Interview
Here are some examples of costs that are often hidden to managers.
- Missed opportunities. For example, when the mobile web first took off, it was usually only the technical folks who were aware of game-changers like responsive design.
- Reduced maintainability. In the long-run, maintainability will outweigh development costs.
- Reduced speed. Speed is often critical to UX and traffic from search engines.
- Fragility. For example, you could lose a key customer by not meeting their 99.99% uptime SLA.
Empower the people doing the work. Empower engineers.
The more they’re empowered to make decisions, the shorter your feedback loops.
Context and conversation
To make good decisions, people need enough context, or they need a conversation to clarify the context.
For short feedback loops you don’t want to have to schedule a meeting for next week.
That’s why the Agile Manifesto says, “Business people and developers must work together daily” (and not just a status update in the daily “standup”).
For example, if a business person is overloaded trying to understand technical complexities, they can flip it. It’s often easier for engineers to understand a business challenge, than for a non-technical person to understand a technical challenge.
Today, even factories empower their workers to make decisions, as embodied by The Toyota Way and Lean Manufacturing.
If it applies to production line work then it most certainly applies to knowledge work like product development.
The two core principles of Agile are:
- Feedback loops
- Empower the people doing the work