Enterprise IT: Why does “having a job” and good software have to be mutually exclusive?
We've all heard that 'witty' interjection - usually after explaining (or complaining about) a very complicated software procedure (typically administrative / operational in nature) someone will always say something like "Hey, that's why we have jobs!" (or, if consulting, "that's why you're here", etc). Sometimes then followed by everyone making their best 4chan LOL face before returning to the days tedium.
Most Enterprise Software == Added 'Technical Debt'.
All packaged up in a big shiny box, and by "box" I mean "poorly formatted auto-bro email". I haven't see a product box or printed manual in years, those cheap pricks.
It's 2013 for fucks sake.
I never imagined that the state of enterprise corporate software would *still* be so damn bad.
- Layers upon layers of antiquated cruft masquerading as "robustness" or "a solid foundation"
- complicated software stacks with multiple dependencies for the sake of a single (lazily designed) application
- purposely obfuscated database back-end schema (so you have to buy their "reporting modules" of course)
- monolithic per-user licensing plans on self-hosted software
- ...the list goes on...
Hell, it's spawned this complacent "business as usual" worldview among an entire generation of IT workers and managers. And people wonder why we drink so much...
Does anyone ever look around and say "Ye gods! We need to stop this ghastly madness!". Not really. And I'm not telling you to stand up and be that heretic, but I am asking you to think about it.
Why is it that many large well-known companies seem to write bad software on purpose? How does this continue for so long? Teams are too large? Bound to their own legacy technical debt? They don't want to rock the boat? The more (over) complicated it is, the more money they can charge for it?
I'm sure it's all of these things and more - but that doesn't make it right.
The people at these big software companies are supposed to be smarter than us, right? So we can get a better solution quicker, by opening our wallets and standing on the empathetic shoulders of software giants, right? I'm not so sure.
Fresh interfaces, fresh ideas, forward-thinking technology? Nope. Not here. Enterprise IT these days is about as "backward thinking" as it can get away with.
Every new decade brings the same old song, often using Moore's Law and cheap labor as a crutch.
"Bring on more of the same! We can always mitigate it with more computing power and more Dilbert-esque application-specific workers!"
I jest, but look around - it forms the very basis of many IT support organizations.
IT is kind of funny this way. It's pretty much seen as a "necessary evil" in most traditional (READ: BigCorp) industries. They have to have it and they don't like paying for it - because it doesn't really make them money directly. So when I complain about software decisions that turns a team into a bunch technological ditch diggers, they would say, "So? That's your job". But it isn't. IT's job is to support the "business people" so that they can make more money and everyone can high-five each other.
Instead, most IT jobs these days are truly "meta". They exist to support the tools they use to support the business (many times with even more layers of recursion than that)...
Don't take me as a ungrateful whiner - maybe they're right, maybe we "wouldn't have jobs" if software was (mostly) excellent... but I seriously doubt it. Instead we'd be able to spend more time making things *that* much better and profitable.
You know, as opposed to swimming upstream toward the next exposed tree root because someone didn't think to build a boat instead of buying a bottomless Yacht.