I’ve been in the games industry for some years now, and one of the things I find slightly annoying is that there’s very little discussion of “career progression”, and that what little there is typically focusses on “how to get your first job in the industry”.
Many years ago, I used to work at IBM’s R&D labs, and discovered that they had whole tables of “possible career paths” that you could download internally and consult when trying to decide what to do with yourself. They pressed hard on everyone to take some time out every 3-6 months to evaluate how their personal career was progressing, think about what they wanted to be doing in the future, and decide what long-term decisions they should be making in the present and near-future to help them get there.
The emphasis was on the individual, and of taking control of (and responsibility for!) your own future. The guides were there to help you find out what a potential future boss would expect of you if you wanted to apply for a job years in the future – when you’re a junior programmer, you may have no idea what a senior manager is supposed to do. No problem – except if you wanted to become one, in which case you wouldn’t know what to concentrate on learning for the next 10 years.
Big companies in the games industry, like EA, certainly do a similar thing internally. But I’ve so far failed to find any decent external, public, guides. So, for the benefit of anyone else who’s ever wondered what they should be doing to further their games-industry career, I’m going to start publishing my own take on this. I’d really really like input and feedback from other people, although there are big problems with conflicting definitions e.g. of what, exactly, a “development director” is. But at least I can start…
Chart 1: Programmers
This is a basic chart showing the main flow of career progression for programmers.
The most important thing to point out is that it only shows internal progression – later posts will show how you can easily move sideways from some of these positions into different disciplines, especially Design and Production. But I’ll be covering each core discipline in it’s “plain” form first, and showing the links between them later.
Junior – recent graduates and/or people with no games industry experience and not enough years of hard-core C++ coding to jump straight to the Programmer level. Note that most Juniors pick up some specialism – not enough to become an expert, but enough that later they can re-specialise in that role as a Senior.
Programmer (normal) – anyone who’s passed their apprenticeship as a junior, typically with 1-3 years of experience programming on games projects, and credited on 1-2 published titles.
Senior – a programmer who has decided to specialize in an area of programming, becoming an “expert” over and above a normal programmer. Usually someone who chose to avoid a managerial position – although note that on larger teams most Senior’s end up managing Juniors in their area of expertise. However, the management is mostly mentoring, as opposed to Lead’s who do much more project-management-esque roles. Seniors typically start off as a Junior in the same area of expertise, and refine their skills and gain lots more experience whilst a normal Programmer.
Lead – a programmer who manages a team of programmers. There are two types of Lead: the mentoring lead who still programs day to day, who is an expert programmer who could have been a Senior, and the project-managing lead who hardly ever programs (if at all) and spends more time arranging the workload for all the other programmers and helping out the Project Manager(s) / Producer(s) with scheduling and delivery. Both types act primarily as go-between, interfacing between the entire programming team and the rest of the world (design team, art team, and producer). Most Leads are experimenting to see how much they like project management, and may switch to being a Producer or Project Manager later on.
Technical Director – ultra-experienced / skilled experts, usually troubleshooters floating amongst all dev teams, or attached to a particularly large team. They take on all the non-direct-programming tasks that require substantial technical expertise. This often means a big role in hiring, solving long-term problems, and architecting large systems for complex games.
Development Director – this one’s very vague, because more than any other Programming role there’s huge variety in the actual responsibilities of this role from company to company. I’m defining it here as “the person who is in overall charge of all direct creation of all games: programming, art, and design”. Their role is entirely strategic – they may be a skilled technical person (there are many other routes to this role – see upcoming charts in future posts), but they delegate ALL technical issues to their one or more Technical Directors. However, they typically make the final decision on anything affecting the development process or the overall studio and how it develops.
Next … Design (probably. Or maybe Production…)