- Project Type: Software Implementation
- Domain: IT for Development
- Time Frame: 3 months
- Technologies Used: Java, JSP, Struts, Hibernate, JUnit
The Grameen Foundation launched an open source loan-tracking system called Mifos to implement its vision of microfinance. Because of our interest in the uses of IT for development purposes, we became members in the Mifos community and undertook to study the software. When we expressed interest in participating in the development of the system, the Foundation's Technology Center assigned to us the task of developing a module to handle the occurrence of holidays in the core meeting scheduling subsystem.
The first step in studying a new open source system is to understand its components. We developed a script to convert the Hibernate data model into a visual diagram using Graphviz and Linguine Maps. We also used code comprehension tools such as Creole to build an understanding of the static and dynamic structure of the system's objects.
With this understanding, we designed a solution that would minimize the amount of code needed to implement the required functionality. A major design goal was to make the holiday handling functionality transparent to clients of the meeting scheduling subsystem: no rework would be needed. After validating our solution with the Mifos development community, we began the implementation. We added a new Java package containing our re-scheduling algorithm, and patched the meeting subsystem in few locations to use that new code. We wrote unit tests to validate our implementation as well as its effects on other subsystems. The holiday handling code is now a part of Mifos.
The Grameen Foundation was founded following the success achieved by the Grameen Bank in fighting poverty through microfinance. Its board of directors includes the Nobel-winning founder of Grameen Bank, Mohammad Yunus, in addition to more than a dozen other personalities from the world of finance. The Foundation's mission is to empower the world's poorest people to lift themselves out of poverty with dignity through access to financial services and to information. Its global network of microfinance partners currently reaches 2.7 million families in 22 countries.
