Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

34
Ending Poverty One Line of Code at a Time Mifos - the Grameen Foundation's Java-based Microfinance application Michael Vorburger Odyssey Financial Technologies #170

Transcript of Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

Page 1: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

Ending Poverty One Line of Code at a TimeMifos - the Grameen Foundation'sJava-based Microfinance application

Michael Vorburger

Odyssey Financial Technologies

#170

Page 2: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

2

$ ls presentation/

> About Speaker

> Intro / Step back

> What's Microfinance?

> What's Mifos?

> You?

Page 3: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

3

$ whoami

> Day job as Development Manager for the Design Studio product at Odyssey Financial Technologies, a leading financial technology company for the Private Banking, Private Wealth Management and Asset Management industries, with over 200 financial institutions in more than 30 countries as clients.

> Trivia: Jazoon 2007 speaker (“Pragmatic Model Driven Development (MDD) using openArchitectureWare”), co-author of “Core Java Data Objects” book; Android and Twitter addict! ;-)

> Mifos volunteer; so far mostly infra, some minor patches.(No official affiliation with the Grameen Foundation)

> Lives & works in Lausanne, Switzerland.

Page 4: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

4

$ ls /dev

Java Tomcat HTTP HTML CSS Struts XML Hibernate ORM JPA

Eclipse JDK JS MySQL Reporting Open Source PDF Security

Testing Spring Git Maven SSL Apache Hudson Subversion Performance BIRT

> All of you here know about this good stuff – but what do YOU use these technologies FOR?

> For the next 20', let's together look at why, how and towards what goal project Mifos uses all of the above...

Page 5: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

5

printf(“Hello World”)

> Six million children die of hunger every year, 17,000 every day.

> About 2.7 billion people live on less than $2/day (World Bank poverty definition; 2001 data).

> At a total world population of 6.8 billion - that’s 40% ...

> http://en.wikipedia.org/wiki/Poverty#Absolute_poverty

> http://en.wikipedia.org/wiki/Theories_of_poverty#Poverty_as_restriction_of_opportunities

> http://en.wikipedia.org/wiki/Extreme_poverty

> http://adamfeuer.com/2010/02/27/scaling-microfinance/

Page 6: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

6

$ man Microfinance & Microcredit

> Microfinance provides financial services to very low-income clients who lack access to traditional formal banking services.

– “Banking for the poor”

> Prof. Muhammad Yunus founded the Grameen Bank in the late 1970s in Bangladesh and successfully scaled profitable microcredits to millions of people.

– Nobel Peace Price 2006

> The Vision is to eradicate poverty by empowering the poor to help themselves.

– Yunus: “Our grandchildren should have to go to the museum to see what poverty was like.”

> Women form the huge majority of microcredit customers.

> Group / Solidarity Lending is common, creating a bond among a group of clients.

> Typically ~ 98% loan repayment (recovery) rate.

> Often only Loans, not Deposit (Savings) accounts (hesitancy among regulators)

Page 7: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

7

$ what MFI Users Clients

> A Microfinance Institution (MFI) lends the money to their Clients

– Typically “small” amounts ~ $100-ish

– MFIs range from small non-profit organizations to large commercial banks, with 90% of the available money going to the 130 largest MFIs.

> Loan Officers meet clients typically (bi)weekly to collect repayments. They often travel by riding bikes or motorbikes to the MFI's clients in the field.

– MFI is normally urban, while clients are both urban (shopkeepers, service providers, artisans and street vendors) and rural (e.g. small farmers)

> Mifos is the software used at the Microfinance Institution headquarter and/or Field Office. The Loan Officers are the “users” of the Mifos application in the technical sense.

Page 8: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

8

Page 9: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

9

Page 10: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

10

$ man GrameenFoundation

> Grameen Foundation USA "was founded to help microfinance practitioners and spread the Grameen philosophy worldwide (…) to enable the poor to create a world without poverty”.

– Progress Out of Poverty Index™

– Bankers without Borders® (Volunteers)

> MFI financing, helping with growth; provides loan guarantees for 50+ MFIs in 22 countries, link to capital markets

> Replicate successes elsewhere

> Grameen Technology Center:

– Mobile Financial Services

– Mobile Health

– Village Phone

– AppLab

– Mifos!

Page 11: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

11

$ man Mifos (MIcroFinance Open Source)

> Technology remains one of the major barriers inhibiting the expansion of microfinance globally. Many MFIs are reluctant to invest their limited resources in technology.

> To help microfinance scale to reach the hundreds of millions in need, Mifos transforms technology from a barrier into an accelerator for microfinance.

Page 12: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

12

fstat(“/dev/mifos”)

> http://sourceforge.net/projects/mifos/ registered 2004-11-19

> Initial release (and some early publicity) in 2006

