they have to fix somebody else’s mistakes over … low-quality. Low-quality means a poor design that will have to be fixed later by more senior devs. Over time, those devs become frustrated because they have to fix somebody else’s mistakes over and over again for every project they join.
Both these situations had one thing in common: that I couldn’t be involved in everything that was happening. It wasn’t humanly possible. As a tech lead, I had to trust others with responsibilities and focus on the most important things. Sometimes that would mean ignorance and other times it would mean that things weren’t done exactly the way I would choose to do them, or even that they were done in a less than ideal way. Saying “I don’t know, I need to check with the team” was OK but accidentally spreading misinformation was harmful. And having little things that weren’t quite perfect, like a bit of procedural code, was OK. But taking on large architectural change without my oversight was not acceptable.
…orrect and smooth as possible and doesn’t get blocked or create failure demand (due to bugs, etc.). Simple version: to keep developers productive, the team around them work to remove any obstacles or distractions so developers can focus on writing the right code to deliver value.