GUI config apps and a thousand cuts

Today has been one of those death by a thousand cut days. We did a migration first thing in the morning (I’m not supposed to be awake at 6am unless it’s from a really late night) and while all the big bits were planned and moved successfully the work list was missing enough little pieces to make the rest of the day very annoying.

What made the work a lot harder was that the changes had to be made through a web front end that abstracted about 20 seconds of vim in to four minutes of clicking buttons that were never in the same place twice. It’s been a while since I’ve had to bulk make production changes using this kind of interface so I was freshly amazed at how awful it was.

First of all was the time it took. The average change was about 8 mouse clicks, most of them on different pages, across a slow application that was working with a very large (for it) dataset. Second was the lack of a safety net. I had to do full copy and pastes to somewhere safe for each thing I wanted to change before changing it. It may not sound like much but if you come from the land of version control and diffing changes then it just feels so risky. And if you don’t then I suggest you start learning one. Instead I had to rely on some hastily written post check scripts that confirmed the changes were correct when publicly viewed. We’d normally write these as a double check but without version control they become the single safeguard. Which were only effective after the change was made, which is better than nothing I suppose…