It baffles me how some agile teams, who claim to be the pioneers of modernity, are living in archaic times where usable working products are as rare as unicorns! Just a heads-up, my dear agile practitioners: the linchpin of Agile is a Usable Working Product. Yes, you read it right!
The only way to mitigate risk when employing Agile practices is by continuously delivering a usable working product. Agile is not about spinning the hamster wheels but delivering shippable increments that users can interact with. A fortress of documentation can’t protect you from the market’s ever-changing demands. Feedback loops, value delivery, and engineering excellence are your protection in agile product delivery.
Let’s get down to brass tacks.
Usable Working Product is Your Silver Bullet
When I say “usable working product,” I mean a gleaming software increment that is free from known glitches and worthy of release. The agile realm is not a place for code maestros who build fanciful algorithms that never see the light of day. It’s about Developers who can craft a functional product that actual users can validate and provide feedback on.
But wait! The naysayers will say, “What about documentation? Isn’t that important too?” Of course, documentation is vital, but let’s not build the Great Wall of China with it! Excessive documentation in Agile is like wearing a suit of armour to run a marathon – ridiculously cumbersome and defeating the purpose.
Just fix the Bugs FFS!
Imagine a ship with a tiny hole in its hull. Ignore it, and soon you’ll find yourself in an unsolicited swimming lesson. Known errors or exceptions are those tiny holes. If you discover a bug, get your toolset out and patch it up. Too big? Bring it to the Product Owner’s attention and prioritise its fix. Having a “manage-the-bug” mentality is like welcoming water into the ship.
Just fix them.
Feedback Loops – Your Vanguard Against Rework
Do you know what’s better than finding and fixing bugs? Not having them in the first place! How, you ask? Continuous feedback loops. I cannot stress this enough – the more you engage with the stakeholders, the better you understand their requirements and expectations. Your code should dance to the tunes of the customer’s needs. Shorter feedback loops mean you are constantly in tune with what’s needed and can adapt before significant damage is done.
Constant rework of features because of a perceived bug or inconsistency from what’s needed creates significant waste for companies.
Indeed the data suggests that only 35%* of the features we build are actually of value to our customers.
*From the Chaos Report, Standish Group.
Manual Tests – The Antithesis of Agility
Manual tests in Agile are like trying to catch bullets with your teeth – utterly absurd and dangerous. This isn’t a magic show; it’s serious business. Automation is king in Agile. Embrace it, nurture it. Manual tests are not just time-consuming; they are the loophole that regression loves. Automation is the sensors that protect your product from unintended problems.
“The reason you don’t have time to write fast automated tests for your code is because you didn’t write fast automated tests for your code.” – Jason Gorman, Codemanship Ltd.
Keep It Lean and Mean
It’s a battlefield out there. The markets are evolving faster than ever before. Your protection in this ruthless world is a lean, mean, and functional product. It’s not about delivering a magnum opus in one go; it’s about iterative development that aligns with the market demands. You need to be swift, adaptive and focused. Trim down the documentation, automate your processes, and concentrate on delivering a product ready to face the real world.
Conclusion: Be Agile, Truly
So create a usable working product on a regular cadence, close the feedback loops, and leverage as much automation as possible. Use documentation as part of your strategy but just enough to get buy.
Stay connected to the market and business demands and create a usable working product of the highest possible value!
This is the way!