I agree. But are teachers in K-12 aware of this when doing CS? I'm afraid they inadvertently enforce monolithic thinking in the youngsters.
It seems to me like the problem is at the college level. My school offered just one software engineering class, which taught one monolithic method of developing software. A couple of semesters developing different types of software using different methods of development would have been nice.
I think there is an expectation that a 'seasoned' developer can be good at all types, but often that's not the case.
We certainly need a mix of both, and they absolutely need to get along (to some degree).