- Create motivation by aligning incentives
- Create clarity by understanding the “why” and having a vision for the product
- Focus on high leverage activities
- Do not try to be efficient with relationships
- Hire smart people, who gets stuff done, and you want to be around
- Be useful
- Get the requirements right early and come up with a game-plan
- Establish rapport before getting to work
- There is no one-size-fits-all approach to people. Personality tests are good defaults
- Get people to lead with their strengths, and address their growth areas as a secondary priority
- Focus on the positives, and don’t over index on the negatives
- People will act like owners if you give them control and transparency
- Have high standards for yourself and the people around you
- Hold people accountable
- Bring other people up with you
- Maintain your mental health with mindfulness, rest and distance
- Aim to operate 2-3 months into the future
- Give feedback to people that you want long term relationships with
This is the second part of the “Mental Models for Product Developers series” and it took me three years to write this post. I hope you weren’t holding your breath! The key insight here is that “management” might be the wrong name for this discipline all together. What you are really doing is growing people. You will rarely have to manage others if you align your interests with the people that report to you.
Compared to engineering, management is more fuzzy and subjective. This might be why engineers struggle with it. It’s really about calibration; you are calibrating approaches for yourself and your reports. What works for you, might not work for me because the world has different expectations from us. Likewise, just reading books on this stuff doesn’t help because advice from the book is calibrated for the author. With that said, I believe the following mental models are falsifiable. I also believe that doing the opposite of these will always be harmful. I find these particularly valuable while planning my week. Enjoy!
Create motivation by aligning incentives
Incentives drive our behavior above all else. Even the best organized, highest leverage projects will run into hiccupts if the incentives are not aligned. You can solve this by working with your reports to identify the intersection of:
- What do they want to work on?
- What does the product / team need?
- What does that company need?
Magic happens when these questions produce themes that overlap with each other; the person will have intrinsic motivation for tasks that build their skills, improve their product, and their company. Working on the two intersecting themes to these questions can be fruitful too. Occasionally you’ll find someone focusing on a task that’s only being done because that’s what the person wants (neglecting the product and the company), only what the product needs (neglecting the person’s needs or the company), or only what the company wants (neglecting the person’s needs or their product). This is fine in the short term, but not a good long term strategy.
What makes this interesting is that the answers to these questions are often at odds with each other. For example, you could have cases where the person wants to do more datastore optimizations, but the most important thing for the product is new features. Another example of this is when the company would want the person to help teach their peers, but the product would need the person to focus on existing issues. You should allow for short term exceptions, but nudge your reports towards overlapping themes.
Create clarity by understanding the “why” and having a vision for the product
You should have a vision for where your product needs to go. Doing this ends up being super helpful when deciding between competing tactical options, and also helps clear up general confusion. You should also communicate the vision with your team. While being a visionary isn’t included in your job description, aligning on a “why” often counteracts the negative effects of broken-telephone effect in communication and entropy in organizations.
Focus on high leverage activities
This is the central idea in High output management. The core idea is similar to the “Pareto principle” where you focus your energy on the 20% of the tasks that have 80% of the impact. If you don’t do this, your team will spend a lot of time, but not accomplish much. So, take some time to plan your approach and focus on the activities that give you the most leverage. I found Donella Medow’s research to be a super user for understanding leverage. A few examples of this include:
Promote growth mindset in your team
If you had to start with 0, what you’d want is the ability to acquire new skills. You want to instill a mindset of growth in yourself and the rest of the team. Create an environment where reflection and failures are talked about. Lessons that you truly learn are the ones that you have learnt by making mistakes. Create an environment where people obsess about the craft and consider failures a learning opportunity.
Align your team on the common vision
This is one of the most important things you could do. It’ll mean that people will go in the same general direction. More importantly, it’ll help you avoid situations where people are going in the wrong direction.
Build self-organizing teams
Creating self-sufficient teams is the only way to scale yourself. You can enable a team to do this by promoting a sense of ownership. You can give your input without taking authority away from others, and offer suggestions without steamrolling leaders.
Communication and structural organization
By default, most systems lean towards disorder and gradual decline. Someone has to take active steps against entropy. Focusing on communication and organization ends up being enormously useful and prevents fragmentation. Look for inefficiencies in how teams are organized, and how information flows through your organization.
Get the architecture right
This is where your engineering chops will come in handy. From a technical perspective, getting the core pieces of the architecture right ends up being critical and defines the flow of information in the system. This applies for both front-end and back-end systems. By the way, this doesn’t mean that you should only focus on high-level objectives. Someone smart once told me to “Focus on the high level picture, and the low level details. Things in the middle take care of themselves”.
Do not try to be efficient with relationships
As an engineer your brain is optimized to seek efficiency. Efficiency is not a good approach when it comes to relationships with people; you can often have the opposite effect as what you intended. I have found that 30 minute meetings are too fast for 1-1s with your reports. What you want to do is to give some time for banter, and a free flow of information. This eases people up and you have better conversations and people often end up sharing more critical information than they otherwise would. Of course, you don’t want to spend a lot of time in meetings so I prefer to have longer infrequent meetings instead of frequent short meetings. This also applies to pushing for changes or influencing others in any way. This is a long game, and you should be prepared for that. Permanent positive behavioral changes take time.
Hire smart people, who gets stuff done, and you want to be around
Pick business partners with high intelligence, energy, and, above all, integrity.
— Naval (@naval) May 31, 2018
Hiring, when done right, is one of the highest-leverage activities that you can work on. You are looking for three key signals when hiring: smart, gets stuff done, and good to be around. When looking for the “smart” signal, be aware of the “halo effect” and be weary of charmers. “Get stuff done” is critical because you don’t want to be around smart people who are not adding value to your company. Just like investing, your aim should be to identify people on a great trajectory. “Good to be around” is tricky because it’s filled with personal bias. A good rule is to never hire assholes. Even if they are smart and get stuff done, they will do that at the expense of others, and wreak havoc on the team’s culture. Avoid. Focus on hiring people that you would want long term relationships with.
Be useful
You could behave in a number of different ways at any given time or interaction. What you want is to be useful and add value: there is a useful way of giving feedback to someone that reports to you, there is a useful way to review code, and you can apply this to yourself and plan your day to be more useful to others. Our default instinct is to seek confirmation bias and think about how we are right. We don’t give others the same courtesy. The right approach is to reverse that default instinct: Think ‘how can I make this work’ for other people, and ‘how can this be wrong’ for your own ideas.
Do not compete with your reports either. As a manager, this is particularly important because you want to grow your reports. Be aware of situations or cases where you might be competing, and default to being useful instead of pushing your own agenda. I recommend reading “How Will You Measure Your Life?” if you want to dig into this.
Get the requirements right early and come up with a game-plan
Planning gets a bad rep but it ends up being critical in the long term. Doing some planning almost always ends up being much better than no planning at all. What you want to do is plan until you have a general direction defined, and start iterating towards that. The following questions end up being really useful:
- What are the things that we would want in the near future? You want to pick the path that gives you the most options for the expected future
- How could this be wrong? Counteract your confirmation bias with this question by explicitly thinking about failure modes.
- Where do you not want to go? Inversion ends up being really useful. It is easier to avoid stupidity than seeking brilliance
- What happens once you get there? Seek second order effects. What will one path unlock or limit?
- What other paths could you take? Has your team settled on a local maxima and not the global maxima?
Once you have a decent idea of how to proceed with this, you should be responsible for communicating this plan with the rest of the team too. Not getting the requirements right early on means that your team could potentially end up going in the wrong direction which ends up being a net negative.
Establish rapport before getting to work
You will be much more effective at work if you connect with the other people before getting to work; this could mean banter, or just listening — there is a reason why people small-talk. Get in the circle before attempting to change the circle. This will lead to numerous positive improvements in your workflow. Slack conversations will sound like conversations instead of arguments and you’ll assume positive intent. You will also find that getting alignment in meetings, and nudging reports towards positive changes ends up being much more useful this way. Icebreakers in meetings and room for silliness helps here.
There is no one-size-fits-all approach to people. Personality tests are good defaults
Management is about calibration. You are calibrating your general approach to others, while calibrating a specific approach to each person. This is really important because an approach that might work for one person will not work on others. You might find that personality tests like the Enneagram serve as great defaults to approaching a person. Type-5, the investigators, work best when you give them freedom and autonomy. Type-6, the loyalists, typically want frequent feedback and support. Infact, they might feel betrayed when they don’t get the support they need. The Last Dance miniseries on Netflix is a master class on this topic.
Get people to lead with their strengths, and address their growth areas as a secondary priority
There are multiple ways to approach a person’s personal growth. I have found that what works best is first identifying their strengths and areas of improvements. Find people’s strengths and obsessions and point them to that. You have to get people to lead with their strengths. This ends up being the right approach because it gives people confidence and momentum. Turns out, that this is also how they add the most value. The positive reinforcement from adding value creates a snowball effect, which gives the person more motivation and momentum.
Once a person has momentum, they’ll be much more open to addressing any areas of improvement. You should work with your reports to come up with a game plan for this. Ideally, one should be a master at their specialty domain (e.g., backend or front-end), be great at any adjacent skills (e.g., communication, team-work, product or design), and smooth out their rough edges (e.g., improving how they handle stress, confidence or blindspots).
Focus on the positives, and don’t over index on the negatives
For whatever reason, we tend to focus on the negatives more than we should. This might be related to “deprival super reaction syndrome” where we hate losing more than we like winning. In management, this means that we might have the proclivity to focus on what people are doing poorly instead of what they are doing well. This means that people may not feel appreciated if you only focus on the negatives. I believe this also means that we focus on improving low-performers more than amplifying high-performers. Amplifying high-performers might have an order of magnitude higher impact based on the pareto principle.
People will act like owners if you give them control and transparency
Be transparent, and don’t do everything yourself. Talk to people and make them feel included. When people feel left out of the loop, they generally grow more anxious as they feel that they are losing control. Your ideal case is that your teammates act like owners. You can do this by being transparent about how decisions are made. You also have to give others control and autonomy. Expect some mistakes as they calibrate their judgement and nudge in the right direction instead of steamrolling them.
There are other times where you’ll have to act like an owner and lead by example. One hint of this case will be when you have a nagging feeling about something that you don’t want to do. Ultimately, the right thing here is to take full ownership, and not ask others to do what you wouldn’t want.
Have high standards for yourself and the people around you
Tech markets and products are generally winner-take-all. This means that second place is not a viable option; wInning, in tech, leads to disproportionately greater rewards. Aim to be the best in the world in your space and iterate towards that. There is no point in doing things in a mediocre way. Aiming high, and having high standards is what pushes everything forward.
To make this happen, you need to partner with people who expect more from you. You should also have high standards for your teammates. One interesting outcome of this is that you get the positive effects of the Pygmalion effect: people will rise to your positive expectations. This probably sounds corny, but I have found the Pygmalion effect to be consistently useful. Seeing people transform into their best self ends up being incredibly gratifying as a manager.
Hold people accountable
When things don’t get delivered, or when you see bad behavior, you have to have high standards and hold people accountable. If you don’t, that’s an implicit message that these bad outcomes are ok. There are many cases where not holding others accountable could have a spiraling effect.
Your approach to this has to be calibrated for your work style and the situation. Ultimately, you should enforce all deal-breaker rules. Set clear expectations early on. When something goes wrong, work with the other person or team to understand why. Was it a technical issue, does the tooling need to be improved or was it an issue with leadership?
Having more context on your reports work and responsibility ends up being really useful for this. I recommend skimming over their pull requests over the last quarter, looking for documents or planning artifacts that they created, and doing occasional peer-reviews.
Bring other people up with you
We like working with great and ambitious people because they raise the bar for everyone else. We are allergic to self-obsessed people who only care about their own growth. Your job as a manager is to bring other people up. Do not take credit for work that you did not do, and give recognition to those that did the work. What’s interesting is that most people only really care about their own growth. So being the person who actually spends time thinking about the growth of others differentiates you. Oddly enough, caring about others ends up being a competitive advantage.
Maintain your mental health with mindfulness, rest and distance
A team’s culture is top down and bottom up. This means people mimic the behavior of others in the position of authority — for better or for worse. You may have noticed your reports mimic your communication nuances. Keeping this in mind, you have to be aware of your own actions. Generally, most people become less aware of their actions as fatigue builds up. Be mindful of your energy levels when entering meetings. Energy and positivity is really awesome, because it’s something that you can give to others, and it doesn’t really cost you anything.
Dealing with stressful situations by adding more emotion generally doesn’t help. One exception to this is when you have to match the other person’s emotions before attemption to defuse situations. Get in the circle before attempting to change the circle.
Aim to operate 2-3 months into the future
As an engineer you typically operate in a scope of days or weeks. As you expand your influence, you also have to start thinking in a greater time horizon. As a manager, your horizon will be longer than a typical engineer, but smaller than someone who focuses on high level strategy.
This means that you need to project your team and reports a few months into the future, and anticipate their challenges. Ideally, you could help resolve these issues before they even happen. This exercise also helps you be more proactive instead of reacting to daily events.
Give feedback to people that you want long term relationships with
Would you give feedback to a random stranger doing something that’s bad for them? Probably not. Now, imagine that you knew this person. You would try to reason with this person, and hopefully nudge them in the right direction. You give feedback to people that you care about, and want a long term relationship with. I believe this is also true at work. Even if someone is not your report, it is worth sharing your feedback if you can deliver it usefully.
Giving feedback is tricky since people often get defensive. There are different schools of thoughts on this, but I try to build a rapport with someone before giving them direct feedback. Once you can convince someone that you are on their side, people are much more receptive to it. Get in the circle. While code-review feedback is best when it’s all at once, that isn’t necessarily true for 1-1 feedback.
Many people default to “direct-feedback” and I think that doesn’t work for people you don’t have good rapport with. Ray Dalio (an amazing investor) suggests “Radical Truth” and gives direct feedback at all times. I don’t think this works with most people. That works for him because he is in a position of authority. His investment firm, Bridgewater, also has an incredible turn-over rate and 25% of new-hires leave within 18 months. Build rapport before getting to work.
I hope you found these useful. If you have any questions or thoughts, feel free to reach out to me on Twitter here. Apparently, I write one blog post every three years, so see you in 2023!
Management is really about growing people. It's fuzzy, and has to be calibrated per person. 6 years into @Shopify, here are my mental models for management. Let me know what you think!https://t.co/nZ5OlLwEil https://t.co/CQtBXtflGC
— Hammad Khalid (@Hammadk) July 27, 2020
Previous: Mental Models for Product Developers, Part 1: Engineering