
The greatest improvement in the productive powers of labor, and the greater part of the skill, dexterity, and judgment with which it is anywhere directed, or applied, seem to have been the effects of the division of labor

I think everyone remembers being a kid at the big Thanksgiving or some other family get together. It is pretty common for the adults to sit at one table and the kids to sit at another table. I always wanted to sit at the table with the adults, but my grandmother told me I could sit at the adult table only if I acted like one.
I was working with a software development group whose core business is financial management for retirees. Let me repeat myself, they are in the retirement business. During one session I asked some developers how many of them subscribe to American Association of Retired Persons (AARP), AARP is the largest organization in the world dedicated to retirees. Not one of the developers subscribed to AARP. Worse, none of them had ever visited the AARP website. Then I asked what retirement magazines they subscribed to – the answer was none! It turns out they did not study retirees or even interview retirees. How in the world does a software developer develop software for retirees when they have no knowledge of retirees?
Today the core business is at the adult table, and software development is at the kid’s table. Why would the CIO be invited to the table with the business if he and his staff have little or no knowledge about the core business? Better yet, the software developers have no desire to learn about core business. For the most part software developers do not study their customers, the core business or their competition. If software development does not understand the core business, how is it possible to understand what functionality needs to be included or not included in any project, upgrade, or release.
I have had this same discussion with several different types of clients, and it does not seem to matter if the core business is health care, insurance, or dog food, most people in software development have little knowledge of their core business. Software developers do not specialize along industry lines, and most of them have no interest in learning the core business. Even if they did want to learn most of them do not have the necessary skill set to study their client and competition because they have focused only on technology. Since they know little about the business they cannot offer any strategic direction, and the organization loses little by outsourcing them.