This one should be really short, because it's more of an open ended question and some food for thought than a long exploration of a tangly topic. That question is: are we doing enough to ensure that projects that start to wobble a bit don't fall off the rails, crash and burn on us?
Every so often someone approaches me (or, more rarely, I approach them) to let me know that their project is in trouble in some way. Since this is a recurring issue for KDE (and other F/OSS projects, too), we can expect it to continue (and in larger numbers as our product count grows). It seems we most often just fail to identify the problem spots until it's gone a bit too far. The price we pay is great applications will stall even start to "bitrot" without achieving their full potential. There is no time like the present, however, so this made my list of Key Quests for 2010.
What's at the root of projects wobbling to their own demise? There are two issues that most often arise, and in both cases they seem to present an "unsolvable" roadblock to further development. This happens due to either technical issues such as an upstream project causing problems, or due to social issues such as one or more of the key developers no longer having the time or ability to work on the project, though on rare occasions it's due to disagreements between active contributors (though I can count the number of times that's been a real problem since I've been around KDE on my hands :).
We have a couple projects that are flagging right now and which I'm a bit concerned about. You may also be aware of some. I don't think that the sky is falling or anything; most of our projects are really rather healthy, but we can do better here, especially for the projects that are experiencing some downtime. How can we help them out?
One solution to the social issue of people dropping off due to life changes is to ensure that no one person is absolutely critical to the project in such a way that their leaving would kill the project. A constant stream of new developers is needed, and that's something we can all help with. We do a pretty good job of it already, with a pretty impressive rate of new commit accounts being generated. Can we more effectively direct some of these new hands to old projects that need them? Would it make sense in some cases for a few of us to descend upon a particular application and help get it moving again with a few months of involvement and a good jolt of energy?
The "nasty arguments" social situation is thankfully far rarer. A good, positive, supportive community really helps there, and our terrific Community Working Group fills in so many of the remaining gaps. They really are unsung heroes in the project at times. :)
For the technical issues, it is often a matter of getting the "right" people talking with each other and encouraging some creative thinking. That means that many technical issues can find solutions with some social work. Sometimes a face-to-face meeting is the best answer, and that's something that KDE e.V. can help with if there is one of us working out the logistics. This isn't rocket science, so can we get more developer sprints going where they are needed?
I enjoy helping with these things as I can, especially when it helps bring smiles back to the faces of the people I care about (read: everyone in KDE) and the code rolling in svn again. There are a few people in KDE who do this kind of work, but having more people involved in doing some health monitoring and even some nursing as necessary would be great.
I also wonder what other things we could be doing to help keep projects on their feet?
(This article is part of the "Key Quests for KDE in 2010" series)