I know everybody is focused on the FIFA World Cup. This is the best time to sneak in a few lines on the technical side of the Malawi elections. This story starts on the night of May 20, 2014 from the point in the elections when a polling center has finished counting votes and is ready to report them to the national tally center.
According to the United Nations Development Programme (UNDP), a software system was developed by Globe Computer Systems and partly funded by UNDP for purposes of submitting results. There was a demonstration of the system on May 14, 2014. The idea was: “… results will be manually aggregated at 4,445 polling stations and delivered to the Constituency Tally Centers in 35 District Headquarters. The data in Tamper Evidence Envelopes will be digitized and transmitted to the National Tally Centre”. My assumption is that this is a Web-based system. The transmitted data would be received by software that would update a database. Those interested in results would just do a web search and voila.
The first tally center to attempt to submit results was unsuccessful. And so was the second and third and the rest of them (I am exaggerating here). The software was not used at all. Instead the results were photocopied and sent by the old-fashioned fax machine. The Electoral Commission Chairman Maxson Mbendera, my former SCOM Chair at Chancellor College, said “Our electronic counting system has crashed, yes, and last night we migrated to our Plan B”.
Then started a long protracted electoral process that led to law suits, political rancor, and sadly one death. What went wrong?
Those of us in software development are all too familiar with these scenarios. This problem is not unique to Malawi. For the American public, a similar system failure happened at the roll-out of the Affordable Care Act in October 2013.
Modern World Wide Web (Internet) based software systems are very complex. They rely on transmission over many different types of media such as telephone lines, cellular wireless antennas, fiber-optic cables, and others. Users use these systems from many different types of computers such as smartphones, tablets, laptops, as well as desktop computers. Moreover, the software used to access Internet-based systems tends to be heterogeneous. Some users prefer Windows while others prefer MacOS. There are those who prefer Internet Explorer and those who swear by Firefox.
The most difficult aspect of Internet-based systems is to anticipate the number of users. This affects the amount of data traffic and communication connection requests. Many times such systems are tested with a few users and they work. Unfortunately such tests do not simulate real life situations. Crashing is the only language the system knows when overwhelmed.
The answer to this problem is called Load Testing or Stress Testing. The Electoral Commission should have had a day when a high volume of requests were generated for the system. But this was probably not adequately done. What we need in the world are better and competent Software Engineers.