I hear people in the agile community talking about—
Business Agility
Value Streams and Value Delivery
OKR’s
Outcomes over Output
Competitive Delivery
The need for Startups to Deliver
On the product side, I hear about Empowered Product Teams. And generally, everyone is looking for high-performance agile teams. Whatever they are, and how do we know them when we see them?
All of this focus is well and good, but where is the focus on—
Software Craftsmanship
Professionalism in Software Engineering
Building Software Right
Building Quality Into Software
These terms seem to be much less said and emphasized than they were at the beginning of the agile movement. Part of that is probably related to the deemphasis of XP as an important method. And part may be the overemphasis on the product side (marketing, delivery, customer, value, and schedule) rather than on the engineering side of things.
Let me be clear. I’m not against any of the product-side points. I’m just saying that they seem to be far more heavily emphasized than engineering excellence, and I wonder if we’re paying a price for that.
In the beginning…
In XP, craftsmanship was a focus. We tried to honor solid engineering practices and not compromise them. I also think the business side and leadership paid more attention to what the team had to say about things. The business supported and trusted the technical team’s advice and decisions.
There was also a strong focus on craftsmanship led by, for example—
Kent Beck and Martin Fowler’s work.
Bob Martin’s series on Clean Code.
The Pragmatic Programmer by Andy Hunt and Dave Thomas.
And many other books that focus on technical excellence. I haven’t seen many books with this laser focus on craftsmanship in well over a decade.
Is this still relevant?
I remember the old joke that you could have a project that was Good or Cheap or Fast and that you had could only pick two of those qualities.
Excellence fell into the good category and included engineering excellence and quality. My question is: Is this still relevant, and if so, are we making wise choices today?
Wrapping Up
I believe we’ve lost our focus and balance in agile initiatives. It’s unfortunate. Culprits seem to be leaning too heavily into the customer and product side and emphasizing speed that overrides good.
But it’s never too late to swing the pendulum back, particularly when we have such good guidance from some of the agile movement's exemplary technical guides.
I wonder if we can rebalance our focus toward—
Continuously share business context with your entire team.
Solicit feedback from the teams before you commit to larger-scale commitments.
Don’t push your teams so hard—give them space to be excellent.
Quality is paramount. Inspire a mindset of doing (whatever you’re doing) right the first time.
Solid engineering practices matter. Encourage your teams to pair, learn, and experiment to improve their practices and results.
Fingers crossed…
Stay agile, my friends,
Bob.
I’m a proud but humble member of The Agile Network. It’s a group of seriously experienced agilists who have banded together to improve your learning and experiential journey. Here’s a 33% off code (GALENPMC33) for all their memberships.
Immediately after reading the article struck me as too short. From personal experience I know that these problems have more detail and can be discussed thoroughly. After second thought though I realise that the actual problem is very simple: Either invest in quality work and reap the benefits soon ([weeks, not months](https://martinfowler.com/bliki/DesignStaminaHypothesis.html)), or skimp from the start and get stuck in costly software development.
Why do you think this shift happened Bob?
I see many teams still so stuck in the old (yes, really old) ways that I fear we haven't even started making a dent into simple things like more frequent feedback loops....
Am I missing something?