The Analyst’s Lament
IDEs with colored code, error checking and refactoring. Unit test frameworks. Automatic execution of tests in the IDE. Automation of builds. Automatic downloading of libraries and frameworks. Version control systems. CI servers that build, test and package for every commit. Automatic deployment to staging servers. Automatic a/b deployment and testing. Platforms that scale up and out indefinitely. Container Frameworks. Software-as-a-Service and Platform-as-a-Service infrastructures with Web UIs. Infrastructure as code. Man, those developers really worked hard to simplify their world.
Once my idea of what a software system should do has made into their brains, and once they have transformed their brains’ newly acquired understanding of what they think I want the system to do into that magic substance called code, things are really golden. Once.
But man, getting them to understand what I need is hard. I can either try to write things down precisely in Word documents — they will misunderstand anyway — or they expect me to talk with them all day, in what they call an “agile process”.
Can’t those guys use their powerful brains to build some tools for me, the guy who actually knows what that software system is supposed to do?
Why can’t I just type in what I want the system to do using a language I understand? I realize that I cannot just type unstructured words. I have to be precise, computers cannot deal with ambiguity. They can’t guess, right? But why can’t they invent a language that is meaningful to what I care about? And can’t this tool report errors that are relevant to me, just like the compiler does for them? Those guys have invented hundreds of programming languages over the years, can’t they for once invent one that makes my life easier?
And then I want to write tests myself! I don’t want to explain every nuance to them developers, they don’t really care about the details of my business anyway. And I want to run the tests in my tool, just like they run unit tests in theirs. If the tests are green, I want to press a button and then I want to be done! I really don’t want to see all of this technical stuff that is necessary to run the software in their clouds or wherever. I’m sure they can build some kind of compiler for that.
So, dear developers, I want devops for business people. Build a tool for me, and I promise I will stop nagging you with those stupid details of my domain you don’t want to hear about!
Thank you. Your customer, the “business guy”.
PS: I have read about this Low Code stuff. But that’s a joke! They really expect me to express the intricacies of my domain with a bunch of boxes and lines and Excel-style expressions? Do these people understand how huge the core of my domain is? Sure, low code gets me nice webby apps, but I cannot express the logic behind the GUI with any of these tools.
PPS: I am not the only one who thinks like that! I have met likeminded people in healthcare, finance, insurance, public administration, but also in various (non-software) engineering domains. We are out there. But nobody listens!