Everyone wants to be agile. We've been talking about it for a decade or more, and still, today, the way most companies develop software is dysfunctional and frustrating.
It seems to be the more a company talks about being agile, the less they are.
And in my experience, I've found some of the advice and book knowledge about agile to be flat-out misaligned with what I've observed makes for high-performing teams that generate business value and that people want to be a part of.
The first thing is that agility comes from the top.
This means a culture of empowerment where leaders spend most of their time framing the strategy and problems they are observing and how they arrived at those conclusions for the entire team — rather than assigning work.
The team is then empowered to decide on their approach to solving those problems, which will include metrics or objectives and may also include adjustments to the initial strategy once they understand it.
Next, team hierarchy and permanent membership in a cross-functional team are necessary.
People do their best work when they know, like, and trust each other and when they have future responsibility to maintain whatever work they create together. (also creates a sense of ownership)
Every team also needs a leader.
This is because every employee cares about their career progression, and it's one of the most critical ways to retain employees — so you need someone managing this for everyone on your team.
If you're not building relationships within a team with structure and ways of working, achieving these things is challenging.
Pure self-organizing teams that can be temporary, with no leader in flat hierarchies, do not have the same predictability of success in my experience.
We could summarise an agile approach into a few things:
- Create an excellent cross-functional team structure
- Have leaders that frame strategy rather than assign tasks and deadlines
- Assume people are smarter than you
- Give people the context so they can make good decisions
- Set ways to measure success like OKRs
- Routinely reflect on progress and get out of the way.
Doing these things achieves what agile is meant to do:
Create business value quickly while creating a workplace people want to work at.
As a leader, you need the ability to adapt external processes and book knowledge with your specific situation, level of buy-in, work environment, culture, and people.
Don't go blindly implementing things without this consideration.