Hey pals, welcome back to the Adventures of Blink!
For today's adventure, I want to explore the concept of Agility.
Wait, Blink, you covered Agile already
Yeah, I know. We've talked about the value of agile thinking before. So why revisit?
I ran across a really interesting post over at Pulumi... a story about "Your Perfect Infrastructure". As I read the story, it occurred to me that this is a very common pitfall for us as technologists... particularly those of the Architect persuasion, who spend their days in design and don't crack open the code very often anymore.
Simen's story is super short, but immensely powerful... he designed "the perfect infrastructure". He future-proofed everything. But then as he worked to get it implemented, he found that his design had actually become his biggest constraint! How does that happen?
It's about Commitment
Not like relationship commitment... like database commitment. A 'commit' step is when you finalize your request and confirm that you want the database to actually do the command.
Designing a system is a lot like that - at some point in the design process, you'll realize that you have to put in more work to undo something than you would to complete the build... and if you find a major design flaw after this point, it's super painful and expensive to alter the plan.
Applying a little logic
It stands to reason that if it's going to be expensive and painful to alter your design after committing to it... you should delay that commitment as long as possible. (Ok, on second thought, maybe it is like relationship commitment after all! 🙃)
The Siren's Call: Why we're so eager to commit
We have a lot of pressure cues that encourage us to commit faster:
The Biz wants you to commit. How much is this project going to cost us? When can we get started? How long will it take? Every question they have for us is answered with a commitment of some type or another.
It was built into the Waterfall. Think about it - we have a Scope phase. Then we have a Design phase. Then we start to build. See what we did there? We completed the Design and committed to it before we started Building.
Humans like commitment. It feels good to be able to check something off your to-do list. We love that dopamine hit we get from marking a task complete and moving on to the next thing. So if we're responsible for designing something... well, there you go. We want to commit!
But Blink, if I don't commit nothing gets done
It's a problem - we need a design to follow, but we can't commit to anything until the last possible second? How are we supposed to get anything done?
The secret is that we aren't avoiding commitment. We're just doing it on a smaller scale. After all, agility is about breaking tasks into smaller bites, and then doing those one at a time. So that's what we're going to do with our design decisions... break them into smaller and smaller decisions, and waiting to decide each of them until they can't wait any longer.
And we have to resist the urge to build our perfect infrastructure... lest our endless pursuit of the perfect design get in the way of actually getting it done.
Top comments (0)