9 min read
This is a relatively new type of job, and many organizations and people are still in the midst of figuring out what makes a great data science manager.
What does it even mean to be “awesome” in this context? Well, if your team members…
- …are highly motivated
- …are growing quickly
- …have great impact on your organization
then you are probably an awesome data science manager.
Here’s my two cents on how to be awesome:
- Be an awesome data scientist yourself
- Enable and empower your team members
- Don’t just prioritize; show them how to prioritize
- Value their future careers
- Maximize synergies with other teams
- Hire more awesome data talent
1 Be an awesome data scientist yourself
See my last post on this topic. It helps a lot if you can provide ideas and advice on deciding between analytical approaches, improving code quality, choosing which frameworks/tools to use for a machine learning project, etc. You need to stay up to speed on data science skills and knowledge by being hands-on at least part of the time, even if you manage a lot of people.
If you know that you’re an awesome data scientist, be both humble and confident about it. Be humble because there is still so much room to improve and learn. But you should also radiate confidence so that your team members will naturally want to learn from you, and so that other teams will take your team seriously.
2 Enable and empower your team members
At one of the management culture spectrum, you have the “slave driver” managers, figuratively whipping their team members forced to do specific tasks. At the other end, you have managers focused on empowering their team members with the freedom and ability to make big decisions and do big things. (An extreme example of this is Supercell, a past employer of mine.)
This doesn’t mean you simply throw people into the deep end of the pool and walk away. Rather, you should step in to offer help or guidance as needed. The appropriate frequency of such help will probably differ by team member, given their abilities/experience and the task at hand.
Enablement: give them the tools, data, and help that they need and get obstacles out of their way.
- someone need to get internal approval to access a dataset? B̵a̵n̵g̵ ̵t̵h̵e̵ ̵t̵a̵b̵l̵e̵ proactively explain to the approver to get it approved quickly
- someone wants to get a second monitor? a paid license for RStudio? company doesn’t want to pay for it?B̵a̵n̵g̵ ̵t̵h̵e̵ ̵t̵a̵b̵l̵e̵ ̵h̵a̵r̵d̵e̵r̵ ̵a̵n̵d̵ ̵r̵i̵o̵t̵ actively lobby your company for these basic benefits to increase productivity
- someone struggling with building a data pipeline by him/herself? You could provide some tips yourself or connect the struggling person to someone from another team (e.g. data engineering team) who has more expertise in such pipelines.
Empowerment: give and trust them with the authority, independence, freedom, and abilities that they need to kick ass.
- Allow them to take full ownership on some projects or areas of work. Trust them by default; i.e. trust that they will do a good job without micromanagement. For less experienced team members, you can start with smaller projects first to minimize the risk. If you found that you over-trusted someone (and they screwed up), forgive them and help them about a bit more frequently the next time. I believe that in most cases, the risk/damage from under-trusting people is in general much greater than the risk/damage from over-trusting people. Assuming you’re working with good people, they’ll do their best to step up to challenges that you entrust them with, and they’ll feel motivated and grow quickly while doing so.
- Give them freedom. People are the most motivated when they are free to choose what to do; I think this is especially true for data science. Of course, you can’t just let them spend all their time iterating on convolutional neural networks for classifying hot dogs vs. non-hot dogs… you also need to think about your team’s impact on the company, so you need to be constantly solving the dual-objective optimization problem of allowing people to freely choose the work they want to do with while maximizing the impact of that work on the company. Taking the time to explain to your team members regarding the interestingness and importance of certain projects to the company can help you reach a higher global optimum.
- Help them gain abilities and skill up in ways that allow them to do bigger things at your company. This could be a full separate essay, I’ll skip the details for now.
3 Don’t just prioritize; show team members how to prioritize
Prioritization for data scientists can be complex and difficult. In fact it’s even sometimes a meta-problem; since often the output of data science work could be advice on whether or not to prioritize a product feature, you might need to think about prioritizing the work on understanding priority…
Typically, you’ll be in a better position to prioritize things at a high level than your team members (given that you have more experience, you’re more in sync with company executives and their goals, you have more broad understanding of the various current and future projects, etc.). But that doesn’t mean you should just decide the task priorities and assign them to your team members.
In addition to deciding the priorities, try to ensure deep understanding amongst your team of why a given task has a certain level of importance and potential impact. The benefits of doing this are threefold:
- Team members will likely become better at triaging by themselves further subtasks or new requests (e.g. dashboard creation request) of a project; this is especially useful if they are working on multiple projects simultaneously
- They’ll naturally gain better prioritization skills over time (which is good for many things including the possibility of future promotion to be a data science manager)
- They’ll likely feel more motivated about doing the work (even if they didn’t exactly choose to do the work)
4 Value team members’ future careers
As an awesome manager, you should care not just about the current performance of your team members… if you really care about them as human beings, you would care about their long-term success and well-being as well. In your position as a manager, you can actually contribute a lot to their future careers.
Data science career planning is especially tough because the occupation is relatively new, things are changing fast, and your team members might only have short experience as a data scientist.
Here are things to try:
- Set the cultural norm that it is OK (but not required) to freely talk about career aspirations, including potentially leaving your team. Even if the person leaves your team, you could still end up working together on cross-team projects, and the person could be leveraging their data science skills in their next role (e.g. as a PM making data-driven product decisions or another type of data role).
- Have periodic 1-on-1 career chats, maybe every 3~6 months. Ask probing questions (without being creepy :P ) to make them think more deeply about the kind of work they enjoy and are passionate about.
- Be on the lookout for chances for them to try out the work that they aspire to do in the future. For example, if someone aspires to be a data science manager in the future, you could set her up as the official mentor to the new summer intern, since mentoring is part of the work of a manager. If someone aspires to become an expert on hardcore ML engineering in the future rather than ad hoc analytics, try to arrange for him to get assigned to more ML projects.
5 Maximize synergies with other teams
Data science work is usually not valuable in and of itself. It needs to somehow fit well into a broader product, project, or organization to be truly meaningful. I’ve seen many examples of this not working well; e.g. a great dashboard or machine learning model was made but ends up having no impact. Furthermore, many people are not used to working with data scientists, so achieving smooth teamwork may be difficult.
Here are some tips:
- In general, manage and shape expectations of what your team can provide and how people should interact with your team. For example, you can tell other teams: “don’t just dump a random analysis request on us without explaining the context. We’ll only agree to do the work if we understand the importance.” You can even make a slide deck to the tune of “this is how the data science team functions and here is the best way to work with us,” then slot in some time to present it. Shaping expectations is also important to prevent demotivation of your team members caused by e.g. unreasonable requests.
- Go with the flow. In other words, try to deeply understand the high-level company direction, goals, and priorities, as well as how executives are thinking about them. If you ideate projects in a way that is aligned with those goals, it will be easier to convince other teams to collaborate with your team on those projects. Of course, if you believe the company direction is flawed, you should leverage your mad data skills to change that direction… but that’s another topic.
- Clarify the inter-team dependencies for a project to succeed, then talk to those other teams to get their understanding and commitment. Do this early on, i.e. before any major work is started. As a contrived simplified example, let’s say your team member wants to create a customer lifetime value prediction model to help marketers optimize online ad spend. In order for the project to succeed, 1. the data engineering team needs to ensure the data pipeline (for the model’s input data) is stable with a proper SLA and understanding of its importance 2. The marketing team needs to agree to integrate the model output into their daily online ad management workflow somehow. If you can’t get at least some degree of commitment early on, it might be better to give up or postpone the project.
6 Hire more awesome data talent
Most organizations don’t have enough data talent to unlock their maximum potential. Some companies just declare “let’s set a goal to hire 50 AI engineers” and have the flawed expectation that that will automagically lead to awesomeness.
How can you help your organization? It’s not just about your specific team. Not only does your team have dependencies on other teams (like data engineering), you want to help drive your whole organization to data greatness, right?
Here are some tips:
- Assess and explain the needs for various types of data roles and how they should fit into your organization. Convince your company to either start hiring or increase priority of hiring for some of these roles. It might be initially hard to convince executives, so try to provide concrete examples of the work such people would be doing at your organization specifically. You can refer to how some top tech companies define their data roles (see posts by AirBnB and Indeed; post on org structure of growth teams; Quora page about Data Product Managers)
- For your data science team specifically, think hard about 1. how to bridge the gap between current/future company needs and your current team and 2. how team members complement each other, then try to prioritize hiring accordingly. For example, if your team is full of people good at software engineering but bad at data visualization/communication, you might want to find someone better at communication, even if he is a bit weaker at coding. In general, it’s very hard to find talent with all desirable traits/skills of a data scientist, so you need to rely on team members complementing each other, both for making the team overall more well-rounded and allowing people to learn from each other and help each other grow.
Much more can be said about the topic of data talent (including how to attract and evaluate such talent), but maybe that can be a separate post.
Being a data science manager is tough and challenging, but it’s a very rewarding job. I hope this post provided some helpful food for thought. I’m still learning myself, so I would appreciate any thoughts/comments/advice below. Thanks~ (^ㅂ^)
Obligatory random abstract image