Hello all, a general topic of discussion I have for you today.
Tools are useful for performing often really repetitive tasks. Slap on a GUI and fixing it so end-users not versed in code can use it and it becomes even more useful. However, I have the unfortunate pleasure of seeing how an end-user seems to get just the right amount of combinations done to break the GUI.
If you like a story:
I made a GUI that creates the AD groups, folders, top level folder, attributes, manager, etc. automatically so it didn’t have to be manually done in AD. It cut down what would normally be a 45 minute task to only 3 minutes for creating, checking, setting ACLs, logging, etc.
I went down various routes trying to think, “OK, the person might do this by accident, probably will do this, better make sure that doesn’t happen…” etc.
Then of course, somehow the end-user finds a combination. I had programmed the GUI so it couldn’t enable an OK button unless:
- A Manager was selected
- Notes were filled
- Name was Given to the Folder (filled)
The manager choice was in a combobox and wouldn’t enable it’s part of enabling the OK button unless you actually selected a manager. However, what I didn’t anticipate was the end-user choosing a manager, then deleting that name, and manually typing in something crazy which when the OK button was hit, didn’t do anything even if the OK Button was enabled (precaution in place). Then I’m informed and have to go down and fix it because it’s not working. I checked and he was attempting to put in a disabled manager account (made sure only enabled manager accounts were available in the selection). I had to inquire on why he was attempting to put in a manager who no longer worked there as the manager of the folder….
I added a warning box that would appear briefly letting the end-user know if the manager they selected was not a real option. Eventually had some more checking put into the box itself as well to prevent the enabling of the button if said samaccountname of the manager wasn’t in AD and/or enabled every time the text changed.
How do you go about fool-proofing your tool?