I sometimes feel like the course of my career has been one long vacillation1 between being too argumentative and too deferential. I’ve often struggled specifically in work contexts to discern when …
In fairness to myself, I’ve also come into contact with many other people who struggle with this. I can’t count how many people I’ve worked with who casually made requests for significant changes to other peoples’ work, often for spurious benefit and with horribly inopportune timing. Funnily enough, those are the exact people who I’ve historically avoided debating with, either due to a (often mistaken) belief that they simply knew better, or due to an (often correct) understanding that these people are just not worth debating. I hope that someday my career rewards me for at least thinking about whether it’s worth having certain debates, because it would break my heart to find out that what society really values are those sorts of inconsiderate boor.
I’ve just as frequently seen unthinking accession to other peoples’ decisions go just as poorly. I’ve seen this referred to as “false harmony” in management articles, and it can mean that teams fall into bad patterns just for the sake of collegiality.
People who try to present as supremely confident3 will often seek conflict (or at least domination) in trivial matters. People who outwardly present as low in confidence will often avoid open disagreement, even when they have meritorious doubts about an issue. This can, over time, destabilize organizations.
At some point in their careers, most engineers come to a realization: we are not rewarded for linear outputs. Most engineers will tell you that the transition from a junior engineer to a senior engineer, or the truly transformational work in our careers, does not come from just crushing tickets non-stop for extended periods of time. Similarly, these transitions don’t come from implementing some n+1 product feature that you’re told is very important. Instead, engineers are most valued6, and therefore most rewarded, for non-linear impacts.
As a concrete example, I would rather implement a self-service e-commerce platform for a company’s merchandising team, rather than make it easier for engineers to service a ticket to build a /products/hat/:id endpoint every 6 weeks.
Non-linear Drag is a term I use to describe factors that lead to exponentially decaying productivity over time. Most folks would probably lump this in with “tech debt”, a term I doubt ever really had a lucid definition. I think precision matters when you’re offering people a razor, so I want to differentiate this form of tech debt, which generally involves bad architecture or fundamental technology mismatches, versus things like an increasing support surface8
Linear impacts and drags exist, and they’re generally the majority of what we encounter
Non-linear impacts and drags exist, and the opportunity to create them is definitionally rare
Engineers receive outsized rewards for the non-linear impacts they create9
Only debate the non-linear. If there is a strong case to be made that a proposal will create some non-linear impact, then it is worth debating at some length.