NITI in Retrospect: Job Titles and Roles
Part of the fun of working in NITI-Montreal in the earlier days was the flexibility: everybody did a little bit of everything. If you're in a startup company, that's the way it has to be. For the right kind of person, it's more fun anyway.
At first, every single developer who worked in our Montreal office was known as a "Human Cannonball." They all did different things; some people are better architects, some are better coders, some are better debuggers or testers or spec writers or infrastructure specialists. But they all had the same title. That made people feel like peers.
There was a job description that went with that title. It made being a Human Cannonball sound hard, which it was. And so, by implication, if you managed to become one, you must be awesome. Different people are awesome at different things, but the point was, you were awesome, because you wouldn't be there if you weren't. That made people feel proud of themselves and of their peers.
We used the same title and job description when hiring co-op students. I've never seen results like that before in a job posting: the applicants were incredibly self-selecting. Where normally you might choose to interview 10-20% of the resumes for a particular job - if you're lucky - with Human Cannonball, it was sometimes worth interviewing up to half of them. Why? Because people don't want to look like idiots in an interview, so if the job looks like it's way over their head, they simply won't apply. Combine that with past co-op students who go back to school and say how great the company is and that we have very high standards, and the less awesome applicants simply go elsewhere. The most common failure mode for this job description? People who thought they were awesome, but frankly, weren't. But those people are pretty easy for sufficiently awesome interviewers to detect.
But one important feature for all of this was that the job title didn't make any sense. That wasn't just fun and games; again, in my naivety, I suspected it might have been, and I'm not opposed to fun and games. But there's more to it than that. Meaningless job titles prevent people from jumping to conclusions. If you advertise for a "Programmer", you'll get people who assume their first-year university Java skills are sufficient, and they drop their resume in the slot. If you advertise for a "Human Cannonball," people have to stop and think.
As time went on, we introduced a new concept on top of this: roles. Roles were temporary, didn't change your job title or salary or peer ranking, and Human Cannonballs would shift in and out of multiple roles as time permitted. We used a mix of meaningless and meaningful names for the roles: FeaturePusher, ReleasePusher, HumanBalance, Architect, and so on. Exactly what these roles entailed isn't too important right now, but what's important is that the fuzzy role names helped people not to make assumptions about what the role entailed. For example, a "FeaturePusher" was something like a Project Manager. But Project Managers have a stigma attached to them; they're often not programmers, yet they're somehow put in charge of programmers; they get paid more; they hire/fire people; they do employee evaluations. None of those things were what we wanted. Some of those jobs belonged to the HumanBalance (which is sort of like an HR manager, except not). The FeaturePusher did indeed "manage" a "project", but that's entirely different from managing people. Changing the title removed the assumptions, and helped people to think more flexibly.
All that was how we did things in Montreal. Nowadays at NITI, people have job titles (which encompass roles) like Project Manager, Team Lead, QA Manager, and so on, with predictable results: they're afraid to take on roles outside of their job title, they take on roles they're unqualified for because of their job title, and so on. Hopefully, they rise to the challenge.
For my next company, I'm thinking of balancing the job titles a bit better between silly and boring (some people are just embarrassed to have a silly job title, and that's fine), but I don't want to lose the lack of clarity in the process. I'm kind of inspired by the research labs where everyone is an "Associate" or just a "Programmer" or sometimes literally "Just a Programmer." The advantage of these is that it makes the lack of clarity the explicit goal - it doesn't hide that goal behind silliness, which people tend to wrongly assume is the goal in itself. Also, job titles like "Programmer" at least have the advantage of helping people who are used to thinking of themselves in a role to find the job, where they might never look twice at "Human Cannonball."
So here's what I'm thinking: "Programmer, etc." "Test Automation, etc." "Entrepreneur, etc." "Sales, Marketing, etc." It gives the general idea, and then loosens the meaning with "etc," which makes you think twice.
Would you work for me if you could be a "Genius, etc?"