Dominick Caponi
2 min readMay 21, 2023

--

I was considering writing an article about this very thing but you pretty much hit the nail on the head here. When I was talking to a CTO about how to align an organization and its technology stack for streamlined efficiency, the points I laid out were that the incentives of everyone must align and cannot be competing. If stream aligned team A (SAT-A) and SAT-B have a dependency but different priorities preclude helping each other out, you have a problem as one is now blocking/gatekeeping the other or you disagree about what's important. It manifests as "SAT-A is blocking my PR because of some refactor they want us to do as part of continuous improvement but we have a deadline tomorrow and if we miss it someone's getting fired". And just like that you have dysfunction.

As far as individualism goes vis a vis improvement of the whole - a justification I've used myself and what I'm trying to get CTOs to understand is that in no performance evaluation does the topic of particular technical decisions get discussed. It's always how many, how fast, how big where the features you shipped this cycle and "what have you done for me lately". Leadership doesn't have the time to delve into why your choice of, migration to, and evangelization of the repository pattern in that random API made the team's productivity better. They're barely tracking on productivity except at the highest levels which usually translates to number of units shipped.

So until we look at engineering teams with the same lens as an industrial engineer, nobody will consider the macro-environment, we'll all keep making short term tradeoffs and we'll all boil slowly as everyone's velocity ticks down over the years until you see a PM flip out over the fact that it takes 2 months to add a button.

A junior engineer asked their senior mentor how one deals with tech debt. The senior said "To deal with tech debt you simply leave" as they were sipping on their beer at their farewell happy hour.

--

--