I disagree with that first part. At least in software engineering. Remember when you just had software engineers? Eventually we got things like game programmers and web developers. Now every game has at the very least an audio programmer, gameplay programmers, network programmers, graphics programmers, platform engineers, etc. Web Developers are even more specialized, walk into any web development shop and you can find people that only ever work with say React on mobile, or one person that specializes on browser compatibility, or analytics engineering.
Part of it is the size and scope of the projects and the general complexity added to the field, but 20 years ago 1-2 people would have done all of these.
I think there are different trends happening in different professions. I remember once when the sales team was hiring. They invited in a half dozen people one day and gave 3-4 offers. Whereas in engineering it'd take weeks to find anyone with the matching experience for the roles we had open. This was a startup selling something pretty new, so I doubt the sales peeps had similar experience with a different company. I'm assuming that sales experience was just considered highly transferable.
I'm not sure exactly where the bifurcation lies--it certainly isn't unique to software. Medicine and law are also getting highly specialized. On the other hand, are administrative jobs going the other way? Accounting, HR, compliance? I'm always a bit puzzled when companies recruit CEOs from unrelated industries. Does domain knowledge matter that little for some, even very senior, roles?
That's an outgrowth of the same rise in general competency.
Inside a company programmers such as my self have been assigned to work on React without ever having seen it before with the expectation they will pick it up. It's only when looking for new employees that these differences have much weight.
PS: I have been told to pick up low level network programming, frameworks such as React, new langues, even jumped into web programming from nothing. I can only assume this is generally the norm.
All jobs past and present involve some very specific domain knowledge and a range of more general skills.
A car salesman needs to know a lot about the product, more general sales tactics, more general skills like email, and even more general skills like just speaking. But, as you narrow down into the ultra specific niche the percent of time working in that domain decreases. What percentage of the time is the sales guy dredging up specific horsepower numbers etc related just to the car they are selling?
Over time what we could consider generalists jobs like secretary have been cut while the tasks have not. So, by handing out those tasks to others those other jobs have in turn become more generalist on a day to day basis. Dev-Ops for example is in many ways the opposite of specialization.
PS: Put another way, if my last job had been using Java instead of C# I would have done the same thing with ~80% of my time. You would be reading the same requirements of the code was in another language.
> Put another way, if my last job had been using Java instead of C# I would have done the same thing with ~80% of my time. You would be reading the same requirements of the code was in another language.
That works well for languages, yes, but what about data scientists, business intelligence, cyber security, and machine learning experts? Those are all jobs that launched off the dev backbone, but are very different, have unique, specific knowledge and require training past what a normal degree requires. Dev-Ops may be a generalist position, but you'd need see someone who does Dev-Ops do those jobs.
'Data scientists' is one of those interdisciplinary fields that does not have an ultra deep dive into any one silo. Rather it's a collection of several skills that are all useful for doing other things which is not really specialization. People can dip into and out of that role with minimal transition unlike say becoming a Doctor.
You're both right. Specific jobs are becoming more specialized with a higher emphasis on understanding specific frameworks, languages and patterns. At the same time we switch jobs more often, so engineers have to to become more adaptable and less specialized to remain relevant to new roles.
Part of it is the size and scope of the projects and the general complexity added to the field, but 20 years ago 1-2 people would have done all of these.