Progressing from Tech to Leadership
lcamtuf.blogspot.com
lcamtuf.blogspot.com
In my experience, the transition from an individual contributor to an entry level manager is awkward, but not exceedingly hard. If you're a good engineer and work reasonably hard, you can (albeit shouldn't) stay involved in detail in everything happening in the team. To be clear: that's not recommended, it's a trap. On the upside, performance evaluations are still relatively easy. (Maybe awkward to communicate, but at least you will KNOW intuitively how well people are doing and you'll get a trust bonus.)
It's when you take the next step that things get much more challenging. You get to coach people and manage indirectly. You can't keep everything in your head that's going on and you have to learn right now to let go enough.
The step after that becomes easier again. Strategy gets added to the mix and that's not everyone's cup of tea. There's more representation challenges and more politics. But you get to work with more senior people yourself, so people management gets a lot easier at that stage.
In short, every step along the way has unique challenges which keeps things interesting. People don't get boring!
People tend to ask how they get a shot at managing others regularly here. Somebody else already said that it's highly context dependent. So you may have to change jobs to get a shot. At the very least though, gently make your interest known before you pull the trigger on that. You might be surprised.
I think more interesting than the question "how can I?" is "should I?".
If your primary motivation is career advancement, then you might find that you're not cut out for the job. (You might also discover that it was your calling all along, of course.) IMNSHO, the best managers tend to be at least a tiny bit reluctant because they recognize the burden of responsibility for others. They realize it's not about them, but everyone else. Without their team, they are nothing, but without them, their team might still be okay. Their impact is that of a force multiplier, and they'll rarely get to go home thinking "that was a mighty brutal bug I singlehandedly fixed today" or something similarly directly gratifying. They accept that sometimes doing the right thing by someone does not involve bring their best friend and do the job anyway. They are constantly in a tension between representing their employees' interests to the company as well as the company's matters to their employees. They accept that there's no more black and white in their professional life ever, and that it's compromises all the way down. (Except for some matters of ethics, eg. sexism, where there must not be compromises.)
But above all, they have to care. About what the company does, about how it does it, and about the people that make up the company. They will find a way to be themselves within that envelope. People will know that they care and repay in trust and commitment.
I've had a lot more success with growing managers by looking for people with the right attitude and convincing people to try than with people why stick out mostly due to eagerness.
Edit: spelling.
But when you find great people and the project is done as good or better than you could have done it it feels amazing as you're accomplishing more than you ever could have by yourself.
As a result, I have never had to totally redo any technical choice that my team has made. We have had to fix a few things together, and that has only brought us closer.
Now I try to block bad code from landing in the first place by requiring code reviews prior to merging into master. Sometimes a patch is thrown away entirely and usually it takes two or three tries before a patch is ready for merging, but the overall code base quality is higher.
- We don't have clarity on what our conventions look like.
- People take too long to review others' code and it blocks the team.
- People get interrupted by code reviews too frequently and it keeps them from focusing deeply.
- We are missing some piece of build/test infrastructure and it isn't clear to any one person that she should take 3 days to do that longer-term investment work.
- We don't have a clear way to onboard newer team members into our frontend toolchain and so it takes them a long time to get productive.
- There is a process people are following which is just getting in the way and can be slimmed down or eliminated.
The fact that it's just sort of taken as granted is a frustrating thing for those of us who have wanted, but never been offered, such a position.
It also means when you offer solutions and it’s accepted you will become the go to guy / girl for everyone, that’s how people around you will see you as a leader. You took that risk to stick your neck out for them.
You will also then have to learn to work with people learn how to motivate people because now they are coming to you. You can’t just shun them away you have to offer a solution to their problem. If you don’t have an answer empower your people to find a solution.
Leadership is an art form in itself, it can be learned, like any other skill. It takes a shift in mindset from being a worker to a leader.
Another key thing to remember you don’t have to have the “label” before you become a leader. If you act like one the label will come on its own.
I suggest you read / watch “Great Leaders Eat Last” by Simon Sinek. Was an eye opener for me.
What do you do if they then steal your idea?
On that topic, I'm a huge believer in a degree of financial independence, a rainy-day fund [1]. When you don't have to worry about having money for next month's rent, it really changes your outlook on things and makes it easier to make decisions that are just or right for you, without stressing over every possible misstep. And it's pretty easy to build such a fund [2].
[1] https://www.thebillfold.com/2016/01/a-story-of-a-fuck-off-fu...
You pat yourself on the back for a job well done! Your idea got implemented, congratulations.
This is convenient for others, but not for you. They will take advantage of you if you think like that and you not be seen as leadership material.
Either challenge it, leave or find a way to prevent that next time. If you truly have no choice but to put up, then you have no choice. But don't be naive doormat.
If your goal is to see how much good stuff you can coerce into existence for the company then it doesn’t matter who does the work, who takes credit, or even whether anyone realizes anything happened. All that matters for you to hit that goal is the stuff getting done.
Also, leader needs to be able to protect team or company from under-the-belt attempts of customers, suppliers, competitors and such. Some of them will try that for sure and it is leaders job to deal with it.
Or that leaders are not responsible for shaping culture?
Or that leaders are not responsible for protecting/ensuring that company looks capable, creative etc to outside?
Execution is the hard part. Demonstrating a knack for it is a good path to leadership.
I don't there's a single answer. The "right" path is usually some combination of soft and hard skills, persistence, and dumb luck. Skill and persistence come into play because to a large extent, you are the master of your destiny, corporate or otherwise: you can settle for what's expected of you in a role, or you can go above and beyond, trying to find and fix pressing problems that others didn't even know they have, trying to help others grow, persuading other groups to give you the tools you need, and balancing it all with the reality of the business... Rinse and repeat enough times and you will probably be noticed for good judgment and the ability to get stuff done.
Now, dumb luck comes into play because to some extent, it's also a matter of being at the right stage of your career at the right time and in the right place. In some companies, especially smaller ones, there might be no way to become a manager or a director until somebody retires or is forced out. And if you miss that window, it might be several years until another opportunity to advance presents itself.
As with any other role, there are also many "wrong" paths, depending on the culture of the company; favoritism, cronyism, political horse-trading, bamboozling people, and so forth. But realistically, such things are less common than most people think. It's just easier to be cynical about others than to acknowledge our own personality flaws. We all have some, they weigh us all down; we just need to find a way to work around them and hope for the best.
1. Leadership = Ownership
2. Organizational priorities > engineering purity
3. Tact > undiluted truth
In order to be able to lead more than one person, you need to be able to first lead one person: yourself. Ownership means taking a responsibility assigned to you, understanding why it's important to the organization objectives (rather than blinding executing), driving it to completion and reporting progress without your manager ever having to poll or prod you.
As engineers, our first instinct is to engineer things the best possible way with the best possible technologies. As managers, we'll need to understand that in a non-ideal world, there are tradeoffs. Sometimes you need to be able to prioritize organizational goals ahead of your engineering preferences. E.g. sometimes you'll need to maintain a legacy codebase a little longer even though you know you want to rewrite using the latest tech; sometimes you'll have to prioritize new features over tech debt etc.
As right-brained/logical individuals, we tend to hold objective reality over all else and tend to communicate it in concentrated form. We may want to be efficient in communications, but sometimes in doing so, we end up making the team inefficient by unnecessarily generating negative emotions within the team members. Communication is a local maximum. The global maximum is the team. In other words, sometimes you must suffer fools gladly, you'll need to learn to tell people no without hurting their egos.
If you exhibit these qualities as an engineer, any good manager will mark you as a lead candidate.
This can be as simple as taking one story end-to-end to production from requirement analysis to deployment and experiment analysis while interacting with different roles (product, engineering, devops) and even explicitly asking your manager(s) for such possibilities. Being the person that knows the progress and owning success is key here, plus you will score some points for being someone that work can be delegated to.
Organising learning groups, guilds is also of help to get visibility within an organisation while still being fairly close to tech as you form a group of people around a topic you're passionate about.
Another important aspect is cross-team collaboration. For example, bringing key people together to solve a problem for the organisation (i.e. spending too much time on deployments, production incidents, repeating the same problems). Calling such situations out and suggesting ways to solve it or collaborating on a solution is another great way to try out leadership skills.
This is correct, but it's important that you never dilute the truth so much that you end up not delivering the whole truth. Obviously, you should avoid ever being in such a situation, but if circumstances are such that you have to choose between delivering the whole truth or tact, choose the truth and clean up afterwards. Hurt pride can be mended, broken trust and untruths left to fester generally can't.
If you're brand new, offer to mentor a co-op.
If you've been there for a while, take an active role in helping the newer people get up to speed.
If you're enjoying doing that, tell your boss you'd like to have more opportunities to learn leadership skills.
Are you being approached because you are the only only around who actually remember working on the Foo Widget and the team wants to make sure they're not breaking something subtle, or are they implicitly coming to you for permission to trespass on your territory?
Former situation, you do the code review as a techie (and remember to commend the team for finally getting around to tackling the badness in the Foo Widget), for the latter situation you trust their judgement.
Even as a TL, the realization that my mistakes can negatively impact my peers is daunting. I have a lot more respect for the pressure that further leadership brings.