Hi 🎊.
あけましておめでとうございます。
Happy new year.
End of last year I gave a talk at DroidCon APAC 2020 titled “Reverse Engineer Your Manager” . The title is a bit tongue in cheek (how else will conference organizers notice your talk?), a more honest title would be: How to work successfully in a large (tech) organization. In the talk I give 5 directives for career success.
Everything is based on my experience at Rakuten, moving through engineering ranks from application developer to principal application architect. An attendee gave me this testimonial:
Lots of good advice.
Rather well-distilled content from hundred of hours of podcasts, blogs and books.
So I thought I’ll write it up for y’all!
Below is the first half, directives 1-3 (it’s not a listicle, I promise 😉), the second half will follow in the coming weeks. If you can’t wait or prefer to listen rather than read checkout the recording & slides. Or sign up for the second half 👇.
This if for you!
… if you are an individual contributor or a manager of ICs in a medium-large sized tech organization.
Individual contributor includes developers, QA, designers, product / project managers, data scientist, … and all the people that actually build stuff.
M-L sized organization means your company has middle management structures (i.e. devs don’t directly report to the CTO, product managers don’t directly report to the CEO) and a dedicate HR department that lays down the law.
If that’s you - read on! If not your milage may vary 😉.
Let’s ignore “hard” skills for a minute
Individual contributors are makers. So, as an IC, you need an undeniable hard skill, otherwise you can’t make stuff. Like coding, designing, writing, etc.
Improving that “hard” skill is good for your career. But in a sense it’s table stakes. We expect you to get good at your thing. So instead I’ll focus on all the stuff outside your IC skill that influences your success greatly.
Compare it to competitive (e-)sports. Players get good at the game, but they need to understand and navigate the metagame, i.e. how other teams play, league mechanisms (rookie pick preferences), rule changes etc., to win the league.
At this stage in your career the metagame boils down to making your manager successful. You make them successful, they make you successful. Everyone get’s a big bonus, yeay 🎉.
So how do you make that easy for your manager?
Understand Yourself
First of all: What kind of work do you enjoy?
Work comes in all shapes and forms, irrespective of your specialization. Take inventory of what you are good at and/or what you enjoy doing:
Is it collaborative discussions?
Or is it facilitation?
Or Is it directing others?
Or is it visualizing progress?
Or is it coming up with visionary ideas?
Or is it executing on ideas, not necessarily your own?
There’s no right or wrong here. Just figure out what kind of work suits you best.
Next let’s talk about work style.
I love remote work. I love asynchronous communication. Sitting at home, listening to jazz, thinking deeply about a problem or an argument in a discussion, writing a well structured idea in a wiki or an email - that’s my jam.
A coworker of mine is the opposite. He misses the office dearly - the bustle, the serendipity, the energy. He also loves open ended conversations on slack and ad hoc Zoom calls.
Neither one is universally right, that’s just our preference work style. There’s other aspects to work style like:
Strict hours vs. flexible hours
Variety of work vs. the same work
Predictable work vs. fire fighting
Learning new stuff vs. applying “old” knowledge
Depth vs. Breadth
And probably more. So what’s your preferred work style?
Lastly, your motivators.
What gets you really going?
Money?
Free time?
Impact on organization / community / society / humanity / next generation… ?
Challenges?
Status?
This is a tougher question for 2 reasons:
1) There’s a sense of moral judgement over some of these (depending on your cultural context). For example, among young “valley-type” devs conquering hard challenges and disrupting the economy is idolized. In that context admitting that challenges leave you… indifferent - that may be daunting. Or admitting that you really love money may be an uncomfortable truth to admit to yourself (again: depending on cultural context).
2) It’s not straightforward to discern which are the important motivators. They all sound kinda right, don’t they? But saying “all of the 11 motivators motivate me” is like say “all food is my favorite food” - it’s not saying much.
Luckily Attuned.ai will help you determine your top motivators with a snappy 10 minute survey. No moral judgement, no hassle. The result looks something like this 👇
Ok, now you’ve determined what kind of work you like, the work style that you thrive in and what motivates. You can use this knowledge just for yourself, for example with Apoorva Govind’s “Am I Growing Complacent Currently” framework or with Shaan Puri’s new years resolution framework.
The next step is to educate your manager! That’s the first directive
Once your manager knows how you work best and what kind of work suits you then they can make better use of you - put you on the right project, protect you from things that undermine your productivity (e.g. allow you to remote).
The same goes for motivators: If you manager knows that money matters they’ll fight harder to make it happen. Conversely if autonomy fuels you they’ll find a role, team or project that gives you more autonomy.
The result: they get better player on the team, you get to have more fun playing, y’all be happy.
Understand Your Manager
Did anybody ever tell you what your manager does? “Manager” is such a generic term, every organization interprets it a little different, and then individuals within an org deviate ever so slightly.
On a high level managers do a couple of things: oversee progress, staffing, talent development and performance evaluation. Notice that managers don’t build stuff, by definition they are not individual contributors (anymore). Moreover, your manager is not a technical expert (anymore). So don’t expect them to be your teacher or task master. You are the expert (developer, designer, tester, etc.).
While they don’t have the detail depth, they typically have more breadth and experience. Managers use that to search for solutions, point out problems, ask difficult questions and hold you accountable. They have a mission & goals, after all - successful product / project and successful people.
Here is where you can make it easy for you manager. Help your manager achieve their goals, so they help you become successful in your career.
Build trust by communicating the technical problems you see - you’re the expert. And don’t just stop at the technical detail, “we have a code quality problem” is too abstract. Why does that matter for the product or business? If it has no impact on that, it’s not really a problem… Go one step further, present solutions and the associated trade-offs. Enable you manager to make informed decisions, to leverage your deep technical expertise - that’s how you make it easy for your manager. That’s how you build trust. And that’s the second directive.
That’s understanding your manager’s role and your resulting relationship in the abstract. Beyond that, your manager is also just one of your coworkers, who has a preferred work style (just like you do). Understanding the preferred work style, in particular the communication style of your manager, is crucial.
Are they a listener, who likes to be told in synchronous conversation and interject with questions, or a reader, who likes to asynchronously understand the situation and reflect on in before they react?
What communication does your manager expect? In terms of content, level of detail, frequency, medium and what are the rules of escalating problems?
If you can’t answer these questions with confidence go ask your manager. In your next 1 on 1 or in an email (depending on whether they are a listener or reader 😉).
Figuring out communication is fairly easy, but other skills that your manager has or lacks are harder to assess. Especially if you haven’t worked together yet. Those skills can include:
Ability to navigate & sway political conflicts
Product development expertise (relics from their days as individual contributor)
Using process to facilitate team productivity (vs. inhibiting productivity).
People development skills, e.g. performance goal setting within the rules of the HR regime, in a way that allows you to make career progress swiftly
Trust / trust issues
Just like the skill diagram of an athlete!
If you figure out a weakness… maybe you can make up for it. Say your manager is mediocre at goal setting, that will hinder your career progression. You can take time to take a deep dive into the HR rules and take over the heavy lifting. That frees up your manager to do what they do best and you have better goals (→ better evaluation → better career).
Conversely you can and should use your manager’s strengths to your advantage whenever you can. Some examples: If they were an excellent UX designer in the past get them to help you build a slick app. If they maneuver politics like the lovechild of Tyrion Lannister and Otto von Bismarck ask them to coerce that other team to cooperate with your team.
Again: You make your manager successful. Your manager makes you successful.
The last piece of understanding your manager is understanding their mission and goals. They have some OKRs to deliver by the end of the quarter and have an underlying strategy for the next years or so. That’s what in their performance review. Ask them, they’ll be happy to tell you. Sometimes those OKRs and organizational strategies shape how we build software or vice versa (e.g. Conway’s law). As individual contributors we make many decisions every day, about user flows, about database tables schemas, about integration architecture, about cloud providers… Use your understand of your manager’s & the organization’s strategy to make the right decisions. That’s what they call alignment.
We put it all together into the third directive.
So far, so good
This is where we end today. Everything in a nutshell, follow these 3 directives to advance your career in a large tech organization:
#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).
There’s 2 more directives in the talk and we had a few interesting questions during the Q&A. All that goodness is coming soon. Subscribe to get it hand delivered, right into your mailbox 📧.
If you can’t wait because YOU NEED THAT CAREER ADVICE NOW 😬 (said nobody, ever) then checkout the recording, slides & (autogenerated) transcript.
Hyperlinks
Code Budgets
In software projects we set arbitrary constraints on time, people and money:
We have to ship by March, with this team, within that budget!
Why March? … because that’s the deadline …
Who set the deadline? … the CEO did …
Why? … nobody knows …
(At least arbitrary deadlines are in line with the made up estimations)
Yet, arbitrary is not bad per se. Without deadlines we would probably never deliver. One aspect we don’t budget is lines of code (at least I have never worked in a team that explicitly did that). Why not? 🤔
Daniel Markham makes a compelling argument for explicit constraints of lines of code. It’s a compelling thought experiment, I’d really like to turn it into a real experiment…
What I've seen over-and-over again is that really cool things happen with smart people and creative constraints. Really stupid stuff happens otherwise, because without constraints it's all bike shedding.
Fraud is No Fun Without Friends
In 2020 everyone had to learn to work remotely, that wasn’t easy for tech companies (impressions of that shift @Rakuten from April). Meanwhile in finance land, Matt Levine describes a surprising effect remote work has on financial crime. New traders, on remote teams, blow the whistle on of senior traders’ all too common fraud 😁
All these people feeling disconnected from their work and their colleagues, with no strong personal ties of loyalty and friendship and common mission. Sure the common mission in these particular cases was crime, but still.
One way to read this story is that one sort of business that is conducted at offices is fraud, and people in the fraud business have become 31% less loyal and motivated and conscientious since the pandemic started.
The Bit Short: Inside Crypto’s Doomsday Machine
An exciting story about how USD Tether is all a fraud and how it will collapse BTC markets eventually. I have no idea how right or wrong this person is - but it’s a fun read either way 😁
Forget the activity on the offshore exchanges for a moment, and just think of a simple mental picture. Imagine you could stand at a metaphorical booth, where Coinbase’s exchange connects with the US financial system. If you could do that, you’d see two lines of people at the booth. One line would be crypto investors, putting dollars in — and the other line would be crooks, taking dollars out.
That’s it. If you enjoyed this ☝️ subscribe or share it with a friend.