Eddy pointed me to this article. It's an interesting read, the usual "grow up" type article where the guy is disenchanted with the current state of the industry. For me, the real interesting part was with the analogies that he was using to try and describe the ideal situation. It struck me that he's got it all wrong ...
I am all for specializing and streamlining our industry. Unfortunately, his analogy of the productive pin makers
is flawed. The pin sharpening specialist back in the 19th century is certainly not analogous to today's
developer specialist because the problem domain is so much more complex. Adam Smith could have found any number
of peasants to fill the role of pin sharpener. This pin sharpener would probably have had no prior experience
sharpening pins, and he surely wouldn't have had any experience in the other parts of the "assembly line". This
was a quick and dirty way of getting the easily replaced, cheap, modular workforce that is the pinnacle of
movements like outsourcing, and we all know how well that works out. Nowadays, if you bring in a highly paid consultant, chances are he'll have to have a large body of experience in basic application development and the numerous supporting topics (ADO.NET, CAS, etc.).
Now, don't get me wrong and think that I am against hiring consultants. Much to the opposite, I think (much like
the author of the article) that there is much to gain by having a specialized consultant on a project that does nothing
but focus on the problem domain as it relates to his area of expertise. So the highly paid architect doesn't
have to worry about what database and/or data access layer we'll be using ... just architect us a good solution.
The problem I have is that this guy seems to be forgetting the fact that when someone becomes specialized, they
become much more valuable. As such, they are a little harder to replace than your average pin sharpener.
I was originally going in a somewhat different direction here, but a good conversation with the filthy intern made me
realize that a more valid analogy for what this industry is becoming is the medicine field. Think about it ...
for any manner of specialist in the field of medicine, they have to have a huge basin of basic knowlege about the
body and the way it works. The same holds true for, say, an enterprise architect. I would probably be trepidacious about trusting a neurosurgeon who, up until recently was a proctologist with little exposure outside of that. The same holds true for an architect making the jump from database administration.
What I'm saying is, if this guy's vision of a streamlined industry is to be realized, then each part of the
process needs to be broken down such that a person specializing in that area needs not be "pretty good" in
another area. But that's probably never going to happen. If anything, specialist developers will be something
to bring in on a temporary consulting basis just like if you were going to a medical specialist for a specific
problem. Your average developer is still very much needed because if you hire specialists for everything, it
would break the bank.