The case against GUIs (again)…


Recent events have made me think about this post again…

Software Vendors

I can’t explain how much I despise being forced to use a GUI to do something that could be scripted.

If you are a software vendor, please make sure you offer some form of scriptable API to interact with your product, and make sure it’s documented properly. I don’t care how much time and effort you put into your GUI, I don’t want to use it. I want everything in a script that can be checked into Git and automated.

If you are a software vendor that doesn’t provide a scriptable way to interact with your system, you are going to the bottom of my list. Even if I am forced to use your product now, I will switch at the first possible opportunity.


I’m sure this will ruffle a few feathers, but as I said in the linked article, when I see people using a GUI to perform certain maintenance operations my immediate reaction is they are wasting time. It is very rare a manual operation will be as fast and accurate as a scripted operation.

In the past we have hired “experts” to do work for us, and they’ve taken days working with GUIs to accomplish something that could have been scripted and run in much less time. If they are truly experts I would have expected them to have scripts for everything they do anyway.

I realise some consultants are running up chargeable hours by taking the long route, and some are not the experts they claim to be. It is noticed!

Why the rant?

The further down the rabbit hole I go with automation, the less I can stand doing manual operational work. I’m reaching the point where the mere sight of an unnecessary GUI gives me toxic shock…

GUIs have their place, but not for operational tasks IMHO!



Author: Tim...

DBA, Developer, Author, Trainer.

2 thoughts on “The case against GUIs (again)…”

  1. What can GUIs be useful for? Creating scripts!

    I like it when a product comes with a GUI that will take your inputs and spit out a script or even single line with all the appropriate parameters set to call the working code. Then I can take that and use it for a template for generating my own scripts knowing that these are the “approved” combinations without having to read reams of documentation to understand all the parameter interactions.

    Best of both worlds IMHO.

Comments are closed.