Written by Brandon Bowersox-Johnson, OpenLMIS Software Development Manager & Tenly Snow, OpenLMIS Community Manager
From its earliest days, OpenLMIS has been more than just software. It has been an initiative – an idea that global health organizations could do much more by working together and sharing resources and ideas collaboratively. This is the driving idea behind the ‘OpenLMIS community,’ and also what drove the next phase of development in the software, leading to the release of the version 3 series in March of this year.
OpenLMIS version 3 is not just a repackaged version 2. The version 3 series represents a significant shift in how features in the system are built, shared, and deployed within implementations of the software.
Version 3 has a new underlying architecture that bundles separate, standalone, deployable ‘services’ which represent a logical set of related features to support different workflows (ie. Requisitions, Physical Inventory, etc.) This architectural approach is known as ‘microservices,’ and it provides a more flexible and extensible approach to software development through the utilization of modules for custom, country-specific features.
OpenLMIS believes that the future of global logistics management has moved beyond one-off, expensive investments in bespoke solutions; the future of information system tools is in global learning and supportive engagement.
The vision behind OpenLMIS relies on the principle that communities are stronger united than divided. By re-architecting the OpenLMIS software, the community, including global multilaterals and financing partners, has chosen to encourage partnership to extend the value of country investments.
So what does this mean for OpenLMIS? For new implementations?
The microservices based architecture of OpenLMIS version 3 has made the software more modular and extensible. This means that now, countries or programs implementing OpenLMIS can develop modules for specific services – or feature sets – to run on top of the core OpenLMIS code. These modules can range from being a small modification to a whole new service or workflow. This deployment model creates a number of benefits both for a country’s own implementation and for other countries wishing to share or utilize the same features.
Some benefits include:
- No forking. Modular, microservices architecture means that when a country needs to build specific, customized functionality for their implementation that is not already included in the basic functionality of the core OpenLMIS code, they can do so by building that functionality in a module which runs on top of the core code instead of changing the core code itself. The core code remains unchanged and will not fork into a new, unsupported branch. This means an implementer doesn’t need to maintain bespoke code.
- Shared benefit. Every country has different approaches to managing their LMIS data, including different data collection cadences, key performance indicators (KPIs), etc. They also often share a great number of processes and practices in common, however, leading to common requirements shared across countries. The greater the number of countries participating in the OpenLMIS community, the greater the benefit in understanding the common requirements.
- Shared investment. Donors and implementers can invest in building out new features or making improvements to OpenLMIS. Subsequently these improvements can be contributed back to the core codebase so that other implementers can update and benefit from the existing investment. Through OpenLMIS’s modular architecture, one country can benefit from the investment of another country implementer.
How does a country contribute back and benefit from the community?
The OpenLMIS community has strong governance and structure, including three committees that meet regularly to discuss the direction of the initiative and software development. Any implementer of OpenLMIS may participate in the community – by doing so, they benefit from the experience of other countries and global improvements to the software through organic dialogue and support.
As an open source tool and through the modular architecture of OpenLMIS, implementers are offered an opportunity to participate in the the software development of OpenLMIS by contributing back improvements and modifications made to the code. These contributions shape the software for the benefit of all implementers of OpenLMIS and help create a global dialogue between Ministry health programs, software developers, and implementation partners. By contributing specific features and functionality to the core OpenLMIS code, countries can benefit from feature development in other countries, sharing global learnings and increasing the sustainability, efficiency, and return on their investments.
As countries contribute back additional code to the core code line, the primary maintenance and support for these features is supported by the global OpenLMIS community and not the single country implementer. Through participation in the OpenLMIS community, any implementer of OpenLMIS can gain additional feature development, software development support, and ongoing community support for their deployment.
What did the first implementer of the version 3 series contribute back?
There are several existing deployments of OpenLMIS worldwide – all on previous versions of the software. The first country to deploy the version 3 series of OpenLMIS using the modular architecture completed initial project rollout in August of this year. It is a nation-wide deployment using OpenLMIS to manage requisitions and reporting across 5 health programs. The primary contributions that the first implementer has made to the core OpenLMIS code line are:
- Data loading tool (openlmis-refdata-seed)
This first deployment on version 3 has contributed a tool to upload reference data in bulk using CSV files. This new feature will assist other implementers in configuring the system through CSV uploads. It can be used for loading lists of Facilities, Users, Products, and more.
- New ‘rejected’ requisition status
This is a great new feature done in a global/generic way. Close coordination between the country and global team helped make it possible. This feature allows users to reject a requisition and have it tracked in a more user-friendly way.
- Overall, 27% of pull requests (14) were for features. This includes many other small features for usability, additional filters, and more.
- Improved Performance for low bandwidth settings
The first deployment contributed 52 pull requests, and 22 of those (42%) were to improve performance. Significant improvements in page loading speed and back-end processing time were achieved. Having real-world data from the first implementing country using version 3 made this possible.
These contributions have now been incorporated into the core OpenLMIS code line, following a process of discussion and approval by the OpenLMIS community. Any implementer of OpenLMIS may now benefit from these features built by the first implementing country of the version 3 series. As additional countries come online, further features will be pulled into OpenLMIS and made available to the global community.
The OpenLMIS Initiative’s mission is to make powerful LMIS software available in low-resource environments – providing high-quality logistics management to improve health commodity distribution in low- and middle-income countries.
OpenLMIS increases data visibility, helping supply chain managers identify and respond to commodity needs, particularly at health facilities where lack of data significantly impacts the availability of key medicines and vaccines.
Learn more at openlmis.org, or by writing to firstname.lastname@example.org
Want to get involved?
CONTACT THE COMMUNITY MANAGER