> Winner of JavaOne 2009 Duke's Choice Awardfor Best Java Technology for the Open Source Community

> Google Summer of Code (2009 & 2010) student volunteer programs

> Today

– About 214 database tablesaccording to SchemaSpy job on http://ci.mifos.org/schema/head/latest/

– About 120'000 Lines of Code (NCSS, Non Commenting Source Statements) according to Sonar report on http://ci.mifos.org:9000/project/index/1

> Very active mailing list, bug tracker, and IRC channel

Page 13: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

13

$ arch --today

> Classical (2005-ish) Java web app non-EJB architecture!

– “MySQL / Hibernate / Struts / JSP”

> Eclipse BIRT used for some reporting

> Layering dependencies directionnot yet perfectly clean; somewhat“heterogeneous” when you lookat the code... (as many in-houseapplications are as well!)

– Changing technical ownership

– Elements of future architecturebeing incrementally added (e.g.Spring already, sometimes..)

– Functional Focus

Page 14: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

14

$ arch --future

> This is a “Future Architecture” diagram from a year ago...– Spring Core for IoC used now

– Templating via Freemarker started

– Spring MVC not really used

– OSGi transition not made

Page 15: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

15

$ cat Breakpad (Challenges)> “Concrete lessons learned, and challenges,

from the various deployments world-wide” :

> Better reporting (“Business Intelligence”)

– Going from tech. BIRT engine integrationto 15 std reports on a DW (Talend / Kettle ETL) for BI

> The Cloud! SaaS / PaaS (AKA Hosting)

– For small MFIs

– Early Amazon EC2 hosted service offering

> Integration & data migration tools and services

– For large MFIs, with existing systems

> Offline & Mobile

Page 16: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

16

# ifdown eth0 (Mifos Offline)> Re. Internet connectivity:

– Head or branch office is typically in a Internet-connected urban environment

– Typically the Loan Officers in the field “interface” the clients to the MFI, paper-based and manual updating of MFI's MIS in head or branch office (“collection sheet” feature)

> Making this process more efficient and less error prone is of interest... technical solution could be based on (from various recurring posts on the mailing list) :

– Saved HTML v5 offlineable “application” (formerly Google Gears), for laptop or mobile

– Simply an excel sheet import?! (carrying around any laptop, even fairly old)

– Java ME (J2ME) Application (widely available phones; or fancy Android/... smartphone)

– Mobile web UI accessed via data plan enabled phones (availability?)

– SMS gateway-based integration?

> Such a project needs primarily needs “functional” analysis, and local understanding of the real user need, and then the actual “technical” solution...

Page 17: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

17

# ifup wlan0Mifos Mobile integrations

> If the clients (the ultimate borrowers) could be brought “closer” to the MFIs, this would decrease the hassle of banking for clients, and dramatically decrease costs for MFIs, since each loan officer can handle more clients / less loan officers would be needed.

