
Little errors in the beginning lead to serious consequences in the end.

A couple of years ago a lot of new voting machines were installed across the United States. A person, a voter, a user, would enter a room and the voting judge would check identification and issue a voting punch card. The voter would go to a small booth and vote. In actuality holes were punched in a card and those holes represented votes that became the voting punch card. The voting punch card was put into a card reader, and the card reader would process the card and the vote would be counted. While this seems like a simple process, there were many problems. Like many voters, I found myself waiting in line to vote; so, I started observing the entire situation.
What I noticed was a voter does not give up easily. Even though the voter punch card was being rejected, the voter would just keep trying to put their voter punch card into the reader. The reader would spit the card out along with two error signals. The first signal was an alarm beeping sound, and the second was a flashing red light. The voter would wait, a green indicator light came on, and the tried to reinsert card was reinserted, and the voter punch card was rejected.
What was odd was that sometimes the reader would work, and sometimes it did not work. It seemed like a random process. Some voters would become upset and start waving their voter punch card at the voting judges. I observed this for a while and realized that after a person complained, the punch card would be read. I assessed that the problem was not enough time was transpiring between inserting the voter punch cards. The green indicator light was providing a false signal. It was signaling the reading machine as “ready” when it was not.
Like the voters, the voting judges were becoming frustrated with the situation. When it came time for me to put my card into the reading machine, I announced to the voting judge I was an IT professional. She instructed me not to touch anything. I assured her I did not need to touch anything to work my IT magic. I waved my hands in a circular motion above the machine reader and I said, “Abracadabra, Kalamazoo, Abracadabra, Kalamazoo, everyone can vote, and so can you.” I put my card into the reader, and just like magic, it read the card with no problem. The voting judge looked at me with total and complete astonishment. The next voter behind laughed a bit, and then he said the words, “Abracadabra….” I stopped him and said he needed to wave his hands above the machine. He waved his hands, said the words, and his voting card was read with no problems. He laughed as he exited the area. The next voter was a woman and she too played along. She not only said the words and waved her hands, but she included a lot of body English. Her voter punch card was read with no problem. At this point, a lot of people were watching with a sense of humorous curiosity. I announced to the voting judge and those watching, “My work is done here.” As I left the area I could hear the next person saying, “Abracadabra…”
I have told this story several times, and there is always some software developer who will proclaim the machine reader should have been stress tested. Wrong! The developers should have gone and watched people vote. In the old manual process, voters inserted their cards into a locked green metal box. In the manual process, voters would start to form a line and wait for the voter in front of him or her to insert the voter card into the box. If the developers had watched the old manual process, they would have quickly realized lines are going to form with the new process too.
The requirement to reset instantaneously was not a new requirement; it was just missed. Perhaps the real requirement is to have multiple card readers at each station. I am certain there is a developer who sat in a conference room and waited to be told the requirements. I am equally certain the development team is saying the service level agreement states the voting machine has to reset itself in 3 seconds. Too many software developers wait to be told what to do instead of studying and learning.
The bottom line is, the voting system that was developed did not work well because people just wanted to vote and not worry about the technology. The best software applications are those where users can do their work without thinking about the how to use them. These applications are not developed by accident; they are developed by individuals who study both the business and the users.