My colleague Jason Skomorowski and I (and many others) work together for Index Data on the FOLIO library services platform. There is a ton of work to do — fascinating work at that, so that I often find myself working on it in the evenings, not because of deadline panic but just because it’s fun to do.
Often when a request for a new feature comes in — whether it’s user-visible functionality, or more exhaustive test coverage, or better continuous integration support, or improvements to documentation — Jason often asks this key question:
“What should I prioritise that ahead of?”
It’s an important question to ask, and to keep asking, in every project.
And I admire this formulation because it’s so realistic. It recognises the reality of the trade-offs, and keeps them front and centre where they can’t be ignored. It militates against the attractive tendency to always assume there’s time and effort to add one more thing into the pot.
The truth is this: if we write more test-cases, we will write less documentation. If we add more features, we will service less technical debt. If we streamline the build processes, we will provide less onboarding support. These trade-offs are inevitable.
And that’s OK: we can make judgements about these different factors, about their importance and their urgency (which are not the same thing). But only if we remain aware that there are judgements to make: that “Oh, I’ll just do this as well” simply will not work.
In the end, the only options are making a conscious trade-off or making an unconscious one.