Dear Mr President, sticky-taped software and a poor understanding of agile erodes our trust
By Anujah Bosman, CEO of Chillisoft
South Africa has always had the best constitution and we are known for our inspiring strategic plans. We have the will and great strategies, yet we continue to fail repeatedly in effecting the required transformation to economy and society. The COVID-19 pandemic has revealed that South Africans are waiting to follow an inspired, ethical leader who is transparent and humble. It has also revealed that we follow competent leaders and that we will not blindly follow once preventable errors are detected. Our faith and trust is rapidly eroding because of the present and continuing reality of sluggish, error-prone software systems. This article highlights a few examples of failing software errors that could have been easily avoided. It also highlights the poor understanding of agile, even though you have mentioned government’s need to be agile several times in your speeches.
The press releases about the various software failures have not mentioned the service providers who support these systems. They have also not mentioned the involvement of our state-owned IT agency (SITA). I find this interesting since SITA is accountable for key government systems and digital transformation efforts. Why have they kept a such a low profile during this crisis? What does this say about government’s trust in their ability, since they will be implementing and managing the NHI? In the glaring absence of any information about the involved service providers, we will assume that the poor system delivery lays squarely on the doorstep of private sector software providers. How can government departments continue to reinvest in service providers who norm to a lower standard of delivery?
The dismal reasons of a “technical error” cited by SASSA spoke volumes about poor testing, a lack of change control and a lack of best practices. Tight deadlines do not mean that industry best practices should be omitted. There are scant details about systems or service providers associated with the SASSA debacle of double payments and the recent issue of only paying 10 COVID-19 SRD (social relief distress) grant beneficiaries. These are some of the key best practices that should have been in place:
1. Automated unit testing to help ensure errors do not creep into the code.
2. Acceptance-level test driven development that would have detected errors in batch payments (consider the other recent issue of some people being paid twice while others were not paid).
3. Continuous integration and deployment to ensure that changes are deployed and tested immediately with fast feedback loops that bring about quick identification of problems in the systems.
4. Prioritisation of value-adding processes such as the API integration with third-party systems. The reason cited that the “vetting process being down with the UIF, SARS, NSFAS” is inadequate. Were all of these systems down and for how long were they down? Why were they down for a significant time? It should be unacceptable to government departments if their systems are down for more than a few hours. The relevant service providers must be held to account for this. If taxpayers' money is being used to implement software systems, the public has a right to know about the service levels and performance that service providers are accountable for.
5. Volume testing – how can a verification of 10 payments be an effective test for volume payments?
6. Batching transactions so they are processed at the end is nonsensical, especially since this grant is intended for the most vulnerable. Instead, risk management via batch size management should have been practised using a combination of the following principles, ie:
a. The Batch Size Queueing Principle: Reducing batch size reduces cycle time.
b. The Batch Size Feedback Principle: Reducing batch sizes accelerates feedback.
c. The Batch Size Risk Principle: Reducing batch size reduces risk.
d. The Principle of Dynamic Batch Size: Adjust batch size dynamically to respond to changing economics.
Millions of taxpayers' money has been squandered on digital transformation in government. Why are our citizens still queueing for payments? How does millions of rands of PPE (personal protective equipment) go missing in transit? Where are the logistics, tracking and stock control systems that are common practice?
The COVID-19 crisis has made it blatantly clear that the operational and transactional systems at a grassroots levels are still ineffective. The crisis has highlighted the silo mentality and the tendency of ministers to manage by setting drop-dead dates for their departments and vendors. If an agile approach was adopted, there would have been regular feedback on deadlines and a running probability of meeting the deadline. Agile means making decisions at the "last responsible moment" or when changes occur. It does not mean posturing, or waiting until the night before school children are meant to return, to shift school opening dates.
How can we speak of the 4IR, digitisation, datafication and agile when we cannot respond efficiently and effectively in a crisis? How can we build a different society when we can’t implement the basics in operations?
The SASSA debacle is not a technical problem, it is an example of a systemic problem of choosing and perpetuating poor service delivery, of prioritising “sexy systems, buzzwords and the glamour of superficial hackathons”, of deliberately whitewashing perceptions to buy time so as to appear to be delivering, and of continuing to support service providers who are not held accountable.
The COVID-19 economic crisis demands a pragmatic, hands-on approach. If we are to reshape the economy and we are getting rid of systemic issues, focus on delivering robust value-adding back-end systems. Focus on naming service providers who support government systems, make service providers’ performance transparent. Share data on delivery, performance and COVID-19 initiatives and infections so that researchers and software developers can innovate. We care about government responding effectively with minimal wastage to service the people of South Africa.
South Africa has some of the best, most patriotic software developers that I have ever met. We care, maybe too much. It is for this reason that our government’s poor and failing systems are so irksome. Our government’s current software makes a mockery of grand visions for South Africa’s future.