“Sometimes these go a bit off the rails or a less optimal choice gets made and frankly... that's fine. Mistakes are where we learn and letting engineers make mistakes and recover from them is part of letting engineers grow.”
So true. I often pity the young people who are starting now with complete micromanagement by JIRA, Scrum, daily stand up and pull requests. When I started out 30 years ago you could often go away and work on something for a month or more, try out stuff, screw up royally, learn from it and become a better programmer. These days it often feels like an assembly line where every step is optimized but no creativity is allowed. There is no better learning experience than to develop a system and after a few requirements changes to learn that the system was misdesigned. Good programmers will work through that and do better. Bad programmers will just shrug their shoulders.
Right now my strategy as a tech lead is to of ask mainly if something is holding people up, act on that quickly and be available for discussions, but otherwise I am trying to hold back and let people do their thing even if I don’t agree. But this takes strong nerves with line managers and project managers breathing down your neck.