Johan wrote this
@ 2022-01-02

That's expensive!

Look, I’ll freely admit to knowing next to nothing about the Enterprise world. It’s like a separate universe of its very own, populated by Solutions Architects and threatening-sounding acronyms like ITSM and SAFe. From the outside it looks mainly like a collection of arduous processes where Java code is painstakingly conjured forth through byzantine flow charts and meetings rather than the daily keyboard work of living, breathing, humans. I’m likely missing a few parts of the puzzle but that’s what it seems like to a muggle like me.

In contrast, the world I inhabit is a simple one. You run a database and a web server on a computer – yours or someone else’s, whichever fits your app best – and then people can access that web server through their Internet connection. That worldview is probably why I’ve always been amazed at how some software can be so mind-bogglingly expensive.

You’re expensive too, buddy

Yeah, programmers can cost a lot. Being in Sweden means I’m not operating anywhere near eye-watering Bay Area salaries but Swedish developers still don’t come cheap, relatively speaking. But we’re not talking merely expensive, we’re talking expensive – like, orders of magnitude off from what I, an excellent and conventionally attractive developer who has built software for decades, would expect. As an example, I saw the current total for our new regional medical system (FVM if anyone’s interested), and if I’m reading it correctly they’ve plowed more than 3 billion SEK into it. It’s not even done yet.

And I’m… it’s… I mean, how do you even spend a cool three thousand million SEK building software? Are their <aside> elements built out of pure platinum? Are the servers lounging around in their own private dacha, drinking vintage Dom Pérignon? I simply refuse to accept that a database holding medical records, and a bunch of web apps to access it, can cost that much. If you gave me a small team (including a very nerdy security expert and a good lawyer, given that we’re dealing with nuclear-grade sensitivity of data) plus enough money to pay decent salaries for a year or so I think we could come up with something pretty good at like 0.1% of that cost. It’s HTML and JSON over HTTP! You’re sending concatenated text to a browser! I’m well aware that Things Happen along the way, you’ll absolutely encounter some underlying system speaking an ancient and forgotten XSLT tongue etc, but you can build wrappers around shit like that and move on. You’ll have to comply with rigid data protection laws, but that just means encrypting choice parts of your database. Scale shouldn’t be an issue, Postgres will handle billions of rows without breaking a sweat and if you make it a standard 12-factor shared-nothing app you can scale your web layer horizontally. If Postgres does start to sweat, bring in a database wizard for a while and let her shard it. What in the name of fuck is happening to all that cash?! Motherfucker! THREE BILLION, it makes my hands clammy just thinking about it.

Governments can’t run projects?

Bog standard project mismanagement can’t be the whole answer. Private companies do this too. I’m sure a lot of the cost can be chalked up to CYA-style “nobody ever got fired for buying IBM” shenanigans: Microsoft for instance has some very good salespeople and once they have their hooks in you they’ll make you pay through the nose for the duration of your contract and then some. And don’t pick SAP for anything if you like your budgets unbroken. But the cost of this thing is indefensible and unconscionable even when factoring the CYA tax in to the equation. If you’ve sent someone a roadmap essentially saying “give doctors and patients a nice UI to keep track of their journals and medicines” and they send “that’ll be 3 billion SEK if we’re lucky lmao” back, the correct response is to have a fucking aneurysm and then give the job to someone who can actually set up a database and a web server and build an UI on that. It’s not rocket surgery!

Do it better then

I’ve studiously avoided the Enterprise world my entire working life for a reason. I still have “be belligerent drunk at an Enterprise Christmas Party with a soggy christmas tie around my forehead” on the ol’ bucket list, but the milieu gives me a woody. I don’t want to build Enterprise Software. It seems like grinding, spiteful work. I’ve encountered gratuitous bureaucracy before, I don’t care for it, and I’ve tried to structure my career around not having to do it. I really just want to dunk on it from the sidelines, it’s what I do best after all.

Look, money is weird, alright

I’m pretty bad with numbers. So I’m sure some math genius will @ me saying percentage-wise it’s not a huge deal and if you divide the number of developers by the square of the hypotenuse you get a SpringBeanFactory back and this is all basic Computer Science. But at some point I think you need to show how these immense, life-changing sums of money get translated into working code on a server, and… nobody ever does. It’s like any concerns just disappear if you say “PRINCE2” into a mirror three times. Big companies and governments simply throw around big lumps of money, someone gets a yacht while someone else gets fired, the end, credits roll, everyone lives happily ever after, I guess.

But I still can’t shake the nagging feeling that there’s another way of going about it. Someone should be able to build a tiny, cheap, and understandable system, give it to doctors and patients, ask them “okay now what do you need” and then build that for them. Then do it again. And again. And after a year or two I’m pretty sure you’d have something cool. One could also suspect that the big flaw in this plan can be written as “nobody gets a yacht” but that would be cynical and judgmental and I’d be an asshole for suggesting it. So I won’t! Enterprise Software costs Enterprise Money and that’s that. See you at the christmas party, bring booze and fists.