> Plus.. the director job is generally going to mean a
> more relaxed job
If you believe responsibility over people, budgets, liabilities and policy is less stressful than responsibility over systems, you're high. As a programmer, let me tell you: people who have only ever done programming for a career have no clue how relatively easy they have it.As someone who was a banquet manager before switching careers I can assure you that you are 100% absolutely correct. My most stressful days (of which there are very very few) as a developer don't come close to my least stressful in my previous career.
So how do you inspire developers to execute in a timeframe dictated by others? You have to be a leader who inspires the engineers to complete the task, even if it requires putting in extra hours. This means setting the example, looking out for your engineers' welfare, being able to provide answers and not problems, and being someone who can be easily approached.
The moment something goes wrong, the burden is on the manager to make the right decision - the wrong decision can have negative ramifications over months, if not years. The moment you micromanage, something is broken in your process, or with the people involved.
I recently had to start wearing a technical lead & director hat - the intense pressure of the startup world bore down on my whole team in order to get a working product in order from scratch in about 1 1/2 months of coding. The resources became scarce since the technical lead got sick & had a family death, while two other senior engineers had babies in the time period. It then was left to two junior developers and me to do the lion's share of work until the other engineers could get back to work. I let the junior engineers work mostly normal hours (until close to our deadline) - I ended up taking the burden largely on myself, with mostly 75 hour weeks (even after the other engineers were back as well). During regular hours, I did some work, but was more focused on mentorship and any tasks that were blockers. The early and late hours were when I busted out complex code.
At the engineering level, good management shows as incredibly important, especially for startups. Pressure deadlines on engineers are taxing for all - good management by top level engineers is vital for preventing burnout in everyone else, which can make it easy for people to decide to leave a company, especially when compounded by salary that does not match what the free market has to offer.
Also wow, well done on shielding your junior engineers from the worst of the death march. Did you suffer much from burnout during your heroic effort? How did you cope?
I did have to sacrifice all other interests thought during the time period though. All I know is, I'm definitely taking a vacation in two months.
I've had 1 good manager who I was too inexperienced to appreciate. Beyond that, the better managers I've had was too soft that the other departments were able to play politics with or hijack their staff and the worst did their best to keep you ultra stressed 24/7 because they thought you'd deliver more work that way.
We've all came up in different ways, unless you've had multiple lifes experiences, it's really hard to decide that's the way it is for everyone.
Remember that in many cases, the software developer has the same kind of weight on his shoulders; some bugs and errors can cause huge amounts of lost revenue, lost jobs, etc. Software plays no small role in the day to day operations and programmers carry a lot of weight on their shoulders, especially in companies that don't have strong testing and review methods (read: almost every company in existence).
* In most cases, the Manager acts as the communication layer between different departments. They abstract all that stuff away so developers can write code without being interrupted by various people. They then have to communicate that information back down to their team when needed (and in the right way)
* As a developer, you have a deadline, but missing it is often just a "Well, we didn't have the time" or "We tried, but just couldn't quite get there". As a Manager, it's your responsibility to explain why something was late, how it can be remedied in the future, and answering the inevitable "Well when will it be done then?". You're responsible for the overall project, including deadlines.
* Meetings. Not only are there a lot more meetings, they're often made for the schedule of other departments who don't have "the zone" in the same way that developers do. I still write code in my day-to-day, but a 60% reduction in programming time ends up being an 80% reduction in output because you get interrupted, side tracked, and generally don't have time to "ramp up" for >2 hours at a time.
There are many more reasons, but the stress level in the Management role, in my opinion, is a bit higher.
Note that this include the "tech lead" stuff. That said on average for me and my close colleagues its largely always been easier and less stressful as a manager or director.
And remember, we're not talking about vow of poverty here exactly. 150K gets you in top 10% easily, and if you have a household with two 150K salaries you're pretty close to the much envied 1%. Maybe there's a point where more money wouldn't actually make it better if it comes with more frustration?
As for why directors get more money - again, I have no problem with people doing what I can't and won't do getting more money than I do. My life is not a competition with them, it's a competition with my last year self. If I win that, I'm good. Which means, if the company wants to keep a good engineer who thinks like me, they should be able to provide some track for me to be better next year - position-wise, money-wise, respect-wise, responsibility-wise, however it goes - than last year, without forcing people into doing something they may suck at.
There are many ways to provide leadership, and not every manager leads much.
I was probably an OK manager, but didn't feel that I would move up any further without doing some things that I didn't want to do, such as relocate.
Our managers don't actually spend a lot of their time managing people. Rather, they work on administrative and information processing tasks, and step in as small project managers.
Wanna be a tech leader paid 150k? (fancy title, +- same salary as before)
Or wanna be a director paid 250k? (fancier title, way bigger salary)
Kinda difficult not to choose the "free tesla every year" isn't it? Plus.. the directory job is generally going to mean a more relaxed job (albeit less interesting for an engineer maybe, but that's why you have open source projects right?).