I think it’s a universal truth that no matter where you work, you hate the software that you have to use. And it’s even more true when that software is written internally, meaning not store-bought or otherwise 3rd party. As someone who writes this type of software that everyone hates, I can understand the frustrations. But this story is about the software that I didn’t write, but was written by and for the company I was working for.
The particular software was primarily written by one person, who had been with the company since the start, which was decades. I was supposed to create the software that would replace it, but the company went under before that came to fruition. However, I did have enough of an opportunity to shed a ray of hope that better things were coming, at least software-wise.
The purpose of this maligned software was order entry and contact management. It was used by the sales force to create quotes, sales, credit memos, and also to track membership for the company’s special program. For as long as I could discern, there was friction between the sales team and management. Aside from mutual distrust, there was also resentment in that the company wanted to micromanage how things were done on the floor.
The company came up with a very precise, very specific way of selling from which no one was to deviate. And the software was written entirely to enforce that specific methodology. The people on the sales floor obviously didn’t subscribe to this methodology and simply felt that they were being treated as human robots, without any free will to conduct the sales transaction in the way they felt comfortable doing. The software developer constantly complained that the users were not using the software correctly and were always figuring out loopholes, which became bugs.
I have a lasting impression from my first few days working there when I was in training for that software. That impression was validated by another user near the end of my time at the company. After sitting through the training session, I felt like a complete idiot. I didn’t understand anything. Nothing made sense. And it was all because the software was written so terribly. And that feeling made me question my capabilities for working at that company. I tried to reassure myself that it was just because I was unfamiliar with the industry, but the user that confirmed my feelings was an industry pro and couldn’t understand the software either.
There were many issues that I took with the software. The first was the ridiculous color scheme and color choices throughout. It screamed “amateur”, and when I’ve been formally trained to write professional business software, this was not acceptable. Required fields were highlighted – in yellow. And not pastel yellow, the eye-bleeding danger yellow.
Taking that issue further, there were many dialogs that used “folksy” language. There was no “Cancel” button. Instead, you had a “Forget It” button. Unless it was a “Never Mind” button (which has a keyboard shortcut of Alt-V, because Alt-N to suggest “No” would be too much for a user to understand).
You had an option to “Undo Previous Whoops” on a dialog that asked specifically, “What Do You Want To Do?”
Here’s some messages the application could pop up:
- Programmer Goof – Trying to use Add code for something else!
- This Credit Memo will result in a net credit to the member of $x.xx. Is this what you intended?
- Does Member desire a refund check from Corporate?
- Is this Credit Memo being created to “Undo” this Sales Order as though it never existed?
- Whoops — too many windows are open. Close some windows and try again.
- You have tried to pick up more than was ordered. Please RTFS and re-enter valid amount in correct box. (The application’s name started with “F”, which was a convenient out if he was ever accused of telling the user to “read the fucking screen”.)
I mentioned that the software was written to enforce the sales procedure as defined by the company. This actually caused a big headache at one point because they changed policy one time which required a lot of code changes to support it. But anyway, when you would start a new sale or quote, you would be prompted with question after question about how the sales was to take place. These questions were supposed to be asked to the customer, which would prep the sales form with certain data. As you would suspect, the questions were all worded folksy and unprofessionally, and most were pointless, only nagging at the sales person to upsell this or that and don’t forget to ask about this. Some examples:
- Don’t forget SUNDRIES!!!
- We’re Pushin’ Cushion!!!
- How ya gonna Cut it, Glue it and Dress it Up???
- Whatcha gonna put it on? How you gonna seal it?
- What’s gonna keep it down?
- How you gonna keep it quiet?
- How you gonna cut it, glue it and finish it off?
- What’s gonna keep it from slidin’ around?
Because the entire process was so drawn out and pointless, the sales staff started memorizing the keystrokes that would let them fly through the popups and just get to a blank sales form. The developer, when he learned of this practice, was furious. They were skipping over all the hard work he put in to make them do their job correctly – the only way to do it correctly. So he took action. To keep them from skipping through the screens, he randomized the buttons on the popups.
Yes, it may sound absolutely incredible, but this developer literally made the application more difficult to use on purpose by changing the interface to require the user to read the screen. What was lost on him was that the user wasn’t reading the questions on the screen, they were only reading the buttons to find out what they had to click next. And if they misread anything, they got a sales form that wasn’t what they needed and had to start over.
And this developer was very proud of his work. He had defeated the users. And that really was his only goal. Not to make things better; only to win. And when he wins, everyone else loses.