I figured out one extremely simple reason why it is very difficult to maintain a software contracting worklife today. Well, it's not simple in its components, but it is one unifying principle that you see behind the collapse of computer consulting.
A consultant always has to stay at least one, and preferably two or three steps ahead of his clientele.
If you can't do this consistently, you can't consult.
For software development, this means knowing about platforms before they are in general use, and anticipating when they will take off, and leveraging that knowledge.
I look back to my best years of consulting and that was certainly true. I knew Windows development, none of my clients were good at it, so I was two steps ahead at least.
As that lead narrowed, so did my contracting options. Pretty much in a 1:1 pattern.
Today, maintaining this lead is just about impossible. For one thing, clients can turn on a dime and scrap one platform and embrace another in which you have no experience.
The best almost anyone can do is barely keep up with their current gig.
Therefore, no software consulting. We're all commodities owing to the churn of development tools and platforms.
Thoughts?