[Note: This is a repost from my personal blog.]
I was having lunch with a colleague the other day, talking about the strange state of affairs that is software developer hiring. There's a great desire at the executive and accounting level to hire people on a contract basis, with the perceived benefit that you can scale the work pool up and down, and that doing so saves money because you don't have to pay out benefits. In practice, those of us in the profession know that you never really scale down, and because demand exceeds supply, the prices you pay for contractors are exorbitantly high.
But my colleague made a more important point about their perception. They believe that developers are simply interchangeable. This is probably the most harmful misconception. As anyone who does the work knows, not all developers are created equal. If the vast differences in experience and skill weren't enough, there's also the issue that it takes a considerable amount of time to ramp up in any situation. Depending on the complexity of the systems, it can often take a good two months before someone is really proficient working in the code. If you're talking about a six-month contract, you're looking at paying higher rates and getting perhaps as little as two-thirds the productive time. Oh, and all that domain knowledge gained? It leaves at the end of the contract. Rinse, lather, repeat. It's so inefficient.
Still, as strange as this is, it does represent a different kind of opportunity. There is already a trend where companies are shifting their dollars to services, instead of building and hosting their own stuff. Sure, there are still a lot of irrational fears and kingdom building that happens among people who don't want to give up some sense of control, but it's happening anyway. The big use cases are already going that way, especially e-mail. Heck, Salesforce has been around for almost a decade and a half, back when everyone was like, "You can't always be connected to the Internet, it will never work."
What's interesting is that there is a long-tail of niche markets that can be filled as well, and I'm interested to see where that goes. There's a fairly large opportunity there for folks already working on a contractual basis. Maybe you can "productize" the niche, or maybe you can simply build a reputation as an authority in the niche.
Granted, there is some risk associated with this. I'm not a fan of outside investment, and think that bootstrapping your business is a better way to go. It's easy for me to take this position after falling into some relatively minor income 15 years ago with my hobby sites, not having to put in a ton of hours to maintain those things. But it's quite another thing to really build something up, perhaps employ others, etc. It's also hard to work a day job and build a business, and as I've famously come to understand, devoting your free time to something like a business at the expense of your family can be a non-choice.
This is partly me trying to look at the bright side of a profession that has gone totally away from the century-old model of "climbing the ranks" in other industries. I explain to my family that the average longevity even for full-time software people is likely 18 months, and they can't believe it. Companies do not invest in us, and see us as interchangeable. What's crazy is that it's a commodity view with premium pricing. It's probably a contributing reason to the lack of quality people to do the work too, since you can't stick around in any one place to be mentored (glad I've had a series of really solid opportunities for that).