Going from developer to manager. Or from regular developer to senior developer. Okay fine. Director of Engineering. Whatever it is. Pick a name. At any rate, it’s not difficult. But it’s certainly different.
I spend most of my time now thinking about how to make sure the developers on the team have everything they need. I work for them now. I spend the rest of my time thinking about engineering stuff. How can we make deployments better? How can I make the environment productive? How do we ensure that we are shipping the best possible code we can in a reasonable amount of time.
Once in a while, I fall back to programming. I need to jump in and start building features. By far, the most difficult thing I do is jumping from programming to mentoring/leading and back again. It’s such a context shift. I find it really hard to do both. I’m fine with one or the other.
When I just lead, set direction, make sure obstacles are removed, or jump in to help developers get unstuck. That’s where I am at my best.
At some point. developers figure out that they are more valuable sharing knowledge than keeping it to themselves. Some developers never figure it out. Managing isn’t a bad thing, it’s just a different thing.