As the end of my current contract job comes near, I’ve begun putting out feelers for a new job. Looking over some of the descriptions and skill requirements for job openings, I see a pretty common thread: big companies are (still) asking for Java and .NET programmers, while smaller firms tend to look for developers using PHP, Python, Ruby on Rails, etc. This got me thinking about “Enterprise” platforms, and so I posed a question on Twitter:
Q: What makes a development platform "enterprisey", and why should anyone consider that a good thing?
— Dougal Campbell ? (@dougal) December 7, 2012
This sparked some pretty good conversation, so I thought I’d share some of it here.
https://twitter.com/boone/status/277081980397572097
https://twitter.com/boone/status/277082060554919939
@dougal Does it have web scale? /cc @CalEvans
— Jacob Mather (@thejmather) December 7, 2012
@dougal price
— Uncle Cal (@CalEvans) December 7, 2012
This one made me think a little:
@dougal imo – secure, deployable, extensible, well-documented, strong community support are all key parts to "enterprisey"
— gamengineers (@gamengineers) December 7, 2012
@gamengineer Strong community support? Really? That's (generally) the opposite of what I think of when I hear "enterprise software".
— Dougal Campbell ? (@dougal) December 7, 2012
@dougal Some communities are head-strong, but generally, I've yet to find enterprise solutions w/o a large, if not strong, community
— gamengineers (@gamengineers) December 7, 2012
@gamengineer I suppose that those communities might just be more insular; less apt to participate in communities outside their sphere.
— Dougal Campbell ? (@dougal) December 7, 2012
Then things really took off:
@dougal managers have heard of it – which means you can actually implement it *sigh* /cc @CalEvans
— auroraeosrose ? (@auroraeosrose) December 7, 2012
@auroraeosrose @CalEvans Yeah, to me it mostly seems to be that attitude of "it's expensive, it *must* be good!" is still pervasive.
— Dougal Campbell ? (@dougal) December 7, 2012
@dougal The non-cynic in me says that Enterprise is expensive because it carries with it some kind of SLA or guarantee. 🙂 @auroraeosrose
— Uncle Cal (@CalEvans) December 7, 2012
@CalEvans @auroraeosrose There's certainly some truth in that. But the attitude seems to extend beyond where it should…
— Dougal Campbell ? (@dougal) December 7, 2012
@CalEvans @auroraeosrose i.e., "Java" and ".NET" in and of themselves are considered Enterprise, but they are just languages…
— Dougal Campbell ? (@dougal) December 7, 2012
@dougal @auroraeosrose True, but they are perceived as having companies behind them to support them and sell you SLAs.
— Uncle Cal (@CalEvans) December 7, 2012
@CalEvans @auroraeosrose Sun and Microsoft aren't going to come fix your programmer's bad code. "Support" vs "Consulting"?
— Dougal Campbell ? (@dougal) December 7, 2012
(I said Sun there, but should have said Oracle. I still can’t get it though my brain that Oracle bought Sun a few years ago)
@dougal @auroraeosrose sure they will. For a price. 🙂
— Uncle Cal (@CalEvans) December 7, 2012
@CalEvans @auroraeosrose SLAs are for services. But the attitude of a *perceived* SLA seems to extend into products, sometimes? Agree? No?
— Dougal Campbell ? (@dougal) December 7, 2012
@dougal Agree. The idea that there is someone big standing behind the product is why people are willing to pay. @auroraeosrose
— Uncle Cal (@CalEvans) December 7, 2012
This pretty much sums up what I already thought on the subject. Big companies buy in to “enterprise” platforms because they are backed by other big companies. I’ll grant that there are some areas where a corporate product makes sense. For example, (don’t hate me for saying this) standardizing on a software suite like Microsoft Office. It’s a commodity product, widely used (so many employees will already be familiar with it), and being able to get support from the creator of the product makes sense.
But coming at it from the perspective of a web developer, I start to question the inherent value of enterprise platforms. Unlike word processors, spreadsheets, and presentations, web development remains a rapidly evolving field. And while there is value to having commercial support available for products, it starts to make less sense for some levels of the application development stack, like the actual programming languages used. I get the impression that some companies have chosen Java or .NET as their underlying web technology simply because there are big companies (Oracle and Microsoft, respectively) behind them. Then, having chosen their technology, they hire programmers to build a web platform/product.
But it seems like in many cases, the technology is chosen in isolation of studying whether it is the best tool for the job. Instead, it becomes the proverbial hammer, and by golly, our problem must be a nail, not a bolt! In other words, I wonder how often an alternative technology is passed over, even though it might be suited to a particular task, simply because it doesn’t fit in with a decision that was already made?
I don’t mean it to sound like “big companies bad, small companies good!” There are plenty of examples of big companies being more nimble and open to new ideas than you might expect. And maybe that happens more than I think. Anyways, this is just my brain-dump. I’d welcome any other thoughts on the subject.
4 Responses to Enterpriseyness