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.
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'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?
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.
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.
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.