Hacker News new | ask | show | jobs
by matthewmacleod 2297 days ago
My experience suggests that successful organisations need a good mixture of specialists and generalists to be successful – although "specialists" is maybe the wrong term, and it's more about having a team with a diverse set of skills in different areas.

It's beneficial to have individuals that have a broad understanding of how complex systems work without necessarily being able to develop all of the components in full themselves; there's equally a requirement for developers who are capable of understanding and implementing all the detailed intricacies of particular fields, like front-end or embedded code. The former are usually able to develop working solutions to a given problem, but they often end up being sub-optimal; the latter can often implement those solutions more effectively, but can struggle to effectively work with a broader system.

This idea is related to Cringely's military analogy about the different kinds of personalities and skillsets needed to build companies – the "commandos", the "infantry", and the "police". The "commandos" can move quickly to build creative or disruptive solutions to complex problems, but can leave unfinished tasks in their wake, and get bored easily. The "infantry" build on top of the work of the "commandos" – refining, improving, and professionalising. But they need more infrastructure, process, and understanding to do this, which can slow them down. And the "police" are there to manage the system when the speed of development slows down – the focus is on maintenance, economy of scale, and more-stable-if-less-exciting work.

It's all a bit of a thin metaphor to be sure, but I've definitely seen these and similar personalities in different companies, all offering different kinds of value. Nobody belongs exclusively to one group, in the same way that nobody is exclusively a generalist or specialist. But I've found that understanding how different personalities and "skill shapes" can contribute is important for building an effective and productive team.