Something which I got into a discussion about today is the marketability of generalist developers versus deep specialists. Here are some quicks thoughts and observations:
1: it’s easier to be known for something specific.
Being associated with a specific thing makes it easier to raise your profile. For example, being know as the JS guy or the accessibility guy helps people to remember you. Rightly or wrongly generalists seem to fall under the radar a little.
2: Generalists are valuable in small teams
At the BBC I work in a large department but on a small focused team. Having a small team is nice, it helps avoid to much communication overhead and it’s easier to organise.
However for a small team to be effective we have found that having at least 1 team member with a broad skill set is very valuable. In my team we have a software engineer with deep backend knowledge and two front end devs with deep front end knowledge. We also have a generalist who has a broad understanding of both.
The generalist works well to bind the team together, working across many tickets and getting many things rolling. As a team we are exploring how best to operate and how best to share knowledge effectively. Pairing, code reviews and ‘show and tell sessions’ seem effective so far. We’re trying to avoid getting too process driven but its early days.
Back to the point having a generalist in a small team helps with flexibility and prevents silos.
3: Generalists reduce risk.
If your working only with deep knowledge specialists and someone becomes unavailable at short notice it can be difficult to continue forward momentum. When I was self employed this burnt me hard a number of times. Generalists provide some mitigation, worse case they can dive in with some degree of confidence.
So in short generalists rock but it can be hard to get known for anything.
Finally, there are a wide range of generalists, in my view it runs right through the stack with designer / front end, front end / PHP and PHP / java & database etc.
So back to the point, is there an optimal employment strategy? Do you really have to specialise to make the most of your career? At this stage I don’t think so, at least not for the first few years. It’s best to be yourself and see where that takes you first.