Are you an 'I' or a ’T’?
If you haven’t heard these terms before, the explanation is simple. An ‘I’ is a specialist; someone with depth of knowledge in a specific area. A ’T’ is a generalist; someone who has that depth of knowledge (the vertical bar), but also has a range of skills that allow them to collaborate across a number of disciplines (the horizontal bar). Both types of people are valuable in different professions, but which is better for your programming career?
An argument can be made that you’re a simpler hire if you market yourself as a specialist. If you have clear and definable expertise, it may be easier for companies to imagine how you’ll be useful to them as soon as you start work. It’s easier to interview someone with specialist skills too - there are, after all, very few interviewing practices that measure general ‘learn and adapt’ skills with great accuracy. Yet, the hiring process is rarely indicative of how a job really works, especially in smaller businesses. You could be a week into a new role, when someone gets sick, or quits, and you’re asked to step into the breach. Tasks tend to routinely appear that the HR department had no idea about, but your manager still expects you to know, or learn. The ability to adapt and extend your skillset are likely to be a pre-requisite, even if you did not market yourself as a generalist. Refusing to step outside one zone is unlikely to be looked on favourably.
This does not mean it’s always easy to sell yourself as a generalist. Example: say you have experience in C++, Java and Python, and you’re applying to a company that uses all three - but the only spot available is on a team using PHP. It’s unlikely the HR department will consider your application in light of how useful you can be to other parts of the company. They just know they need someone with PHP.
For generalists, the solution may be to cherry-pick relevant experience from your résumé and highlight that for certain roles, accepting that your other skills are not going to required. Or you could aim for companies who clearly recognise the value of ’T’ employees. Valve (check out page 46) actively asks for them, for example. And it’s not as though people with transferable skills are not recognised at high levels - Steve Jobs’ interest in calligraphy directly influenced the design of the Mac. More and more developers are working in the world of open source, where flexibility and shared responsibility are the ethos to live by. If you’re the type of person who enjoys a variety of roles, a generalist role will naturally suit you. Some people baulk at the idea of spending an entire career on just one thing; others might find it ideal. Identifying what you enjoy most will go a long way to determining the best path for you to follow.
Focusing on general skills has pitfalls as well as advantages. It may be that you have ‘soft skills’ and the ability to collaborate, but your job doesn’t call for them to be used, making you a specialist by circumstance. You may find that trying to stay on top of more than one area might cause you to fall behind in all of them. Be realistic in what you can manage. Picking one to specialise in might be inevitable - and not the end of the world if you’re already in a job with defined parameters.
If you’re a specialist, you face different concerns. You may be easier to hire, but your career path is inevitably narrowed by being so focused. Precise jobs in your field may not come up very often. And you face the potential prospect of your area becoming obsolete - technology moves fast, and what was the foundation of every program ten years ago might be consigned to history in five more. Specialist or not, you can never afford not to move with the times. Take a look at this story, which highlights an issue modern-day employees face; namely, that businesses, particularly start-ups, may be forced to pivot on a dime. New data can quickly push a company in a whole new direction, and the job you were hired for may not exist overnight. Job security is never guaranteed, and there is little you can do about that. But your mentality and acceptance of the way the industry works will go a long way to lessening the blow if this happens to you. Will you pivot with the company, and open yourself up to learning in a new direction? Or do you stick with the specialism you enjoy, and venture out to find a different company to employ you? That’s the sort of decision only you can make, but keeping your long-term goals in mind will surely help if you find yourself in this situation.
We could take this one step further - one step up, perhaps - and introduce the notion of X-shaped people. This is the leader design; people who are deeply grounded in their specialism and have the professional recognition and respect that comes with it. They work with diverse teams, and the roles they’ve carved out lean towards management and strategy rather than getting stuck in to the programming themselves.
In the end, it all depends on what you want out of life. Small to mid-sized companies are more likely to offer diverse roles that a generalist might enjoy, where the focus is on a small team with an array of projects. Enormous multinationals may have more defined roles, and want highly-qualified specialists to fill them. By considering your strengths and what you enjoy most, balanced with the opportunities on offer, you can carve out a career which fits you, no matter what letter you are.