In chapter two of The Unsettling of America “The Ecological Crisis as a Crisis of Character,” Wendell Berry states that “the disease of the modern character is specialization.”
He goes on:
From a public point of view, the specialist system is a failure because, though everything is done by an expert, very little is done well.
What happens under the rule of specialization is that, though society becomes more and more intricate, it has less and less structure. It becomes more and more organized, but less and less orderly. The community disintegrates because it loses the necessary understandings, forms, and enactments of the relations among materials and processes, principles and actions, ideals and realities, past and present, present and future, men and women, body and spirit, city and country, civilization and wilderness, growth and decay, life and death — just as the individual character loses the sense of a responsible involvement in these relations.
Personally, I can’t comment much on the validity of his statements*, but I will attempt to apply Berry’s views to specialization in software development.
There are two aspects of software development which I believe go hand-in-hand (1) writing the software (2) marketing the software. Once a software product has a large enough team and a decent number of users, division of labor between the two functions naturally arises in a company. However, when you only have people that are specialized in one function or the other, I find that the resulting product becomes inferior.
Fundamentally, this is because engineers who are only involved with writing the software lose touch with their users— they have no relationship with them. Someone else (i.e. the software marketer) is answering user questions on forums, posting and speaking about the software, collecting and responding to user feedback. There is no sense of “community” between the engineers and the users.
And furthermore, I believe that when engineers are not involved with the evangelization of their product, they stop caring about the product’s software— hence we see the deterioration of the codebase. So this is why software writing and software marketing cannot operate in siloes. And in my ideal world, all engineers would be involved with both functions.
*I am an un-critical thinker— that’s why I try to at least be careful with what I read (because I find all of it to be true).