> Emerging “Mobile banking” is an interestingnatural fit for Microfinance... seach the webe.g. for M-PESA to learn more (http://en.wikipedia.org/wiki/M-Pesa)

> Mifos is doing a first such integration,with M-PESA

Page 18: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

18

# nmap Mifos (Deployments)

> Mifos is in production in Microfinance institutions in...

– India: Grameen Koota, headquartered in Bangalore (500,000 clients) ASOMI – Assam, India (33,000 clients) Adhikar - (83,000 clients)

– Tunisia: ENDA, Tunis (120,000 clients)

– Philippines: SECDEP, Iloilo (8,000 clients)

– Kenya: Jitegemea Credit Scheme, Nairobi (6,000 clients) KEEF – Nairobi (M-PESA integration) (13,000 clients)

– smaller ones also in Senegal and Ghana; and more than a dozen additional active deployments in progress in: India, Philippines, Kenya, Nepal, Mexico, Mozambique, Lebanon.

> More than 750'000+ clients accounts managed in Mifos deployments!

Page 19: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

Grameen KootaBangalore, India 500,000 Clients

Jitegemea Nairobi, Kenya 6,000 clients

ENDATunis, Tunisia 120,000 clients

Mifos Customers

Regional Mifos Presence

SECDEP iloilo, PH 8,000 clients

Mifos HQ

Open Source MIS Initiative launched by Grameen

Foundation in Nov 2006

Current Release – Mifos 1.5 Mifos customers

serving 750,000+ globally

Mifos CloudLaunched in 2009

KEEF Nairobi, Kenya 13,500 clients

SEM Fund Senegal 1,000 clients

Adhikar Orissa, India 82,000 clients

Assam, India 33,000 clients

# nmap Mifos (Deployments)

ASOMI

Al MajmouaBeirut, Lebanon 20,000 Clients

In-progress deployments

Page 20: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

20

HTTP://WWW ...

> http://mifos.org/

> http://www.youtube.com/watch?v=E0OGeRdluyU – Mifos Intro. Video

> http://www.gfspl.in - Grameen Koota, Bangalore/India – MFI using Mifos

> http://mifosforge.jira.com – 100+ issues tagged “volunteer” ...

> http://demo.mifos.org:8080/mifos/ – pwd/uid = mifos / testmifos

> https://ci.mifos.org/hudson & e.g. http://ci.mifos.org/schema/

> http://mifos.git.sourceforge.net/git/gitweb-index.cgi (very recent) and http://fisheye3.atlassian.com/changelog/mifos/ orhttp://mifos.svn.sourceforge.net/viewvc/mifos/ (previous SVN history)

> http://groups.google.com/group/mifosdeveloper> #mifos on irc.freenode.net & http://www.mifos.org/developers/listserv/irc-mifos/irc-logs

> http://twitter.com/mifos (@mifos)

Page 21: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

21

$ talk [email protected] – Get Involved!

> Join the global collaborative Mifos community and united effort to build and extend this platform that fuels innovation from the bottom up and empowers the poor to ascend out of poverty. There are many ways to get involved:

– Build acceptance tests

– Find & fix bugs (look around JIRA for open issues you could have a go at)

– Answer questions on users mailing lists

– Guide implementations on-site

– Write new or complete existing documentation

– Localize by translating documentation or Mifos UI using Pootle

– Localize by building local region-specific reports

> Get on the mailing and/or IRC and say Hello!People will point you to how and where you could contribute...

Page 22: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

22

Acknowledgments

> This presentation was prepared based on some material from, in collaboration with and reviewed by the grameenfoundation.org's

– Edward Cable

– Adam Feuer

– Adam Monsen

– Van Mittal-Henkle

– Jeff Brewster

– Emily Tucker

> Thank you!

Page 23: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

23

vlc mifos - Let's all... go to the Movies!

Page 24: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

24

Q & A

Q & A

Page 25: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

Michael Vorburger http://vorburger.ch

http://www.odyssey-group.com mike (at) vorburger.ch

@vorburger (Twitter)

Page 26: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

26

Additional Slides removed from presentation brevity (20 min.)

Page 27: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

27

Screenshot

Page 28: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

28

Screenshot

Page 29: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

29

Page 30: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

30

Documentation

> Look, there is even real end-user documentation! ;)

Page 31: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

31

Mifos Arch.> Internal services

coming along nicely; logical next step is remotely exposing a service façade... via WSDL/SOAP and/or REST API

> Grails (Groovy) or Spring Roo being thought about for a possible front-end re-make...

> Sexier UI via jQuery (with GWT?) mentionned...

> Soundsfamiliar??

Page 32: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

32

Mifos in the Cloud

> Particularly small MFIs generally don't have the people and other resources to run an enterprise application on their own premises by themselves, or host it themselves. Having the the application hosted, with managed backups, monitoring, software upgrades, etc., is what MFIs want - and reduces the friction of getting it up and running.

> A “click-and-go solution” on the cloud helps a lot and is quite feasible. Mifos already has an early Amazon EC2 hosted service offering, and small MFIs can just do data entry to get their data into Mifos.

> Lacking key functional features for this is integrated accounting, being worked on for several regions (accounting solutions vary by country).

Page 33: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

33

Mifos Business Intelligence (Reporting), Data Warehouse

> Functionally very important! A typically less “sexy” topic for many Java developers, but essential piece of the solution for MFIs to run their business.

> Complete end-to-end business intelligence system coming soon; will be built using open source tools...

> Based on data warehouse architecture

> ETL system - for keeping the data warehouse up to date, using probably Talend and/or Kettle ETL tools

> Reporting server with capability to serve HTML, PDF, XML, CSV, or other report formats

> Goal: 12-15 good standard reports

Page 34: Mifos: Ending Poverty One Line of Code at a Time (Jazoon 2010)

34

About Mifos (MIcroFinance Open Source)

> Microfinance has proven its power to alleviate global poverty by harnessing and unleashing the entrepreneurial spirit of the poor.

> Technology remains one of the major barriers inhibiting the expansion of microfinance globally. Many MFIs are reluctant to invest their limited resources in technology.

> To help microfinance scale to reach the hundreds of millions in need, Mifos transforms technology from a barrier into an accelerator for microfinance.

> Mifos is an open source technology platform for the microfinance industry. At its core is an enterprise-level web-based management information system (MIS) which gives MFIs a cost-effective, flexible system providing the key functionality needed to deliver the entire operations of effective financial services to the poor: loan portfolio and client management, transaction processing, and real-time business and social insight.

> Using Mifos, MFIs are able to grow more efficiently and extend more in-depth financial services through greater transparency, better agility, and broader visibility into their impact on the poor.