Tuesday, September 29, 2009

Rant: Putting closure on a project

OK, one of my rants about open-source projects: A lot of open-source developers have a hard time putting closure on a project. For example, in the 1980s, Stan Shebs created a game called Xconq. He revised it and even rewrote it in the 1990s. In the early 2000s, he posted to the Xconq mailing list a roadmap for Xconq. A few years after this, Xconq languished; it was transferred to Sourceforge around 2005, with the last release being done on June 12, 2005.

In 2006, when someone asked if Xconq was dead on the mailing list, they were told “It's not dead, it's... resting.”. But, at this point, Xconq was dead; while a few CVS changes were done after this, the last CVS commit was done in 2007 and the project has been completely moribund since then.

Xconq is dead.

OK, big deal. A lot of open source projects come and go. My issue is this: As an open-source developer, I have a responsibility to put closure on my projects. When a given open-source project is something I realize I have no interest in working on any more, I let the project go, via a formal announcement. For example, I announced the end of my Kiwi Spam program on October 17, 2001; while I got a couple of emails expressing disappointment the project had ended, I never got a maintainer for the project. Recently, after making a few minor updates to ObHack, my fork of a random map generator for Doom-type games, I announced I would no longer be working on this code. There was enough interest in the code I was able to hand over maintenance duties over to Fritz, who has since then fixed a bug I never fixed and made a couple of releases of ObHack.

Closure is, IMO, very important for an open-source project. It tells the world “I’m responsible enough to know when to start a project, and, just as importantly, when to finish a project.” It allows the community of users to know you’re no longer interested in a project, making it possible for them to become the maintainer if there is still interest in a given project (such as what happened with ObHack).

Everything has a beginning and an end. A responsibly done open-source project is one that knows when it’s time to pack up and go home.