Gav's Blog

She knows there’s no success like failure, and that failure’s no succes at all.

Archive for March, 2010

Leadership of the PHP project

without comments

This is a followup email that went out today to prompt new leadership of the Sahana PHP project.

In my long email nearly a week ago, I suggested that we dissolve the existing PMC. I would now like to start community discussion about forming a new PMC to provide the leadership that the PHP project requires, and has not received for a long time.

A brief reminder why I think the PMC should be dissolved
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.
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.

Tearing the old PMC down
If I had been off the mark in my original comments, I would have expected a lot of replies in the negative. I received none – neither publicly or privately. So, I can only assume that you agree with what I said, or you didn’t read my email ;)

I would like to put forward the following proposals to the community – this would effectively close down the existing PMC.
1. That the existing pmc@ email alias be closed down.
2. That we capture for historical and recognition purposes all the members of the PMC and record this on sahanafoundation.org

Do we need a new PMC? Can’t we just do it on maindev?
I would like to think that we can do everything in the open this time, e.g. the new PMC shouldn’t have a separate and private email list. Most of the reasons that the PMC was private originally are now being managed by the Board anyway. We need people to stand up and put their names behind the project, set direction, and lead. Being a part of the new PMC is about taking responsibility and publicly stating that you’re prepared to step up and lead the PHP project, and putting your name behind it.

Standing up a new PMC
I would also like discussion about how we could create a new PMC structure for the PHP project. I believe the membership of the PMC should follow a very different model to the old PMC. The old PMC was based around committership – which this is appropriate in a developer-led project (e.g. Apache HTTPD) with traditional CVS. I don’t believe it is an appropriate model where we are producing a domain-specific application. At the same time, as we move to a distributed CVS, the concept of commitership becomes far less important, and it all becomes about responsibility for merges back into the main repository.

I see there are two key areas that a new PMC needs:
1. It needs domain leadership – I would like to see people from the likes of CUNY and NIH be a part of leading the project from a domain perspective. They have some of our best end-user interaction, and having them on the PMC will be a key means of getting end-user feedback incorporated at a strategic level in the project.
2. It needs technical leadership – to act quickly and responsively to ideas and requests from the community around the likes of PHP framework choice, infrastructure, merges, and release management process (recognising that releases also need to be linked to the domain and end-user needs).

I think there are two simple membership rules (in concept) required for the new PMC.
1. Anyone that is prepared to take a leadership role in the project can join.
2. Anyone that becomes inactive or fails to ‘get things done’ is removed from the PMC (e.g. lack of participation in voting)

The PMC has to be about ‘getting things done’ and should no longer be a part of a coder>committer>PMC pathway. As this is not a developer-led project, but rather a domain-led project, the traditional developer pathway makes no sense.

First Actions for the new PMC
There are some urgent actions required by members of a new PHP PMC.
* Developing project and mentor capacity for GSOC 2010
* Consider tagging 0.6.2 as a dead branch (in terms of focusing volunteers at least)
* Identify the trunk for future development focus (I believe we should adopt the RELIEF branch)
* Future direction
* Oversee the PHP framework discussion
* Can PHP be differentiated from Python
* Is it an effective use of volunteer resource to move Sahana PHP to a modern PHP framework, or is it more effective to adopt Sahana Python (given they are already a solid 15 months ahead)

Implications for GSOC
If the Sahana Software Foundation is announced as a GSOC mentoring organisation later this week, and we don’t have an active leadership team for the PHP project, then it will be a lot harder to justify GSOC slots going to the PHP project. Remember that this year each project is going to be responsible for managing project selection, mentors etc. As a GSOC Admin for the Sahana Software Foundation – I (and David) need to see strong leadership and support available within the project to be able to make slots available to the project.

Want PHP to succeed? Then it’s time to step up?
Who is prepared to take responsibility and lead the PHP project forward? There are many names that come to mind given recent discussions – Kethees, Chad, Greg, Glenn, Chamindra. Please consider forming a new and active PMC this week as there is a lot that needs to happen. It is critically important that a leadership team is formed quickly and able to start coordinating some of the actions outlined above.

The future of the PHP project is in your hands – if you want it to succeed, now is the time to step up and play your part.

Cheers Gavin

Written by Gavin Treadgold

March 16th, 2010 at 1:36 pm

My letter to the Sahana community

without comments

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

Written by Gavin Treadgold

March 11th, 2010 at 2:01 pm