It is a common belief in the industry that programmers are just interchangable cogs. “Programming is programming”, right? I believe that as SOAs, MDAs, RTIs and other “standard” architectures become more prevalent that this “interchangable cog” belief will initially become stronger due to perceived simplification of tasks. Unfortunately, this is exactly opposite from what the reality is.
As the nuances, scope and concerns of a specific architecture grows, developers become more and more specialized in that architecture. Specialization limits ones general knowledge (or just pushes it further down the stack) and therefore limits interchangability. This specialization trend can be seen in regards to development languages, platforms and applications. For example, interchanging a C developer fluent on Unix with one fluent on Windows is a recipe for disaster. The same can be true for Java and C#, or PeopleSoft and SAP.
I have recently tasked myself with determining how our universities are meeting the demands of greater specialization and addressing this interchangable cog paradox. At first glance it appears that there is little being done but I am only at an initial phase of my research. In a recent conversation that I had with a professor at my alma mater, I learned that most universities purposefully have more generic and abstract courses to separate themselves from trade or vocational schools.
I’m a man on a mission and I will post more information as I acquire it.