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.
Congratulations!
Really!
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!