In my organization, I started out as a senior software engineer. Through my work, I put together a number of detailed architecture designs and was given people to help build our product over time. As the definition of the architecture and implementation came along, I was given more and more responsibility and duties, to the point where I'm helping to set the direction and schedule for major parts of the software organization. At this point, I've even been given allocated headcount for a large team to help build it all. I don't really have a manager, as I report directly to the VP of software, and mentors are far and few between.
I'm still personally tasked with building out the architecture, writing code, training newhires, handling the HR-side of management (PTO, sick leave, etc), hiring plans, work estimates, gap analyses, bizdev relationships and so on. I've asked for training, but so far haven't actually received any. I don't have a college degree, learned everything I know about software engineering myself, and have no experience or training with the business-side of things.
How have those of you in similar situations dealt with the stress of it all? I find myself overwhelmed with responsibilities, and some of the political pressures from above are starting to take their toll.
Simple solution would be to ask to do less, but make sure to frame it correctly. Since you were given more responsibility over time I'm making the assumption that the VP trusts you and your work. I'd suggest going to the VP and telling them that you're falling behind and it would be beneficial for you and them if someone else were either hired on or brought in to share the load. It's not a problem of you not being able to do the work, rather you're not able to find the time for everything.
In part your VP has already provided you the solution "allocated headcount for a large team". Question is can you keep all the balls in the air successfully while you go through the hiring cycle.
I have talked with many CIO's who have gone through similar transitions in their own career. Starting as very technical and needing to transition to managing people, corporate functions and major projects. These transitions and letting go of personally being the smartest technical person in the room is often difficult. You move from your comfort zone of being very competent into a "newbie" role trying to figure it all out.
Each company is different. Your description makes it sound as though your company hasn't really thought it through very well - "just give him resources and he will figure it out". Sometimes this kind of sink or swim approach works but it could clearly end badly for you and the company.
You are no good to the company if you seriously burn out and crash. It feels like you need to push harder on the getting training and help. And, make sure your headcount lets you hire somebody in a support role that can hopefully take care of a lot of the little details of running your department.
It is a conversation with your VP at this point. If I don't get the help you have told me I can go get this is going to sink, its going to be my number one priority.
The other thing you need to find is a mentor, if you don't have any one in your circle (a former boss works, someone else who has been promoted) then you need to find outside help. Start looking for life coaches and or professional coaches, you may need to go through a few of them, but you might find someone you like and who can genuinely help you out.
I know this is nitpicky, but: HIRE, HIRE, HIRE.. and delegate.
Don't just shanghai someone because he came through the office door. Hire someone with a clear goal and determination in your mind, something like "You analyze, refine, visualize and optimize workflows in this team" or "You're the guy to run around, collect business requirements, identify stakeholders, and priorize tasks with them".
And once they are in the team, throw as much of that responsibility in their direction and let them handle it. Control and support them as necesary. For one, this is the only way to reduce the workload on yourself. However, I've also found this to be a great motivation - people like having a purpose, a goal and feeling needed.
While the VP is asking you to hire, the question is: why is your title not aligned with your responsibilities? Though you do not mention this, I have seen people in similar situations who send signals about not wanting "Manager" in their title. They are vocal about what they do not want to become in spite of what they are already bringing to the table, which can hinder professional growth.
Since you are directly reporting to someone who would otherwise be your skip level manager, you will need to fill in for your manager and ask for the correct job title to begin with. This will ensure two things:
1. Your responsibilities will be algined with your title; and
2. You will have better access to information and authority you need to build the right team, in addition to doing the right thing for people who already report into you.
I'm in a similar situation and have no idea how to solve it.
I've been thinking of pulling together a mastermind of other programmers-turned-executive so we can talk about these problems together. I'm seriously peter principally-ing over here. ;)
Anybody interested?
Me:
Mid 30s
Director of Technology
Team of 10 + part timers.
No College.
Two failed saas products.
Having been in a similar situation, try to decompose the problems. It'll be much easier make sense of it in simple chunks then group them into buckets.
Next don't do it all yourself--it's suicide. Delegate those responsibility groups one at a time as you catch that new owner up to speed. If you don't know yourself, then point/pair them with someone who does.
Once everything is delegated your new job is helping those new managers succeed and focusing on the things where you uniquely bring value.
You can do this, just take it a step at a time. It only feels insurmountable looking at it all at once, it's an illusion.
Delegate with the understanding that people will make mistakes and be supportive. Seems like you're transitioning to higher leadership. Focus on checking in frequently and make sure things are moving in the right direction while providing the needed help in problem solving when necessary. It takes a lot of trust too.
Make sure you get a title and compensation change that is proportional to the additional responsibility and increased value being delivered to the company. You may be surprised how that will change the nature and quantity of demands being made on your time.
If you keep saying yes (to everything you did before) and yes (to everything you are discovering you can do), it is only human nature for individual requests to increase to the point where they collectively overwhelm you. You could individually re-negotiate boundaries and committments, but that itself is work and requires political skills. A public change in title and a financial change in compensation will require executive approval and that process will help change company-wide perception of what tasks are the best use of your time.
Once that is out of the way (increasing your price as a form of demand/flow control), find good books and external mentors on:
Leadership (managing down _and_ up) [1]
Project Management (execution logistics) [2][3]
Communication & Politics & Sales (human semantics)
I think your first step is to delegate some of your responsibilities ASAP. If you stop writing code and building estimates (but keep doing code reviews!) and hand off parts of the new hire training, that will free up time for other responsibilities. It will also help the people on your team grow so they can carry even more of the load for you.
The Manager Tools podcasts have a lot of very useful advice that I think would help you. I recommend subscribing to their "Basics" feed to get started, and then listen to the full feed. http://www.manager-tools.com/podcasts/basics-rss.xml
You can see their whole "map of the podcast" here: https://www.manager-tools.com/map-universe/trinity-one-ones. It's overwhelming at first because they have almost 1000 casts. But you can navigate through the list to find the topic you're struggling with, and download the podcasts from there.
I've found that having coding responsibilities is almost detrimental because I never have time to complete them. If I take a dev story off the backlog, it tends to stay open forever because I'm too busy doing managery things. I'll bite off really small bits that I know I can do quickly to at least keep my skin in the game.
I've experienced the transition from being an engineer to a manager, and then from a manager to director, from director to VP, and now CEO.
I can tell you by far the most material impact on my ability to take on more responsibility has been having a great manager (not just a mentor). A manager knows what work you're being asked to do, sees you try to do that work, and can give you feedback on the work that you're doing. A mentor just does not have that context.
It's so important that one of the questions I ask when interviewing people (at any level) is tell me about a great manager you've had. And a shockingly large number of people (even directors or VPs with impressive resumes) will say "I never had one, but I wish I did."
This is a longer-term advice, but I would make it a career goal if you want to grow to try to find a really great manager.
I like the question about a great manager as a way of learning from others' experience. Do you find that it's useful in assessing the candidate as well? Are there good and bad answers to that?
There aren't any good or bad answers. There are great people who haven't had a good manager. Good managers also manage not-so-great people. I ask really to understand more about their professional background. Depending on the role, on-the-job training may or may not be OK.
I used to be the only developer at my company, responsible for all of our internal web software and outward facing web software, and developing all custom code. I had 10+ projects going at any given time as well as catching any bug reports/questions for any of our internal web software.
I reported directly to the CEO. I coped with this as long as I could fighting through burn out until I finally let him know we needed to expand the team. I was buckling under all the tasks. I spelled out clearly how it was far too much for any one person to handle.
We've slowly over time expanded the team until we now have 5 developers, which is still less bandwidth than we want but it makes things a lot more manageable, because we now as an organization accept a more realistic view of what we can do with the team we have.
I would say try talking to your manager about the reality of your situation. Have a real conversation about your concerns. If they go unheard or nothing comes of it, then it's probably time to move on.
Congratulations on your promotion to Director of Engineering!
Now would be a good time to assess your manager's history and learn to delegate the things you may have been doing on your own to others like they did. Your manager should be able to help you do this.
If this is an established company then this can't be the first time they've been in this situation, so there's probably a misunderstanding somewhere.
If this is a new company then it could be that they are learning this process as well.
If you haven't actually been promoted or your manager can't or won't help you grow into your new position and work through these issues then something's wrong. Beware.
Contrary to what many people think, few of us have managers who can consistently and successfully lay out the optimal career path and help us achieve it. I'd say there are three main reasons:
1. It's really hard to do.
2. Few people have themselves been trained on management.
3. Faced with 1 and 2, people focus on their own, more familiar personal deliverables.
What you're finding is that working as both a full-time manager and full-time engineer is very difficult, borderline impossible. Eventually, you'll have to choose. An increasing number of small companies are starting to understand this reality, and allow their top people to grow into either technical leadership or management leadership roles. Expecting both, simultaneously, is not realistic.
Some of what you describe probably falls under the category of tasks that, if you are smart, you can just figure out (gap analysis, for example, whilst a wonderfully bullshit bingo compliant term, is fundamentally quite straightforward), and no training or mentoring is really required beyond a bit of practice and some copy and paste from previous examples (and perhaps a bit of bluffing, here and there). I'm moderately certain that most people just make this stuff up, and it usually works out okay. I think confidence is probably key.
Where your responsibilities start to stretch to, say, handling conflict between stakeholders, other stakeholders, and non-stakeholders, I suspect that you will either thrive on that sort of situation - and connive ways to benefit from it - or you will always hate it, and I'm not sure any amount of support or training will really help here.
Lastly, if you are doing HR-type duties, then you really do need training here. Sometimes common sense really does not apply here, only prior experience, and you should not be expected to handle these types of tasks without proper assistance and guidance from people qualified to do that.
Something nobody seems to have mentioned, which I think is actually very important, is to make sure you take time off to get away from work and not get burnt out.
Find a mentor - I've been through a similar situation years ago (happy to help if interested). As others have said, make sure to get a comp/title change in response to you taking on additional responsibility. What I think you'll find as you grow in your career, is that what you say no to (and your ability to focus) will become much more important than your ability to take on more and more tasks. We're all human and will have breaking points, so maintaining the ability to focus is crucial.
Don't let your lack of degree or business training discourage you. A lot of leaders at start-ups today have similar backgrounds, and are learning on the fly. One area I found difficulty assessing was identify which stress was me growing into a role versus which stress was self-imposed. I worked with an executive coach to help learn the difference and make some small tweaks to my behavior.
Hang in there, say no more often, and reach out to others who have gone through a similar transition for help.
Take a week or two off. Come back and find out what went to hell without you around. Delegate those duties to your underlings, or quickly hire underlings well suited for those duties if you don't have any yet.
In parallel with the direct suggestions, address the stress itself. Prolonged stress limits brain function and therefore your ability to turn the situation around.
Do exercise coupled with controlled breathing, specifically with prolonged exhales, which tells our nervous system that there is no fight here. Do a tiny walk outside every two hours of coding, and consider yoga. Personally I also signed up for Blue Apron or similar mailed recipe kits because I found those instructions to be a relaxing level of activity, better than TV but still winding down, and there are those healthy diet benefits. I also rigged a sit / stand workstation with email on the low monitor and code on the high ones so switching position just happens.
It's very important that you allocate some time to each area - upto 2 hr blocks of time for coding and architecture, 20 minutes for management tasks and a block of time for firefighting/reacting.
Also schedule in time for exercise, sleep, and just general downtime. All of which are very important.
Lastly, drop anything that's not important and delegate whatever you can. From your description it looks like you will be getting new hires to help you out soon. Just ride it out until you get support and make sure you don't burn out along the way. All the best!
This doesn't directly address your question I suppose, but one thing that I have found to de-stress myself in times like this is to take a moment to consider the achievements you've made (with no formal training, etc). You're clearly super competent, can solve all sorts of problems, and a natural leader. This is great for you long-term. You will most likely have tons of great job opportunities in the future, which will most likely allow you to have the lifestyle you wish in the future. To me anyway, that can be a de-stressing line of thought, because while your current situation may be stressful, you can genuinely look at it and say that it is temporary (how temporary, I don't know). Even if the stress may be somewhat baked into your job now, you'll be able to address it in the future by getting yourself an awesome position. Easier to shake the present off if you realize you're in for a great future.
Delegate. There is a distinct disconnect between you saying "allocated headcount for a large team" yet you also saying "I'm still personally tasked with building out the architecture, writing code...".
e.g. Sick leave - grab a warm body & tell them they're in charge of sick leave now.
If you're reporting to the VP then you are reasonably high up the foodchain and thus you are (or should be) entitled to make calls like that.
If you manage people, and report to a VP, that means your title should be "director," at least by valley standards.
Hopefully your VP can serve as an internal mentor and coach? An easy way to get started is to ask for advice on some particular point, and grow the discussion out from there over a few weeks.
If you manage two people, you should still have time to code yourself.
If you manage six or more, and have business/design/project leadership responsibilities, you probably won't have a lot of time for coding on average.
If you manage ten or more people, you should split the people in sub groups and get managers for those groups.
Verify changes with your VP before actually implementing them, but make sure you rub the agenda of your team.
A budget mindset is helpful here, often critical. You need a time budget: brain dump your tasks, estimate time required for each task, put tasks on a calendar, repeat daily/weekly. I have never found a perfect method or tool to triage this fire-hydrant-level of workload. The best I can offer is, make time for it like your sanity depends on it. Getting on top of it is difficult initially, but it's temporary, and thereafter becomes manageable. Now you have crude metrics. Your VP can't argue with the laws of physics. This work on your time budget is like meditation: If you can't spend 10 minutes on it, then you need 3 hours.
Some times when people are self-taught, they lack confidence because they don't know what they don't know. This can lead to less competent colleagues, who happen to have a more aggressive personality than you, to move things in a bad direction. You sound like you have been entrusted with much. You probably know more than you realize.
It is critical to communicate your situation and needs to your VP. Unless you have immature management running the company, they need to know if you are drowning. Keep it objective (the metrics help with this). You don't want to come off complainy or the victim. Don't sugar coat the situation or be timid. You have some level of pull - the last thing your VP would want is for you to walk.
Don't ignore your health. Stress quickly becomes a vicious cycle, where once your willpower is depleted you make poor decisions, which only leads to worse stress. Whatever you eat, ask yourself what it is fueling. Get exercise. Unplug from work. Get enough sleep. See a doctor, or take supplements if needed. I had a big breakthrough in life when I started taking a supplement package. It pushed me over a tipping point. I was successful on a diet I had quit at least 30 times before, lost 40-50 lbs, no longer had afternoon crash in energy, and am much more productive even when I don't get enough sleep (I have a 1-year-old). My personal and professional lives improved significantly from getting my health in order.
The trick is to hire people below you so that your job becomes coordination and a set of minor tasks (HR, high-level architecture, roadmapping). For that you can't really delegate hiring as you need the right people in the right job.
But you can definitely delegate training new hires, software architecture, writing code, product management and QA.
I don't know how much headcount you've been given but if you have to manage more than 5 people your role should only involve management.
Break down all the tasks you are doing and are supposed to be doing. Every task that you can see yourself doing for more than 8h/week needs to be done by somebody you hire.
Before you jump in and go on a hiring spree, make sure to list the top 5 outcomes (with measurement) you want to achieve by hiring this person.
It also helps to list the personality traits/skillset you think they will need to achieve those outcomes.
Using this approach you know what you are looking for and frankly, this approach has helped me bring in people that completely own their domain and almost need no guidance (beyond the initial onboarding). Ironically the goal you should have as a manager is to make yourself obsolete.
It helped me set my world straight for all the new responsibilities as a tech lead (and I'm not a natural with pressure either, having learned the value of having a slight rough edge the hard way).
In the end, your best bet as said is great hiring and pushing work away from you, which is hardest when you feel you're still doing and understanding it best yourself. Stop this anyway.
Great guideline from my co-founder: Try to get people 70% as good as you and stop there. Really try to lose as much day-to-day-stuff as possible and try rather to get the right people together and give them good context.
Get some senior people along to proxy all semi-important stuff through them. It's a quick way to get them onboarded to stuff you usually do.
Otherwise: Good luck, you could need a mentor, but it looks like you're alright for now, don't search too hard. Don't be too scared of doing mistakes either, you'll do them anyway.
But do yourself a favor and go get that title upgrade to whatever you need (Tech Lead / Lead Architect) - you'll have to be sure you've got the upper echelon's support to whatever uncomfortable decisions you need to take on the way.
I would look up Ramit Sethi's courses on negotiating a raise and promotion. In your case, you can already justify one. Try to use his kind of phrasing. I've used it to great effect. Good luck!
The advice on how to handle it from others is awesome - in terms of career advice. I'd like to also add that you should "get out more".
I've had experiences almost exactly like yours. Long hours, lots of pressure from above and below.
I have found that leaving the office and wandering around our neighbourhood for a few minutes (<=10 && <=30) when I'm feeling loaded really helps clear the brain.
What's neat is that when I come back I can usually find one thing I need to knock out from my massive list and close it, done well. It's like I come back with clarity and energy. Of course it depends on making it from the door to your desk before anyone says "do you have a minute?" - then it all goes to heck for me.
I also "escape" at the weekend. Clearing head-space like that puts you in a good mood, lets your sub-conscious solve some of the issues.
Happy people are better workers. Remember that for yourself and more importantly for the team you manage.
Somewhat related.
Often I leave the office, to do nothing. Walking, talking with people etc. And after those 10-15min when I do come back I usually have a solution for the problem I was working on. It might seem to outsider, or even for myself that Im just slacking off, not really trying to get the problem solved fast, but in practice it saves time.
I've been in a similar position as you. Make sure to not run in perpetual crunch mode. If you have to consistently work on weekends or late you are doing it wrong. The stress is bad for your health. Sadly happened to me.
First step is to determine proper team size to do the job. Next bring in a few key teams members who you can trust to get things done. Start delegating stuff. However try not to delegate the understanding of the overall project. You should have a good pulse of how things are progressing without polling people. That mean being in code reviews, reviewing commits, etc.
Have all these changes made you happier? We all love status, having influence, etc., but are you actually enjoying work more than when you were coding? Many times the status comes with so many strings (and responsibilities, and headaches) attached that it doesn't really improve our lives at all.
There are a number of good suggestions here about how to make the best of what you're doing; My suggestion is to look closely at how the job feels while you're doing it (as opposed to how it feels when you're telling people about your role). You may find that being a senior engineer or architect minus the planning, tracking and administrating makes for a better work-life.
Let me get this straight! You ARE reporting to a Vice President. That makes you a SENIOR Manager. You have been given the golden opportunity but you think you are SuperMan - sorry you're not - so DELEGATE !
Either promote from within or hire some junior managers - e.g. HR, etc. Work out what needs to be done and delegate. I presume you like the architecture design, etc. Once you delegate (and hold responsible) others for the roles that you do not enjoy and do not have bandwidth to handle, you can do what you enjoy.
Remember it is easier to ask for forgiveness than to ask for permission. You might be surprised to discover that you were being tested to see if you could step up. You DO NOT need to learn how to do it all, you simply hire competent people to do what you are unable to.
Interesting question, you do have a manager, the VP of Software, if they are not coaching/mentoring you and helping you grow into your managerial role they are putting both your career and the company's future at risk. Just saying.
The first thing to remember is you will always "be personally tasked with building out the product" and you will be doing less and less of the actual coding, but you will still get fired if the product fails big time. In theory the extra risk come along with extra pay, since this sounds like the first time you're doing this I'm guessing you may find you aren't being paid commensurately with the risk you are taking.
As you become senior leadership, your task is to look further and further ahead in time and try to anticipate, and have plans for the various situations that may arise. Given that those situations will have various chances of actually coming to pass, those that are unlikely you can just sketch out an idea for a plan, those that are more likely you need something more detailed. One of the secrets of being a good leader is that while it may seem like you "pulled a great plan out of the air when this thing happened", its really that you had already considered weeks or months ago what you would recommend if that weird thing happened.
As you get closer to the top you will have to include business priorities as part of the "weird things that can happen you have to look out for." and to understand exactly how the company is generating value using the products or services your team is developing or providing. Nothing is more frustrating to a brilliant engineer than to deliver a beautiful architecture and product to a company that cannot use it in their business when it is delivered.
You should probably have a discussion with your boss, and your boss' boss in the same room talking about what you're going to be working on and delivering with your team. It will help tremendously down the road. That is also a good time to ask for training resources as your boss' boss will be eager to fund them if you are being successful and that will encourage your boss to actually provide them.
There is a weird point you can get to when you realize that you're boss is afraid of you, depending on your boss that can be very uncomfortable.
The first thing you need to do is decide what you want to do. Do you want to be a manager? If not, you need to go to your VP and tell him to hire someone to manage so you have time for the technical side.
If you want to be a manager then you need to delegate most of the technical stuff. Not necessarily at the architecture level, but you really shouldn't be doing things like coding or writing estimates. You may be good at that kind of stuff, but other people are good at that kind of stuff too. Hire one of them.
The worst managers are the ones who can't let go of the technical work and half-ass the important part of their job, which is to manage.
I am and I've been in similar situations if not worse.
The best suggestions (although you can find some great ones here) that I've received that helped me keeping afloat have been:
- don't overwork yourself, 7-8 hours a day is enough
- plan ahead
- keep a small to-do list of (top) three achievable things to be done by the end of the day
- outside of work, focus on things that makes you feel better, like good friends and manual hobbies
- get a good night sleep
- eat heathy
It's stress because you haven't adjusted to the situation. You have very quickly expanded your role but you are only part way to becoming manager at your current level. This is ok, the important thing is to recognize the problem and start working on what you still have to do to finish the transition.
Ask yourself, what it is that made your superiors put more responsibility in your hands. Find the capability that made you diffirent from your coworkers. Hold on to that, this is your differentiator. It's too easy to forget what is your differentiator when you advance quickly.
Recognize that you are now a manager and you are responsible for deciding what you are doing yourself and what you are delegating. If you are below VP level you will have to delegate almost everything even if you think you have to do it yourself. Try doing only one important thing each day. This important thing may be preparing speach, presentation, focusing on helping a project behind schedule, etc. Delegate everything else recognizing your limited time.
Recognize that, being a manager, your biggest responsibility is as enabler for your people. Empower your people, make them feel important, make them feel you trust them, and delegate things that are important and you may have hesitated delegating up to now. Hiring plans, work estimates, gap analyses, etc, do you think you have to do it all by yourself?
Find some management advice. As a fresh manager myself in very similar situation to yours (large part of organization and very important projects bestowed in very short time from my coming into organization) I like to listen to management audiobooks like Harvard Business Review and the likes. There is a lot of very good advice but the most important part is that you are actually aware what can go wrong in your current role so that you can recognize the problem and act on it before it becomes full blown disaster.
Most important, if you think something stresses you, stop and think. Don't let the stress overcome you, but spend on trying to understand what part of the task is stressing, why is it stressing and what could be done to remove stress. Don't let the downward spiral take you.
I'm still personally tasked with building out the architecture, writing code, training newhires, handling the HR-side of management (PTO, sick leave, etc), hiring plans, work estimates, gap analyses, bizdev relationships and so on. I've asked for training, but so far haven't actually received any. I don't have a college degree, learned everything I know about software engineering myself, and have no experience or training with the business-side of things.
How have those of you in similar situations dealt with the stress of it all? I find myself overwhelmed with responsibilities, and some of the political pressures from above are starting to take their toll.