One interesting thing about experience I don’t see written about much, is that like everything else, it is a tightrope. Specifically, having a lot of experience generates a lot of reasons to say “no” to things:
- “We tried that 3 (5, 10, 20) years ago, and it went nowhere”
- “That framework is just like <xyz> – switching would be a huge effort for no gain – it’s a fad”
- “That requirement doesn’t fit into our existing code base easily – it will be a huge refactor (or incur a bunch of tech debt) – is this really worth doing?”
- “Back in my day….”
- “Get off my lawn….”
But at the same time, you can’t “just say no” (with apologies to Nancy Reagan) to everything. If you are a senior (or fellow or principal or…) engineer, your org relies on your judgement to help decide when to adopt new tech, or what other investments to make.
I’m not saying experienced engineers are not valuable – far from it. Steering an org away from knee jerk technology changes/adoption is a valuable service, as is communicating the actual cost of meeting certain requirements. With that said, I think the hardest thing about being a senior engineer is distinguishing between the “raccoon effect” (ooo… shiny) and actual innovation that makes things better.
Unfortunately, to generate an informed opinion about anything requires a certain amount of investment. My best advice is to establish some core principles, and an attitude of continuously revisiting your assumptions, and go from there…