From: George C. <gc...@gm...> - 2011-07-12 22:01:09
|
Hi Van - I missed this when it came through last month. Here are a few thoughts based on what I'm seeing so far in Africa: >> also for you and the other engineers who have worked on MIfos: in a >> community model if there's less oversight, is there under-the-covers >> work that should be prioritized which will help keep Mifos stable and >> scalable as it goes forward in the community? > > Here's where some big questions come up. > > One hypothesis is that there are two classes of Mifos users-- Class 1: > larger MFIs who have a need for various extensions and customizations of > Mifos and who can take on some expense to do that and even host their > own infrastructure and Class 2: smaller MFIs who could likely manage > with fewer features and less extensibility and who would benefit most > from low cost hosted access to Mifos. > How to most effectively meet the needs of both users is tricky. > > We've been challenged by the current code base being difficult and > expensive to extend and maintain. We have made progress in improving > the code and certain areas of it are much easier to deal with now. > However, there is still a large amount of code left that needs > improvement. I agree with that hypothesis and i think you're dead on that it's gonna be hard - especially as the development time/energy on Mifos decreases in the future - to optimize for both/multiple audiences. The surveys/voting on features discussed on other threads is a good start at getting more MFIs engaged on direction setting for Mifos but I think we'll also have to take a decision as a community as to the overall strategic focus for Mifos. With fewer resources, Mifos can't be everything to everyone (it never could in the past either, but it's way more true now). I think the focus we had at Grameen Foundation - small to medium sized, visionary MFIs - was good. Doing the API development you talked about will also make it a lot easier (presumably) to build loosely coupled extensions to Mifos that don't necessarily have to be maintained by the full community, and hopefully would lower the QA/etc burden. > The most cost effective way to deliver a solution that can be > effectively hosted at very low cost (supporting multi-tenancy for > example) at this point looks like a rewrite that would pull in reusable > parts of Mifos but redo the basics from the ground up to get things like > multi-tenancy, transaction management, auditing, clean i18n, layered > architecture, separation of concerns and manageable tests in place. To > keep the cost of doing a rewrite low, it would help for the target > release to have fewer features and options than Mifos currently does. I guess the question there is: do we (the community) have the resources to do a rewrite like that? It sounds good in theory but if it takes 3 years and all of the limited community resources, it may not be as good for MFIs as living with the existing codebase. Does it make sense to have a thread on what has already been rewritten that could be reused, and what would need to be rewritten? We could see how much of the old code functionality could be pared away if we were super focused on a particular class of MFI. I looked at Keith's doc that you linked to - wonder if the thing that's missing is what we could lose without killing Mifos altogether. That said, if you and Keith and others just wanna rewrite the thing over the summer that would solve the whole problem. I'd offer to help, but I suspect my code would be a net liability rather than an asset. :-) > On the other hand, supporting larger existing and new MFIs and those > requiring the larger feature set currently supported by Mifos would > benefit from the current code base being extended and refined. The > difficulty here is that the cost to continue maintaining the current > code is high as is the cost to refactor and improve it. > > Keith and I are in agreement on the things that he already laid out > here: > http://mifosforge.jira.com/wiki/display/MIFOS/Technical+Roadmap+%28Post+ > Maya+G+and+onwards%29 > > This is a good list of how the current code base could be moved forward. > > > Replacing the current Struts/JSP based UI code with Spring/Freemarker is > the biggest single enabler for lowering the cost of maintaining and > extending Mifos. It leads to: > * API creation across the application (by achieving complete separation > of business logic from presentation code) > * simplified transaction management > * simplified i18n > * improvement of layered architecture > * reduction and simplification of test code interesting, that sounds like a good place to start - especially in the "Projects" model that Ed was talking about. I won't likely be hiring engineers in Africa until September at the earliest, but this is super helpful in thinking about where we might focus efforts when/if the business/org I'm scoping out comes online. Cheers, -george George Conard US: +1 206 778 7429 Kenya: +254 (0) 705 038 704 Ghana: +233 (0) 54 975 4222 www.georgeconard.com gc...@gm... @GeorgeConard |