Hi,
Here is the second half of my talk “Reverse Engineer Your Manager”. In the talk I give 5 directives for career success as developer in large organizations. In issue #12 I cover 1-3, namely:
#1 Educate Your Manager About Yourself: Find the right work style, kind of work and motivators for you & educate your manager about that.
#2 Explain Problems & Offer Solutions: You are the expert, your manager needs you. Help them understand problems & solutions, enable them to make informed decisions.
#3 Support & Enable Your Manager: Get aligned with the mission & strategy, make up for your managers weaknesses, make use of their strengths. Adjust to them (if you can).
Today we’ll cover the remaining 2 directives and the Q&A after the presentation. If you prefer to listen rather than read checkout the recording & slides.
Understand your Business
Business is pretty simple, really. It’s all about making money. Growing revenue / profit, building moats… all that good jazz. So if you help increase revenue / profit and build good moats you should be golden, right?
Well, it’s more subtle than that. Nikhyl Singhal describes 4 stages of companies:
Depending on your company's stage you have do behave differently. In wartime you need to act quickly and take short cuts to scale suddenly. In peacetime you build in quality from the start, rely process and build for scale. In large organizations some parts of the company may be at war while others are at peace.
The operating mode of your company (war or peace) tells you what matters and what doesn’t. For example, if you drive processes & tools to improve quality and reduce risk you’ll be successful in a peacetime organization. But in a wartime organization you’ll be seen as an impediment to shipping or scaling. Conversely, ssh-ing into production servers to edit hot code will be seen as reckless and hacky in a peacetime organization. But in wartime this might be the feat that just saved the company.
In both scenarios we have behavior that’s perfectly appropriate for one mode of operation while it is unacceptable in the other. Figure out what’s right for your organization and stick to that. At the end of the day you’ll be successful if you help build a successful business.
Understand the Evaluation System
…and then there’s HR. HR are the guardians of culture, in the sense that it is HR’s mission to instill company culture into the company’s people. And HR makes the rules for evaluation / performance review.
In Rakuten we have encoded our culture in Rakuten Shugi. It’s on posters, the back of our ID badges, in booklets around the office… all around everywhere, really. When I first joined Rakuten I didn’t like that very much. It seemed like propaganda.
THOSE DAMN POSTERS AND PLAQUES
These motivational accessories [..] are a triumph of form over substance.
But I realized that the evaluation system is shaped by that same culture. Every goal we set maps to one of the principles in Rakuten Shugi. So I had to pick aspects of Rakuten Shugi that resonate with me and ignoring the others. To win in the evaluation game you don’t have to drink the kool-aid. At least not all of it.
Another important realization was that impact & scope directly correspond to evaluation / salary levels. Let’s say impact on yourself is level 1, e.g. “normal” individual contribution. Then impact on a handful of people is level 2, e.g. team lead or tech lead. Following that path, impact on a whole department is level 3 and impact on multiple departments level 4. Finally, impact on the whole organization level 5.
level 1 - individual
level 2 - team / group
level 3 - section / department
level 4 - multiple departments
level 5 - whole company
Levels of impact don’t necessarily correspond to experience, tenure or role. It is a lot easier for a general manager to have impact on level 3 or 4 than, say, for an application developer. But an application developer can take a shortcut towards greater levels of impact in order to achieve higher levels of compensation quickly.
Here’s one shortcuts I took: I enabled developers to open source internal code and/or to contribute to open source projects. The impact went way beyond my project scope at the time (level 1-2). This empowers all members of Rakuten’s Tech division, that is thousands of people. It was a shortcut to level 4 impact.
The shortcuts available to you depend on your organization and personal skillset, I can’t give you a recipe. But shortcuts to high impact share one characteristic: they are high leverage activities.
Writing code to fix a bug is low leverage - you have to invest roughly 100x effort to fix 100 more bugs. Setting up static analysis that detects classes of bugs before they reach production - that is a 1 time effort to avoid 100 bugs. That’s 1-100 leverage.
Another example: you build an internal software library. Every developer that uses the library needs to learn how to use it. So they talk to you. That’s low leverage. Writing good documentation is ~5x effort of explaining it once. But that documentation serves all developers using your library. That’s high leverage.
Going further: Teaching 10 developers to write good documentation solves the same problem for 10 libraries. That’s even higher leverage.
Typically you don’t have a lot of time outside of your assigned project to work on your career shortcuts. High leverage activities allow you to have great impact with relatively little effort. They make great shortcuts.
Combine understanding of the business, understanding the HR regime and using high leverage activities to beat the evaluation system.
Become a Leader
The easiest way to get promoted into a new role is to do that job already, that is to say: the promotion catches up with reality. So, the fastest way to become tech lead is by acting like a tech lead now. You become a recognized leader by stepping up and taking on responsibilities. Before anybody assigns you that role. Once you are a de-facto leader your promotion will follow.
Main role of leaders is that of a catalyst, not a director.
Leaders make it possible for the magic to happen.
— Peopleware: Productive Projects and Teams
Let’s look at 2 books: Soft Skills & Peopleware. Both books lay out a 5 ingredient recipe for becoming a leader, without externally assigned authority.
Step #1: Step up to the Task | Take on Responsibility
Find a valuable task that is not getting the attention it deserves. For example neglected jobs like documentation, development tools, communication or the onboarding processes. Pay attention to the team, what are the issues that your team members complain about repeatedly? (But stay away from bike-shedding). Or ask other leaders what they think are problems that need more attention.
Step #2: Be evidently fit for the Task | Become Visible
Most likely you’ll have to do a little learning: about tools, processes, team/project history etc. Once you feel confident in your newfound domain: show it! Speak up in discussions & meetings. Report your work and progress to your manager and your team, for example in weekly report emails. Generate awareness for the problem and buy-in for the solution by presenting why the issue is important & valuable for the team.
For example, imagine you are in a team without continuous integration practices & tools. You decide to improve the team’s practices and introduce some tools to run automated builds & tests for every code change. You’ll have to explain why this is a problem, maybe like this:
“We had to rollback & hotfix the last 3 releases because we found bugs after release. The bugs were caused by faulty integration of different features that were developed by different developers. Right now we can’t detect such integration problems because we don’t integrate our work frequently. I’ve researched how other teams deal with this problem, based on that I suggest we do [your suggestion].”
Step #3: Prepare for the task ahead of time | Educate Yourself
How you prepare is up to you. The only factor that everybody needs in order to prepare is time. Take the time necessary to educate yourself about your new thing. The team will look to you for guidance.
Step #4: Be a Problem Solver | Maximize value to everyone
The most important step: actually solving a problem for other people. Alleviating pain for team members, e.g. less frequent & less painful merge conflicts, goes a long way. So does delivering wins for the business, e.g. more reliable releases, less defects, more agile delivery. If you have to spend 8 hours to save the other 5 developers on the team 10 minutes of pain / week - do it. At first that seems like a net-loss. But the effort will pay off soon enough. And you’ll be recognized as the problem solver, the leader.
Step #5: Do it all with humor and obvious goodwill | Ignore Politics
“Nobody goes to work intending to do a bad job”
— Chris Koeberle, “Building Effective Teams of Compentent, Friendly People”
I get frustrated at work a lot. In the last issue I told story about how “I burst into a flames of pure, black rage and burnt everything to the ground” because of abysmal documentation. But if I pass on that frustration to co-workers I just contribute to a self-reinforcing cycle. Frustration begets regret, regret begets frustration. A generous amount of humor and obvious goodwill breaks that cycle. Most of the time that infuriating thing, like that piece of abysmal documentation, was not created out of ill will. Somebody tried the best they could, with the knowledge and resources they had.
…and about politics: politics are boring and stupid. Don’t waste your time on politics.
I followed these 5 steps (without knowing about them) and I have seen others follow the same path. Those are the technical leaders in my organization now. Nobody got assigned to become the next tech lead, or manager, or architect. Everybody stepped up. As a matter of fact, I’ve seen situations where we had a promising candidate join the team, we expected them to grow into a tech lead role - but they never did. It’s all a matter of initiative.
Own your Learning
Don't expect your manager to push learning new things onto you. They might. But most likely they won't. You are in charge of…
📉 Going to conferences
💪 Attending trainings
🖥 Getting software licenses
📚 Getting books
📖 Taking time to study
If you don’t do it, it won’t happen.
Write that Career Plan
Set the high level goals with you manager and figure out what you need to deliver to reach that goal - you can do that in a 1-on-1. For example:
Dev: “I want to become tech lead of the Android team within a year”
Manager: “Ok, in order to get you there you need to demonstrate:
technical depth in Android development
technical leadership
substantial individual contribution to our project”
Dev: “Got it!”
The next step is to fill in the details how you plan to demonstrate those competencies. It could be:
App Crash-free rate is at 98% → target 99%
App Launch time is at 2 seconds → target 1.5 seconds
Nobody on the team understands our navigation logic → understand, document, (redesign) our navigation logic
Our quality practices are lacking → lead testing & static analysis efforts
We don't have CI → setup infra, help team adjust to the process
Our CI takes 30 mins → profile & optimize CI, target 3 mins
We're starting a new initiative → become driving force
Attend a conference / present at a conference
Breaking it down into these smaller, measurable goals makes it easy for your manager to help you. Help you with the support you need: with social capital to convince the team, with money to buy infrastructure & tools, with money to go to conferences, with opportunities to lead initiatives. Help you get that promotion and that 💰.
Summary
Today’s 2 directives are:
#4 Beat the Evaluation System: Understand what your company rewards and how evaluation system works. Armed with that knowledge uncover shortcuts to career progress.
#5 Ask for Help: Own your learning, own your career plan and become a leader. To be successful you’ll need help - ask your manager for help and be specific about it.
That’s the 5 directives of my “Reverse Engineer Your Manager” talk, here’s the recording of me giving the talk.
Q & A
After the talk I got questions from the audience. A lot about working with… not good managers. I ended up recommending to look for a new team repeatedly. That’s what I’ve done and what friends of mine have done. In all cases that was a change for the better. There’s no shame in walking away from a bad situation. Here are the the questions and my (unprepared) answers:
Question: What if we follow all the advice, like taking responsibility, being visible, being a leader etc. and still the manager gives us less hike and more hike to someone else?
Maybe your manager is a bad manager.
Regardless, I would try to understand their reasoning. Why did they take this decision? If you can’t find a satisfactory answer by yourself go ask them. If your manager can’t give you good answers - maybe you need to find a new manager.
Or you could go up the hierarchy. Depending on your relationships in your organization and the overall climate “in the office” you could talk to your manager’s manager. This can be… a bit dicy. If you suspect that your manager will feel betrayed by that you should not do it. You don't want to turn your manager into an enemy. But if you have a good relationship with your manager and with your manager's manager - go for it. And again: if there are no answers consider finding new managers.
Question: You focus on making it easy for your manager. But shouldn’t we focus on making the whole company better instead of enabling a manager? What a manager wants is not always good for the company.
That's a good point. Ideally manager is aligned with company goals, so that your manager’s success contributes to company success. I had eight managers. Seven out of those eight managers were aligned with company goals, what they wanted was good for the company. When that wasn't the case I left that team.
Again, I would start with trying to understand your manager. Maybe they see something that you don't see. But if there's nothing to be understood, if they are just plain wrong the only advice I can give you is: get out! Your best work will go to waste if it won't be recognized. Don’t waste your energy on a horrible manager. Move to another team, a different department or a different company.
Question: There are gender biases which managers have. They think women can't do it. Any suggestion how to change their thinking?
That's a big problem.
To be honest, I don't know how to change your manager's behavior. I've tried to change my own behavior in hiring interviews, by using techniques to correct from my bias. And that is really hard, the many biases are unconscious. How do you correct biases that you are not aware of? Now try that, but on other people. It’s like multiplying super-hard with impossible.
One way to effect change in your manager, in a big organization, is going through HR. If your company has an equality or diversity group / department / hotline talk to them. Ask them for advice, they know better than me.
Of course, if you were objectively wronged then file an HR complaint.
And, my staple advice: if you have a shitty, sexist manager - go find a better manager.
Question: What if I want to step up and become a leader, like you suggest, but I already have team lead? How should I collaborate with my team lead?
You might think “oh there's already someone in charge of that and I don't want to step on their toes”. That’s a valid concerns. Becoming a leader doesn’t mean steamrolling others, quite the opposite. There a several options: You can be a lead in a different area. Or you can become right hand of the current lead. Or you become a lead in a new team. In large organizations there is always room for more leaders.
For example, you see a problem, say, static analysis is lacking and you really want to set up more static analysis tools for the team. Talk to the team lead about it, say “I noticed this situation, I think it’s a problem, and I think I can fix it”. Chances are they already know about it and it’s in the backlog. Or maybe there's historical reasons. Probably they’ll be happy to delegate that work to you or to do it with you. You will become the the leader of that initiative while the team lead focuses on other things.
And to re-iterate what’s on the slides: it's not about positional authority, where people are assigned roles. It's about the de facto leadership, who gets shit done - that's what matters.
Question: What if I'm in a company where overtime, self-development and taking responsibility for important stuff is expected, normal behavior. How can I stand out?
I'm not sure that you need to stand out. If you do those things and get recognized for it that's already very good. It’s not a zero-sum game, you don't need to be better than somebody else. You just need to have positive impact.
It all depends on company culture, right? I can speak for my background and my opinions, your company likely works differently. The expected overtime is red flag to me. I am very careful about spending time outside of work hours. Even if coworkers do that, you don’t have to follow suit. It’s a slippery slope towards getting exploited via peer pressure, working double the hours for the same pay.
That’s it. If you enjoyed this ☝️ subscribe or share it with a friend.