My letter to the Sahana community
This is an email I mailed to the Sahana developer community and the Sahana Software Foundation Board on the 10th of March following recent discussions about branding and the perceived competition between Sahana (PHP) and Sahana (Python).
Sigh. So much for getting on top of my inbox.
/me takes all official role hats off, stores them in the soapbox and steps up
I’m intending to lay down a challenge to many preconceived ideas and current thinking. I believe little will be achieved unless we can collectively – as a community – come to some agreements, and get more things done. So I’m going to be brutally honest – it is time we discussed some of the failings, accept them, and look at where we should go from here.
What is Sahana?
Sahana is not software. Sahana is an ideal to use free and open source software to improve information management before, during and after emergencies, disasters, and providing humanitarian aid. The ideal of Sahana will live long beyond any software project we currently have. The ideal itself was around before[1][2] Sahana and will likely outlive anything we do. I am still committed to this even if all our software projects and the foundation were to turn to dust.Sahana (PHP) was the original Sahana.
No it wasn’t. The original Sahana was Mambo. And PHP. And Perl. And Java. And probably some other languages that I can’t remember. Sahana (PHP) was not the first, it was phase 2 and that was rewritten from the ground up. Perhaps one of our biggest mistakes in hindsight was not coming up with a clearer name then other than Sahana phase 1 and phase 2.Our existing contributions will be lost.
No they won’t. This is open source, and once a contribution has been made the contribution is there until someone updates or modifies your original contribution. The code is always accessible from repositories. This isn’t a closed-source proprietary project. The only contributions that will be lost will be future contributions of those that opt out of the community. As long as you hold to the ideal of free and open source software for emergencies, disasters and humanitarian aid – then you’re in the right place.It’s Sahana (Pythons)’s fault. Or the Board’s.
No, actually, it is the leadership of the PHP project’s fault, and as one of the members of the PMC, I have to shoulder some of that blame like many other people here. Fran et al raised many issues in 2008 about not only the core framework of Sahana PHP, but also infrastructure. He and others tried to work within the PHP project, BUT NOTHING EVER HAPPENED. He tried to work within the rules but the PHP PMC failed him completely. In the end, Fran et al did exactly the right thing to do with open source software and fork/recode. The PHP PMC never ever made any decisions to modernise or improve the core framework. We never responded to Fran’s issues, and now, nearly a whole year later, we still have not made much progress on project infrastructure. It is entirely the PHP PMC’s fault for showing a lack of leadership, and not getting things done. I am honestly at the point where I believe the current PHP PMC is dysfunctional, and I would like to see a brand new leadership team form by those that want to take the reigns of Sahana (PHP). The only thing that Fran et al did wrong was to use the Sahana brand without permission.Personally, I have become increasingly unwilling to contribute my time to the PHP project because it takes a long time to get things done. If they are done at all. Fran et al have demonstrated that they are prepared to do the hard yards, and focus on development. I applaud their attitude, and when it comes to where I’m willing to put my volunteer time, it is increasingly coming down on the Sahana (Python) side. Honestly, I should have just shut up and learnt to code (again) many years ago.
Likewise, there have been many stunning contributions to Sahana (PHP) both in bug fixing and adding new features. These developers have also been caught up in the complete lack of leadership provided by the Sahana (PHP) PMC.
Why hasn’t Sahana (PHP) adopted modern frameworks and technologies?
Don’t blame this on the PMC or Board. I don’t recall seeing formal proposals come to either for approval. Again, like many other things, plenty of discussion, but no-one ever appeared to pick it up and run with it. There was talk of an experimental Zend branch, but I haven’t heard further discussion on this, or a call for other PHP developers to join in and support the experiment. Again – I assume that the talk has gone nowhere.On Branding.
Quite simply, both projects (PHP and Python), have fallen into the same trap of branding based on a developer worldview, rather than thinking about how we communicate in 5 words or less what our products do to end users, and how we differentiate them. We need a complete and utter rethink of branding, and I am increasingly favouring the Apache approach whereby Sahana becomes an umbrella brand and as Sanjiva highlighted, the various projects become Sahana {project}.Disaster Management System will probably need to go too. Increasingly, the international approach is towards Comprehensive Emergency Management[3]. We have to fit in with our end users, and for the increasing majority of them, this is Emergency Management. The concept of Humanitarian Aid is only used in countries without well developed EM systems, and many development projects are working towards helping countries develop more robust EM arrangements e.g. WorldBank and/or Asian Development Bank projects are building local emergency management capacity and capability. So from a domain perspective, Emergency Management is probably the key phrase to focus on for branding purposes for potential end users.
Should the Sahana name be earned?
In due course, yes it should. We are not at the point now where it is workable, but I would like to believe that in a few years, we could define minimum standards for interoperability, and any software application (as opposed to library, or other project) would have to meet some minimum standards of interoperability to be entitled to be called Sahana {project}. Sahana must become a quality standard, and any application that wears its badge should meet some minimum requirements. As well as standards, there are other aspects that should be considered including testing/quality, and the capacity to support remote deployments for extended periods.Where to from here for Sahana (PHP)?
Personally, I think Sahana (PHP) has a lot of work to do to recapture momentum and accept that big change is needed. Some next steps would probably be:
* accept that 0.6.2 is a dead branch and archive it
* accept that Camp Roberts RELIEF 10-1 is the active branch and treat this as trunk
* dissolve the existing PMC
* let a new leadership team form from whoever is interested in leading the project forward – this should not be developer-only, but should include developers, users and anyone that has a stake in Sahana (PHP) and is prepared to lead it onwards and upwards.
* immediately start work on a new framework (someone suggested moving to Zend a while back – don’t forget this is open source software and you can create an unofficial branch, and just do it).
* or, and this is potentially a very difficult decision, consider whether there is too much work to update Sahana (PHP) and consider moving to support Sahana (Python). If it doesn’t take much work to modernise Sahana (PHP), then great, but if it involves a massive amount of work, then it is better for us all that we build upon the work that has already been done by Sahana (Python).Shouldn’t businesses be driving Sahana?
There is a mixture of approaches to development of open source software, including anarchy, business-supported and non-profit. Which is the right one? Depends on the solution(s) being developed. I think that long-term, we’ll need both non-profit and business. There are situations when a non-profit e.g. Foundation is a better vehicle for development and attracting funding for developers. At other times businesses are much better for managing contractual development, deployment and support. At this point, I think the Foundation is filling much of the vacuum, but I hope that this year, we will see much more active leadership and support from both Respere and AidIQ. I actively welcome these two companies to step up and push the development of their respective projects. In all honesty, they have better interaction with end users than many of us, and are best placed to close the feedback loop to improving our software applications.Is it time for a tough decision?
I believe it is.It is time for me to fully lay my cards on the table. I’ve been involved with Sahana phase 2 since mid-2005. Like many others here, I have invested not only hundreds of volunteer hours in Sahana (probably over a thousand now, but I gave up counting a long time ago) but also a few thousand dollars in airfares, and have probably lost a great many dollars in terms of opportunity cost. I’m as much the volunteer contributor as anyone here, and I haven’t even managed to contribute something tangible such as code
![]()
That said, I care little for the past, because we can’t change it. I care everything about the future and where we should head to from here – the future is everything, it is the only thing we can change, and we must focus on that.
I think we would be doing a significant disservice to our potential end users by continuing the confusion of having two software application products that we have not managed to clearly differentiate.
Following the initial Sri Lankan deployment in early 2005, the decision was made that what was effectively Sahana phase 1, was not a good foundation to build upon, and that a ground up rewrite was needed. Sahana phase 2 was born. But we are now continually running up against leadership and fundamental framework issues in phase 2. I believe we are now at the point where it is becoming fairly clear that Sahana phase 2 is not providing a platform that is going to take us well into the decade we have just started. It has given us 5 great years, but I don’t believe it can take us another five. We definitely do not have a leadership team within the current PMC to accomplish that.
I would like to suggest, again personally and with no role hats on, that we accept that it is perhaps best that we wrap up new development on Sahana phase 2. This of course does not mean it is the end or that contributions are wasted. I believe we should encourage any end user interested in Sahana phase 2 to approach Respere and obtain development and support from them. No code will ever be wasted, and it would quite likely have better project leadership than we are currently seeing. The only code that would be wasted would be if we were to now attempt to migrate Sahana (PHP) to a modern framework when the majority of that work has already been completed with Sahana (Python).
I, personally, believe it is time for the volunteer development community to move on. I believe that it is now more appropriate than ever to encourage volunteer developers to focus on Sahana (Python) and to actively promote this as Sahana phase 3 – which fits with the ongoing approach since 2005. The Haiti deployment in early 2010 of Sahana (Python) clearly indicates that it is a modern and workable system. It has a team with strong leadership and the ability to make decisions and move the project forward. It has responded to many of the issues raised against Sahana (PHP). With the surge of development that is occurring since the Haiti earthquake, it now has a solid 18 months of development behind it, a significant real-world deployment, and has been seen by a lot of potential end users. It is probably easier now to port modules from PHP to Python than it will be to implement a new framework in PHP.
We need a modern and attractive focal point for volunteer developers to focus on. I don’t believe that we can provide that using Sahana (PHP) but we can with Sahana (Python).
Please consider what I have presented carefully. If we continue to divide the volunteer development community I think we will all fail – most of us know this, but few have been prepared to air it until recently. Better that we now make a clear decision, within the public community, to end serious volunteer development on Sahana (PHP) and try to rally as many developers as possible around Python as the phase 3 successor to phase 2.
A number of developers have indicated that they don’t mind PHP or Python, but you don’t like having to choose or having resources divided. I have been mulling this for a long time, and more recently discussing it with individuals, but I think the choice has at last become fairly obvious.
The time has come for Sahana phase 2 to move to maintenance-only (and of course paid support and further development is always available from Respere), and for the volunteer community, as a whole, to accept Sahana (Python) as the main development version for volunteer developers. Naturally, if volunteers want to continue support and development of PHP there is nothing stopping them, it is after all open source software.
Sahana (PHP) has done a fantastic job over the past five years, but I think it is time we seriously consider handing the baton over to Sahana (Python) to take us the next five. This is essential not because of the technology, but for community stability and providing a united front to the world at large.
Respectfully yours,
Gavin
[1] http://sourceforge.net/projects/osveoc/ (registered 2003-08-08)
[2] http://www.rediguana.co.nz/gav/2004/02/01/emergency-management-and-open-source-software/
[3] http://www.iaem.com/publications/documents/PrinciplesofEmergencyManagement.pdf