My experience aligns pretty well with this. I spent a lot of years doing grunt work, which is what led me to code and moving into a software engineer position. Having that background has been invaluable.<p>It seems like every week I'm on a meeting where someone who hasn't done the work start putting metrics together and they look wrong. I go pull them myself, knowing what should be where, what is noise to filter out, etc and I end up with much better numbers.<p>It also lets me put myself in the shoes of the support staff so I can write something that will hopefully be easy to run in production, and do a proper handoff instead of throwing it over the fence.<p>As tools change over time, and work evolves, I worry I will become less effective in my current role as I have less knowledge of the modern grunt work within the company. However, I have little interest in going back to it. I used to try occasionally. Without fail the thing I thought I'd help out with since, "it will only take 5 minutes," turns into an all day event with follow ups which can last days. Then the person I helped will come to me for all their future issues, instead of going through the proper channels. I had to stop. I try to keep an open dialog, so people feel like they can come to me when they see issues where I might be able to help, but that isn't nearly as effective as the first hand knowledge.