Comment by analog31
7 years ago
This was once described to me as the Law of Enterprise Sofware:
All enterprise software sucks, because it's sold to administrators, not to users.
The managers see the purpose of software as improving their own workflow (tracking, data gathering, compliance) as well as controlling the users, not (gasp) empowering them.
Compounding the problem of enterprise software is customization. A person who works at an EHR vendor told me that every clinic system wants to develop their own bespoke workflow, in search of slightly higher efficiency, and so the thing that the user actually sees is not a well engineered system, but a hodgepodge of screens and forms that were designed at the last minute. My friend said that the user experience is a lot better at sites where the customer uses the off-the-shelf implementation with little or no customization.
I worked at Epic, and while I was there, I can confirm that a huge number of workers were fresh out of college and making crap customizations, for every single customer we had. If a salesperson ever told a customer "no, that can't be customized", they might go with another EMR vendor. So every bit of user choice added by the developers and the staff physicians was eventually taken away by customizing administrators turning optional into either mandatory or forbidden. It was completely ludicrous. One part of the company was building software to be used at theoretically any medical facility, and another part was busy turning it into many shards of software that could each only be used in one location for one customer.
And on top of this, the software used to customize the base software was esoteric and required extensive training just to change the resource strings. This was before i18n, of course, but I have no reason whatsoever to believe that made anything better.
The whole thing was--and probably still is--held together by huge gobs of money. If Epic were in any industry other than US healthcare, it would have been bankrupt a long, long time ago. My experience has led me to believe that if software developers had any significant union membership in the 80s and 90s, able to enforce minimum standards for development practices, health care costs today could have been 3/4 of what they actually are now. We are now paying for jobs that could have been completely automated by 2000, and its because Epic and Cerner and GE and all their competitors have been shoving technical debt--in the form of bullshit customizations--into every deployment for decades, at the behest of administrators who were understandably reluctant to authorize the purchase of any product that would automate them out of their own jobs.
And it just gets worse when you add billing integration, because then Medicare and the private insurers get involved...
Got out, didn't look back. Don't work in medical software if you love programming and don't want to spoil that.
This is very true. I'd see this in software I worked on integrating ERPs where we'd have support for like 5-10 custom fields.
The best workflows were those were the custom fields were used and just had a nice label (e.g. "Old Customer Id") and not the workflows where some consultant had created an additional UI that didn't even use the underlying fields and did something like write the data to some unrelated storage mechanism and then building reports that are trying to awkwardly mix and match these data sources.
> Compounding the problem of enterprise software is customization.
That's kind of the same-but-opposite of my experience.
When software tries to control how it's going to be used, it fails spectacularly more often than not, ime. The best software that I've used always leans into the problem: They let me access it via a dump. Then I can manipulate it as I need, then upload it back in.
But when those that don't understand the workflow try to tell developers how to design software, it usually ends up in a big mess of workarounds just to get the basic use-case to work correctly.