(I’m weird enough that I actually owned this CD in high school.)
What’s this song talking about?
In this song, Tennessee Ernie Ford is singing about what would have been a normal “Day-in-the-life-of” setting for workers in the 1800s, specficially coal miners. It was hard work, usually performed by people without many options. It was good, honest work for the time. There was honor in working to provide for their families. The key part of the song, however, is the last two lines of the chorus: “Saint Peter don’t call me, ’cause I can’t go, I owe my soul to the company store”
What was a company store?
Miners worked in company mines with company tools and equipment, which they were required to lease. The rent for company housing and cost of items from the company store were deducted from their pay. The stores themselves charged over-inflated prices, since there was no alternative for purchasing goods. To ensure that miners spent their wages at the store, coal companies developed their own monetary system. Miners were paid by scrip, in the form of tokens, currency, or credit, which could be used only at the company store. Therefore, even when wages were increased, coal companies simply increased prices at the company store to balance what they lost in pay.
Thank goodness developers don’t have that.
I have never worked anywhere that paide me in anything other than US dollars, and I’ve never been required to pay my employer for my house, food or supplies. However, I do see a similar attitude in the software world.
The most recent example of this is the recent updates to Microsoft’s Azure cloud platform. This month, Azure got a few new features, one of the biggest seems to be the ability to deploy your Azure site with just one or two commands from your source control system (e.g. $git push Azure master will deploy your site from a git repo into Azure.)
There’s nothing wrong with this. In fact, it’s a great step forward. It makes deployments much easier.
The problem is not the feature, but rather the reaction of so many developers. Over the past two weeks, my Twitter feed has blown up with people proclaiming the greatness of doing a git push to Azure. While I read this, the same thought kept coming back to me: do these same people know about AppHarbor? (Which is itself a .NET version of Heroku.)
My concern is that the majority of .NET developers aren’t even aware that something like Heroku exists for a plethora of other languages. As if the attitude is “If I’m meant to deploy software with a single command, Microsoft will come up with an approach for me.”
One difference between the company store in Tennessee Ernie Ford’s song and software development is that developers are willingly placing themselves in the company store. For the coal miners, they had no other choice. You had no money other than the bills & tokens your company produced. Even if you did, there were no other stores around the mine.
You do have a choice. You can choose to stay with .NET, and there’s nothing wrong with that. But don’t allow yourself to wind up in a situation where you’re only taking what Redmond spoon feeds you. It’s a choice you can make.