As a coder that's soon to be taking on a management responsibility, I definitely feel the weight of it, but I'm up for the task of figuring out leadership. I might well be more suited to it than a lot of engineers would, but I also think that management and leadership is less hard than it seems and that engineers would actually be better at it than their superiors if they would just give themselves a chance.
The trick to it is to realize that it's not, actually, a skill, when you break it down. It's an opportunity to structure part of the operation of the company the way you want to structure it. You can take all those ideas you have about how to run the company better and put them into practice on a small scale. You do not have to give up engineering, you're just also engineering at a bigger level than just with machines. You can and should still program, and still avoid pointless meetings by bringing your laptop to them and working through them.
You're engineering human systems now too. There's no conflict with the other machine-type engineering, because the two are intended to work in concert. So don't create one where it didn't before exist. Humans are easier to engineer than machines in many ways. You can tell a human to do what you mean, humans are smart and machines are stupid, a machine will only do what you tell it to do. You can't tell a machine to exercise judgment or grant them power or flexibility, they wouldn't know what to do with it. But grant flexibility to a human and he'll make your job much much easier.
Power necessarily involves freedom and flexibility, if you've an expectation to meet a responsibility without giving yourself the latitude to meet that expectation your own way, including the willingness to put your foot down to ensure your turf is protected, then you are putting yourself through hell. It's simple, decide what you need to get the job done, then acquire the resources, then follow through. If the expectation is unreasonable, then change the expectation. It's not hard, all you have to do is explain to people that it's unreasonable and offer an alternative. As an engineer, you should have already learned the skill of dazzling people with techno-babble. As a manager, they have to take your arguments seriously and compromise with you. You can't promote someone to management and then proceed to ignore their opinions. That's the whole point of the promotion.
I go home after eight hours. My boss will put in ten hour days but I won't volunteer to. I fully expect my new report will go home after eight like I do. When I wanted to move to flex time I just started coming in later and when my boss noticed, I just said I was going to choose my hours from here on out. My boss insulated me from office politics until I was ready to deal with it and I will extend the same protection to the new guy. I was somewhat worried that the promotion would come with strings attached. If anything they're more worried that I'll get cold feet than they are that I won't measure up. So they've been kissing my ass extra hard lately.
While I agree that moving into management is just engineering human systems (hell, I do more management stuff than code stuff nowadays), it is definitely a skill. Writing "human code", by creating processes and things, requires you to be able to look at someone and understand their psychology, their motivation, their skills and understanding. It is best performed with the zen principle of Beginner's Mind, and other theory-of-mind type skillsets.
Not all coders have the ability to do theory of mind, because they're somewhere on the autism spectrum. I myself am autistic, and I've only learned this stuff through intense study. It was definitely a skill I had to get good at.
One of the most difficult things to do is understand what you personally are good at, to break down a skill you have and understand where it comes from, and what it looks like when someone doesn't have that skillset. Not to say that someone who doesn't currently have it will never have it, but they definitely will have to work on it in order to get there.
imho, there's a lot of skill overlap for certain kinds of people from engineering to management, and a lot of those people end up in management. This is why, to most managers, what an engineer is supposed to do "next" is become a manager. But this isn't everyone, and it's not even most engineers- so developing an understanding that what is easy for you is not easy for everyone is paramount.
I figured that out by teaching, and it took awhile to get there for me, so imho it's a non-obvious thing.
Ah, the innocence of the engineer on the cusp of a new management position.
This is more or less what every engineer thinks when they start a "bridge position". Very few survive, because the reality is that the management world is much different than the world we engineers are used to, even after we have a lot of experience as an employed engineer. We think that since we've seen a lot of bosses come and go and met and talked to a lot of them, we know what works and what doesn't, etc. It's not like that. Management plays by a whole different rule book.
When it comes down to it, management is primarily a psychological position. Soft things matter much more than hard, measurable things. Engineers live in a meritocracy, even if they think their employer is bad about that. The numbers and/or code work and have merit, or they don't. Someone is right and someone is wrong.
Management is the opposite extreme. Your job is to keep your reports happy so that they do the job the company wants to do them as well as possible. Yes, some of that involves acquiring resources and removing barriers to implementation (the part we engineers naturally think of, and have a lot of ideas about how to improve), but most of it involves making sure that everyone likes you as far as is possible, and that in cases where something that makes someone unhappy must be done, the lowest-value person is affected in the least direct way, such that they don't stay off your side for very long. When you are a manager, you are really a full-time politician. To be successful, you must always be campaigning, not on issues that matter or on the most correct or meritorious position, but on whatever will make you most liked, as broadly as possible.
When this was me, I didn't anticipate the heaviness of the political aspect. I thought as long as I was more or less right and proved myself, it would be fine. I thought that if I fought for righteous causes, the truth would bare out and we'd all win. What I had to accept is that this is not how the real world works. I was forced out before my first project even had a chance to wrap. I don't think I was overtly rude to anyone; the issue is that when you're a boss, people nitpick and look for things to be offended about. You have to actively counteract that. If you do something adverse to someone, even something you think is miniscule, you must do it in the most gentle way possible and really think about it. If you don't do anything bad but aren't as nice as some of the other bosses, that will come back to bite you too.
I made a powerful enemy just by politely taking a rain check on a lunch invitation. I thought that was fine and not a big deal, because everyone knew we're all really busy and that having lunch is not a major priority for most people. Turns out, it's not fine.
I made several not-powerful enemies because I didn't regularly pay for everyone's lunch or bring in donuts, cookies, or some other type of treat, which a couple of the other guys did. It doesn't matter that nothing in my job description involved procuring donuts or lunch for everyone. It doesn't matter that I was very generous in other ways. It doesn't matter that I would rather spend that half-hour that I would've spent waiting in line at the donut shop on actual work, like writing a few extra tests or even sitting in a pointless management-level meeting where nothing got decided. All that mattered was that some other guys did this thing, and I didn't. I was expecting people to note these other things and care, but they didn't care because they didn't benefit directly and personally. I wasn't running a tight campaign. A tight campaign wouldn't have let any other employee at any level be more popular or more important.
The problem, of course, was that I didn't go into it to be a politician; I went into it to build awesome stuff and have authority to see it done the right way. Once you're a manager, the only thing that you should care about building anymore is your personal reputation within the ranks. (I've found this to also be true if you want any room to negotiate as a non-management employee.) Doesn't matter if it's better for the company long-term. That's not going to help you. All it means is that they'll still be around to fire you. What matters is that you're exploiting your position to groom your personality cult. Nothing else will help you, because most people do not understand anything else.
One could argue that these are exceptional situations, but I don't really think they are. Maybe someone else would find some other minor thing to nitpick, but they'd still do it. Everything you do reflects back on you, and it's not about merit or correctness anymore. It's about feelings -- feelings that are completely and utterly unreasonable, as feelings often are. When you become a manager, you are the steward of feelings. It becomes your job to ensure everyone on your team is all good feelings and, furthermore, that everyone else in the whole company is all good feelings too, and it gets very personal. Most people cannot make a decision based on the merit of something, they can only make decisions based on appearances.
After trying my hand at this for a while, I decided that I'd much rather stick to coding. Managers become managers because they don't know what else to do with themselves. They are forced to live in the ghetto dictated by irrational, unpredictable human emotion that engineers usually consider something that was left in junior high. Once you get into pretty much any other field, any field where empirical thought processes are not a fundamental component of the day-to-day workload, you realize that ghetto never really got left behind by any of your non-technical peers; it's the only world they know how to live in.
Just came to say that I really appreciate this comment and an example why I still read HN despite all of the signal-to-noise of startup hoopla's.
I want to second and say that when I was very young, I had the perspective of the coder who thought I was being meritocratic when I judged my lead or project manager by their technical worth, ability to lead, whatever; and thought what a dumb naive and pandering move my PM would do by bring Dunkin' Donuts Munchkin's to our morning meeting, but the truth is I judged him unconsciously for those Munchkin's; and after learning the hard way, I'm bringing out all of the proverbial Munchkin's of pandering/cajoling/politicking to everyone at work now.
I'd say for myself that I had once retreated to a purgatory of technical "proving ground". But it was a false purgatory with empty promises, and I'm slowly coming back to the harsh reality of the physical pecking order of lunch tables at junior high cafeteria. But it bothers me less because I realize now how petty both technical and social people are in their own ways.
Great anecdote about the perils of mgmt. But I think it shows that management in an org or sub-org that has a terrible culture is ... terrible.
I've been in and out of management, and how awful it is comes down to who's above you. I've had upper mgmt that was mercurial and weird, but ultimately fair and supportive when the chips were really down. Result: stress but no bullshit.
I've had upper mgmt that was "cool" and had me over to their $3m vaca house and threw great parties. When the shit hit the fan, things were weird, uncertain. In the end I was thrown under the bus. Result: foreground "mellow", background stress, bad outcome.
Whether or not I bought donuts for my directs had nothing to do with it. My approach toward employees was 1) service 2) work queue mgmt 3) technical mentorship. In so far as I stayed on the ball this worked out fine. Most issues were my mistakes, not some horrible political gaming fail.
The trick to it is to realize that it's not, actually, a skill, when you break it down. It's an opportunity to structure part of the operation of the company the way you want to structure it. You can take all those ideas you have about how to run the company better and put them into practice on a small scale. You do not have to give up engineering, you're just also engineering at a bigger level than just with machines. You can and should still program, and still avoid pointless meetings by bringing your laptop to them and working through them.
You're engineering human systems now too. There's no conflict with the other machine-type engineering, because the two are intended to work in concert. So don't create one where it didn't before exist. Humans are easier to engineer than machines in many ways. You can tell a human to do what you mean, humans are smart and machines are stupid, a machine will only do what you tell it to do. You can't tell a machine to exercise judgment or grant them power or flexibility, they wouldn't know what to do with it. But grant flexibility to a human and he'll make your job much much easier.
Power necessarily involves freedom and flexibility, if you've an expectation to meet a responsibility without giving yourself the latitude to meet that expectation your own way, including the willingness to put your foot down to ensure your turf is protected, then you are putting yourself through hell. It's simple, decide what you need to get the job done, then acquire the resources, then follow through. If the expectation is unreasonable, then change the expectation. It's not hard, all you have to do is explain to people that it's unreasonable and offer an alternative. As an engineer, you should have already learned the skill of dazzling people with techno-babble. As a manager, they have to take your arguments seriously and compromise with you. You can't promote someone to management and then proceed to ignore their opinions. That's the whole point of the promotion.
I go home after eight hours. My boss will put in ten hour days but I won't volunteer to. I fully expect my new report will go home after eight like I do. When I wanted to move to flex time I just started coming in later and when my boss noticed, I just said I was going to choose my hours from here on out. My boss insulated me from office politics until I was ready to deal with it and I will extend the same protection to the new guy. I was somewhat worried that the promotion would come with strings attached. If anything they're more worried that I'll get cold feet than they are that I won't measure up. So they've been kissing my ass extra hard lately.