West Africans generally associate free open source software, which is easily available to use and modify, as being inferior to commercial alternatives. This is a consequence of both their lack of understanding of the open source model of software development and a general consensus that if free software is usually of little or no value. To make matters more complicated, most West African governments are even more distrustful of open source software since they erroneously believe that the closed nature of commercial software built from scratch offers them increased security.
Open source software is, in fact, what helped to avert a major crisis in Sierra Leone during the Ebola epidemic. Here’s how it happened.
iDT Labs got involved in the Ebola crisis in Sierra Leone at a crucial time. Ebola Response Workers(ERWs) were threatening to go on strike due to non-payment of hazard pay, the compensation promised to them for their dangerous work. With funding from the UNDP, we started working on a solution to disburse hazard payments to ERWs all over the country.
Whatever solution we came up had to meet the following criteria:
- The software had to be relatively inexpensive
- There was great emphasis on quick development of the system; we had two weeks to plan, develop, and deploy everything
- The solution had to be stable considering the consequences of major downtime or data corruption
“West Africans generally associate open source software, which is freely available to use and modify, as being inferior to commercial alternatives. This is a consequence of both their lack of understanding of the open source model of software development and a general consensus that whatever is free is usually of little or no value”
With these parameters in mind, we started evaluating open source projects that would not only help us to meet the criteria but would also be responsive enough for our functional requirements. Naturally, realizing that finding a ready-made holistic solution which would meet all of our specifications was improbable, so we divided our scope and evaluated if our options could meet the following needs:
- A core database to house ERW records, generate pay lists, and to record payment history and payment issues.
- An SMS interface through which alerts and status updates could be sent to ERWs and queries received and processed from them.
- De-duplication of ERW records based on their profile and on facial recognition
- A process for field data collection
Open Source Core Database
Odoo, formerly known as OpenERP, is a suite of open source enterprise management applications that easily emerged as the best fit for our core database requirements. Its major attraction was the ease with which one could develop add-ons, while its large user base and browser-based user interface made it even more appealing. With Odoo and its PostgreSQL database engine forming the core of our solution, it was relatively simple to develop our extensions, with its web service architecture integration with external components via its excellent XML-RPC interface is fairly straightforward. Another advantage was that Odoo already had a human resource add-on the design of which was not far away from what we wanted.
SMS Interface
For SMS communications with the system, we decided on using the robust Kannel SMS gateway. We already had extensive experience with Kannel and so we didn’t experience the configuration nightmare that first-time users typically go through.
De-duplication of Data
Data de-duplication was to be an integral part of the system. With tens of thousands of records supplied to us via excel spreadsheets, we had to properly plan for a considerable amount of duplication in the records. De-duplicating data was particularly tricky because of the unlimited ways a person’s data can be represented. No convention existed for recording ERW data and so there was an absence of important fields like names, telephone numbers, address etc that we could use to de-duplicate our dataset. Factor in the possibility of spelling mistakes and largely incomplete data and the magnitude of the de-duplication nightmare increased. For this problem of extracting, matching and resolving entity we had to turn to machine learning, natural language processing, and statistical techniques. This ruled out using the power of PostgreSQL alone as relational databases are not meant to handle complex entity resolutions. Instead, we turned to yet another open source project, Dedupe.
Initially, we flirted with using elastic search, an open-source search engine. However we quickly realized that this solution would take much more than the two weeks we had, so we settled with Dedupe, a python library that uses machine learning to quickly perform de-duplication and entity resolution on structured data. After adding some custom code, we got it firing exactly the way we wanted it to.
Deduplication using the passport pictures of ERWs, when available, was done with the help of OpenBR and OpenCV, a facial recognition library and computer vision project respectively.
Data Collection in the Field
A requirement of the project was the ability for data to be collected in the field using smartphones. For this, we leveraged the excellent Open Data Kit project (ODK), a suite of tools that allows data collection using mobile devices and data submission to an online server, even without an internet connection or mobile carrier service at the time of data collection.
Open Source Projects VS from Scratch Software
Adopting open source projects in our solution ensured that we finished well within our stringent time frame and budget, putting together a robust solution that would have taken us years to develop if we were to do it from scratch. The works of thousands of excellent programmers in the open-source space ensured that Sierra Leone effectively and efficiently solved what was the most complex and easily volatile aspect of the Ebola response, the distribution of hazard payment. The only component we had to pay directly for was the SSL certificate used to secure communication with the server.
“The works of thousands of excellent programmers in the open source community ensured that Sierra Leone effectively and efficiently solved what was the most complex and easily volatile aspect of the Ebola response, the distribution of hazard payment.”
Seeing how successful open source software was deployed in our context we hope to see other West Africans in the tech for development space embrace open source technology. With billions of dollars being wasted by both Governments and the International Development Community operating in our sub-region on low-quality, non-functional software shelved after few months due to poor quality or low user adoption, it is imperative that we turn to open source technology for our software requirements. The billions being poured into commercial software licensing can easily be redirected to more pressing needs, such as poverty alleviation, HIV and Malaria prevention, to name a few.