"Enterprise" Is Not A Dirty Word
I need to get something off my chest. I listen to a lot of podcasts; and, one reoccurring sentiment that keeps getting expressed is this idea that "enterprise tier" development is, somehow, not a "Good Thing"™. This is often brought up in terms of technology that isn't "popular" amongst the early adopters, but may still be used very heavily in a lot in enterprise web application development. As if enterprise tier development is a second-class citizen - an area in which bad ideas propagate freely and mediocrity is, apparently, celebrated. This is an absurd notion; and, I would suggest that people who think "enterprise" is a dirty word are people who have less contact with their customers.
I point specifically to customers because - to me - that's what enterprise software is all about: solving customer pain. And, getting up every morning and doing it day after day for years. Enterprise software is a slog; because, that's what building a legacy is: a marathon, not a sprint.
In enterprise tier development, the customer is king; and, the choice of technology is just a means to an end. The new hawtness doesn't have any implicit value unless it helps solve an actual customer problem. As such, enterprise developers err on the side of robust, dependable, battle-tested technologies. This way, the technology can fade into the background and free the engineers up to do the most meaningful work.
So, when you hear someone dismiss a technology as "just" being popular in the enterprise space, what they mean is that said technology is rock solid, dependable, and scalable.
Now, that's not to say that building enterprise software is perfect. It's still built and managed by "People"; and People have lots of faults and short-comings. I'm not here to tell you that enterprise software is implicitly better than other software - I'm just here to tell you that it's not inherently worse.
I've been told that the average tenure for a web developer at a given job is 2-years. I'm not sure you can't build a legacy in 2-years; I'm not sure you can go on a meaningful journey with your customers in 2-years; and, I'm not sure you can't see how your software changes lives in 2-years. Enterprise software takes more than 2-years to build - and, many more years to maintain. So, it's not surprising that most developers don't have their heads wrapped around what enterprise software is. And, how deeply customer-oriented enterprise developers are.
ASIDE: I just imagined a t-shirt that says, "Enterprise developers do it at scale". Ha!
With all that said, the industry absolutely does need the engineers who chase the new hawtness - those fun, shiny things. In a large way, those are the people who drive the industry forward and lay the groundwork for the new patterns that eventually become "enterprise patterns". Enterprise and non-enterprise developers aren't in opposition - we are in collaboration. We are on the same continuum.
So, the next time you hear someone say that technology XYZ is "popular in the enterprise", I hope that you now understand that such a statement is a compliment, not a detraction.
Reader Comments
There is REAL tension between wanting to be cool - not having much in the way of (visible) boilerplate, dependencies, etc. - and wanting to scale to the real world, with its costs.
In olden times, you had Steve Yegge on the value of simple languages (Javascript, Python), and Joel Spolsky on the value of battle scars (Netscape threw out its old code ... and died.) I dug up an article about, well, youth nowadays :P
https://www.nytimes.com/2014/03/16/magazine/silicon-valleys-youth-problem.html
Now I think about it, it's not just software - who doesn't want a lean bod (no flab, still strong) or a nice home (no clutter, but enough of everything). All the power none of the bloat. Trouble is - what IS the minimum
@HB,
Thanks, I'll take a look at the article you shared.