Mifos - OSCON 2010

20
Ending Poverty With Software Software Sli l bl ith O S Solving large problems with Open Source software, distributed teams, and Agile th d l i methodologies Adam Feuer, Van Mittal-Henkle, Adam Monsen Grameen Foundation Grameen Foundation Mifos Initiative

description

Ending Poverty With Software: Using Globally Distributed Teams to Tackle Difficult Problems

Transcript of Mifos - OSCON 2010

Page 1: Mifos - OSCON 2010

Ending Poverty With SoftwareSoftwareS l i l bl ith O SSolving large problems with Open Source software, distributed teams, and Agile

th d l imethodologiesAdam Feuer, Van Mittal-Henkle, Adam MonsenGrameen FoundationGrameen FoundationMifos Initiative

Page 2: Mifos - OSCON 2010

Poverty – a large problem

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

2 7 Billiy y , , y y

● 2.7 billion people live on less than $2/day

2.7 BillionPoor

4.1 Billion $2/day● (World Bank poverty definition; 2001 data).

40% f th t t l ld l ti f

Non-poor

● 40% of the total world population of 6.8 billion

● 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

2

Page 3: Mifos - OSCON 2010

Microfinance is key to ending poverty

● Financial services for the “unbanked”● Smooths irregular income flows● Provides cushion for emergencies● Expands economic activity

● Vision is to eradicate poverty by helping the poor to help themselves.● Yunus: “Our grandchildren should have to go to the museum to see what poverty was

like.”

● Prof. Muhammad Yunus founded the Grameen Bank in the late 1970s in Bangladesh and successfully scaled profitable microloans to millions of people.● Nobel Peace Price 2006Nobel Peace Price 2006

3

Page 4: Mifos - OSCON 2010

Lending to women

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

● Microcredit customers are mostly women

Gro p / Solidarit Lending is common creating a bond among a gro p● Group / Solidarity Lending is common, creating a bond among a group of clients.

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

4

Page 5: Mifos - OSCON 2010

5

Page 6: Mifos - OSCON 2010

6

Page 7: Mifos - OSCON 2010

7

Page 8: Mifos - OSCON 2010

8

Page 9: Mifos - OSCON 2010

Mifos – open source banking software

● To reach 2 billion people, you need web-based, scalable software

9

Page 10: Mifos - OSCON 2010

Basic Stats● 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 programs

Today● Today● About 214 database tables

according 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

10

Page 11: Mifos - OSCON 2010

team/tools/code – late 2007● team

● development in fits and spurts● no activity on IRC● no activity on IRC● unsearchable, unmirrored mailing lists

● tools● clunky ci server, manual backups, haphazard system monitoringclunky ci server, manual backups, haphazard system monitoring● subversion outages & performance issues (java.net svn)● parallel tracking/planning systems (Mingle + Issuezilla)

● code● cumbersome, unmaintainable build w/Ant (unknown jar versions!)● didn't know what version of our code our largest customer is using● monolithic codebase● Mifos only ran in JBoss and was only usable from Internet Explorer● insanely slow & cumbersome compile/edit/fix cycle

11

Page 12: Mifos - OSCON 2010

team/tools/code – Today!● team

● scrum with daily standups, iterations, burndown● this slideshow is a remix of one given by a volunteer● awesome IRC channel● searchable, multi-mirrored mailing lists

● tools● Hudson CI server, tested backups, awesome monitoring via OpenNMS● distributed version control (sf.net git)● single, powerful issue tracker and planner (JIRA Studio)

● code● predictable, modular build w/Maven (proper dependency management!)● codebase divided into modules, API and plugins● Mifos runs in any servlet container and is usable from any browser● much improved compile/edit/fix cycle (Eclipse WTP)● customers running known, tested versions of our code

12

Page 13: Mifos - OSCON 2010

Distributed, Agile, Awesome● documentation on FlossManuals.net (crowdsourced barnraisicalized synergy!)

● http://en.flossmanuals.net/Mifos/Welcomedi t ib t d d i i ki● distributed decision-making● http://www.mifos.org/developers/wiki/DeciderViaEmail

13

Page 14: Mifos - OSCON 2010

Communication BandwidthAs an open source team, how can we we communicate most efficiently?● The usual suspects:

M ili Li t Wiki P j t T ki T l (B ill Ji ) IRC● Mailing List, Wiki, Project Tracking Tools (Bugzilla, Jira), IRC● Higher communication bandwidth alternatives:

● Audio, Video, In Person

Higher communication bandwidth has reduced time to convey ideas, reach decisions build team cohesion (USA India Ireland Australiareach decisions, build team cohesion (USA, India, Ireland, Australia, Ghana-Africa)

Free tools that ork for sFree tools that work for us● Audio – skype● Video – tokbox

14

Page 15: Mifos - OSCON 2010

Team = Product

● Great communication = great team

● Great team = great product

15

Page 16: Mifos - OSCON 2010

Mifos Technology RoadmapLegacy micro-finance web application → financial services platform for offering

Legacy code was monolithic and used:• Hibernate, Struts, JSP

Integrated BIRT reporting• Integrated BIRT reporting

Lots of custom code:• Transactions• I18n• SecuritySecurity

16

Page 17: Mifos - OSCON 2010

Mifos Technology Roadmap (Target)

17

Page 18: Mifos - OSCON 2010

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: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)

Ans er q estions on mailing lists participate on IRC● Answer questions on mailing lists, participate on IRC● Guide implementations on-site● Write new or complete existing documentation● Translate Mifos UI or documentation● 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 can contribute.

18

Page 19: Mifos - OSCON 2010

Based on a presentation by Mifos volunteerMichael Vorburger

htt // b hhttp://vorburger.ch

Page 20: Mifos - OSCON 2010

Links● http://www.mifos.org● http://www.mifos.org/developers - Developer start page● http://www.youtube.com/watch?v=E0OGeRdluyU – Mifos Intro. Video● http://www.gfspl.in - Grameen Koota, Bangalore/India – MFI using Mifos● http://www.mifos.org/developers/wiki/MifosVolunteerProjects - Mifos volunteer

projects page● http://www.mifos.org/developers/wiki/TestServers - try Mifos● https://ci.mifos.org/hudson - continuous integration● http://ci.mifos.org/schema - schema diagrams● http://www.mifos.org/developers/wiki/MifosVersionControlGuide - source code● http://link.mifos.org/listserv - mailing listsp g g● #mifos on irc.freenode.net & http://www.mifos.org/developers/listserv/irc-mifos/irc-logs

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

20