If everything is equally essential, nothing is

Takes approximately 3 mins to read

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.



Share this post