Learnings As a Graphics Lead




Below is a list of things I think I've learned as a graphics lead over the last few years in the context of my own experience, and also learned from others, either directly or from observation, both positive and negative. This is not a list of qualities of me as a lead but more what I aspire to. I have made and make mistakes and am always learning new things.


Hiring

-Consider doing hiring outreach yourself. HR doesn't usually present themselves in the gamedev communities that you are already a part of. If you combine your community with what HR finds, you will have more and likely better options when combined.

-Don't be surprised if you get push-back trying to hire entry level candidates with no professional experience. If it's within your power, remove that "1-2 years experience" line from the junior position listing, you may be surprised how quickly the candidate pool demographics change.

-Ignore complaints that entry level people will leave after a year or two. If the project is interesting, if the company pays good enough, and if you take care of them, they will probably stay for a while. The things that turn off entry level folks are often the same things that turn off senior devs.

-Hire a wide age and experience range for your team if possible. This is a "feels" based bullet but it seems to foster a more healthy team culture. Maybe because junior folks quickly try to soak up as much as they can from experienced folks, which solidifies their own knowledge while explaining, which they also appreciate. Everyone wins.

-Do not hire toxic programmers. Selfishness and overconfidence combined with poor programming and lack of critical thinking is not uncommon. Unsurprisingly people who don't care to work well with others tend to not learn as much or as quickly as others do, while also making their coworkers' lives worse. They aren't worth it, pass, save the team and project the trouble.

-Learn to distinguish between toxic and disagreeable/contentious people. Seek people who will argue that you're wrong about something, because you will be! Good disagreeable(ish) people on the team can (in addition to you) tackle difficult conversations head-on to keep the team from being overrun, and they passively teach the less outspoken team members how to argue effectively.

-Pay attention to whether or not a candidate behaves aggressively with women on the interview panel. Hostility to women can often be spotted early and quickly. This is uncommon but not rare, it will happen.



Day to Day

-Check in with the team regularly. The daily or weekly meeting, the one-on-ones, the monthly/quarterly "here's how you've been doing" feedback.

-Instil code review culture. Everyone learns from code reviews.

-Instil rapid code review culture. Address the must-fix issues or major questions, and then be quick to pass them. At minimum check reviews on-entry and on-exit of the work day. Motivate the team to do the same. Be the example for the rest of the studio for effective code reviews.

-Be available. Some focus time is fine but others depend on you to unblock them. If you have remote workers in different time zones, during your overlap time you need to be very available.

-Keep the team on the hot path, out of unnecessary meetings, distractions, and unscheduled non-critical work. Tank for the team as needed, and regularly check with them about their schedules and ability to do focused work. Excise anything that does not directly block other people on the team. This type of maintenance is critical to the team being effective and should be a regular part of the job.

-Try to balance feature and bug distribution. Some people are naturally better at bug fixing, but don't abuse this by subjecting them to fixing GPU hangs for months. Spread it out.

-Allow and encourage specialization and broad ownership of different areas of the render codebase, especially where people are passionate. All game programmers are creatives to varying degrees, but graphics programmers skew very much towards the creative end of the spectrum. Let them stretch and flex those muscles, they need it to be happy.

-Directing graphics for a game is a lot. Be okay with saying "I don't know, let me get back to you" in response to big questions when you genuinely aren't sure. Try to find those answers quickly, and communicate them confidently.

-It is hard to be confident in all decisions you make, maybe impossible. If you can't demonstrate confidence in your own direction though, nobody else will be confident in you or your team either. Don't invite that kind of doubt. As you grow and your team succeeds, the inner voice telling you that you don't know what you're doing will calm down.

-Own the bad decisions. When you're wrong, provide a clear explanation of why and be confident in deciding it was a bad call.

-Own the mistakes of the team, they happened under your direction. Provide any critical feedback privately one-on-one.

-Conversely, attribute the successes of the team to each individual's contributions, and do it publicly. The "cool" and aloof lead is a meme. Gas the team up whenever they do good work, and shout it out loud when they do great work.

-Encourage the graphics team to work independently, embedded with feature teams when possible. You already check in regularly, there is no need to be the bridge for communication between your team and the rest of the studio, or you will become the bottleneck.

-Do everything possible to avoid being the bottleneck for the team. A lead's multiplicative impact on the team can also be < 1.0f



Performance Reviews

-Should not be much of a surprise to the person being reviewed if they are kept up to date with their progress over the year and not just once a year. Progress updates at a more granular cadence than yearly is important.

-Review scores are a game where the perfectionists with low confidence or low self worth sabotage themselves and lose. If someone on the team is doing well, the review needs to reflect it regardless of what they critique about themselves.

-If you score someone low and they need to improve, you need to be able to show them why and present them with a concrete path to improve. You also need to keep them regularly up to date on how they are progressing, and when they have achieved those goals.

-"I'll know it when I see it/feel it" is not a valid reason to withhold promotion, and yet it happens all the time. Either they meet the requirements, or they don't and you can tell them how/why.



Advocacy

-Be the "canary in the coalmine" and not the "sky is falling" person. Be loud when necessary and only when necessary.

-Do not foster toxic people who currently work with you. "It only takes one asshole to ruin a project" is a fact. People you cannot afford to lose will quit the studio faster than directors will react to remove the toxic person causing it. Address it quickly and with concrete evidence, stem the bleeding.

-Make friends with QA, Customer Service, and Community Support teams. These are the departments corporations tend to care the least about, often pay the least, and taken for granted. If you see them being mistreated, look out for them and use your voice to try to make things better.

-Be a fly on the wall in employee resource groups and listen. Learn about company failings that are discussed, and help when opportunities present themselves.

-Be difficult on behalf of those whose lives are more difficult in the workplace. Say the hard thing so that they don't have to.



Self Care

-You manage people, see a therapist regularly.

-Your teammates are not your therapist or punching bag. Your job might involve tanking but they are the DPS, not the healers.

-Find the balance you need for yourself between technical work and leadership work. If the balance is bad (eg not enough technical work) you will be unhappy and do poorly anyway. I personally need at least 50% technical to be happy, and this makes me worse at leading than I could be, but the alternative was worse for me and I learned it the hard way. Do the best you can and be honest about it with the team and managers above you, so that they can decide what is best for them too.

-You probably work more hours than most. Try to not to be visibly online outside of work hours as it risks passively pressuring the team.

-Use PTO and take long breaks when possible.



I think what makes learning to lead a team difficult is that there aren't clear guidelines, despite what the self-help book of the day says. You are unique, as is the team, as is the company and the things they make. These variables are not all within your control and vary wildly. Most of learning the job, as always, is adapting and learning from successes and mistakes, both yours and those you work with. If what I've written here doesn't sound good to you, then it may still be a helpful tool to ask what values matter to you, and find how you can offer the best leadership you can, in your own way.

Contact