If everything is equally essential, nothing is
Takes approximately 3 mins to read
Table of contents
Software engineering presents a peculiar conundrum, like dancing a waltz on tightrope: when every step is considered essential, its rhythm dissipates. If we claim that every task has equal importance, do any truly stand out as being essential?
Imagine for a moment a juggler skilfully keeping balls aloft, each throw and catch perfectly timed. Now give them one extra urgent ball labeled as such and soon it becomes not only a feat of dexterity but an overwhelming flurry where not even one ball can be tracked reliably.
Software engineers often must juggle multiple tasks simultaneously without issue, making switching tasks a difficult feat. Each new “urgent” task they are given alters their cadence and becomes even more challenging as they recall previous steps, understand various sequences, or adjust routines as new requirements come up - knowing which ball to catch next becomes essential in such a dance.
A Tale of a Town Crier
Town criers used to provide critical news to their villagers via public addresses system. But if this crier announced every piece of gossip and minor event as though the kingdom depended upon them, their calls might soon become ignored even if amongst these were truly urgent announcements.
If every software bug or feature is labeled “critical,” teams could become distracted and become less vigilant about truly urgent issues that could befall us - for instance a system failure or security lapse might occur as a result of this behaviour.
Borrowing Time: Technical Debt
Merchants in ancient cities would often loan goods at interest to one another for sale in their marketplaces. Imagine taking out small loans here and there until your debt becomes unmanageable.
When software solutions must be completed quickly, engineers often resort to quick and temporary fixes that meet immediate needs but incur technical debt - becoming like a crumbling bridge with each added weight - before eventually needing reconstruction work or major repairs to remedy their deficiencies.
Charting the Map Forward: The Art of Discernment
Navigating the vast oceans of software engineering takes more than just a compass; it calls for discernment. Here’s how to set your sails straight:
The Golden Scales
Determine an objective metric for measuring urgency; is this an impending storm or just an occasional gust?
Councils of Align
All members of a kingdom - from court advisors to watchmen - need to come together as one unit on what truly needs urgent attention. This can be achieved through open parleys or, sometimes, tough royal decrees.
Star-Gazing
Keep an eye on the stars (or, more accurately, our backlog), as our guide may have changed since last season’s journey began.
Voices of Craftsmen
Hear what the shipbuilders and sailors - developers - are telling you. They know the intricacies of your ship inside out and may spot an iceberg before it becomes visible from its royal deck location.
Realise that every step forward may mean pausing another dance. Life’s an interweaved series of dances, and we must sometimes select which we lead.
Software engineering can be seen as an ever-unfolding tapestry of tasks and challenges that, when completed with thoughtful intention, weave together into something both beautiful and functional. When everything seems urgent and immediate, though, the tapestry becomes unruly; but with proper prioritisation every thread finds its place within a harmonious whole that emerges more clearly over time.