Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

chromatic (983)

chromatic
  (email not shown publicly)
http://wgz.org/chromatic/

Blog Information [technorati.com] Profile for chr0matic [technorati.com]

Journal of chromatic (983)

Wednesday August 06, 2008
07:18 PM

Free Software Project Management Axioms

[ #37114 ]

Jesse admitted (in private, anyhow) that my crazy ideas about free software release cycles and support plans may have some merit. He also asked me to explain them in much more detail than pithy quotes in email and on IRC.

First, I want to assert some axioms. I'm doing this separately so that anything which isn't immediately obvious as true can trigger a lot of comments and discussion separate from my thoughts on release cycles and support. Here goes.

  • Small, frequent upgrades are easier to manage than large, infrequent upgrades.
  • Development freezes longer than a week don't work.
  • You can't make volunteers produce work on defined schedules.
  • Feature-based releases expand to fill all available time until someone feels guilty for not finishing the feature on a magical, wish-fulfillment schedule, and hey, has it been a couple of years already?
  • A release with even one improvement over the previous release is worth releasing on a time-based schedule.
  • (Almost) no one but contributors will test an alpha, beta, gamma, or release candidate in the same way that (almost) no one but contributors wants to run nightly trunk builds.
  • The only reliable way to get real feedback from real users is to give them a real release.
  • Users may complain that a feature doesn't exist, but at a fraction of the volume than if you remove a feature they thought they might want.
  • Handing boring scut-work to volunteers is a great way to reduce their motivation.
  • It's possible to release software every month without burning out volunteers, patch managers, pumpkings, release managers, or testers -- and the software can get better every month.
  • Revision numbers are meaningless, except insofar as they increase monotonically. Revision identifiers (alpha, beta, release candidate) are evidence of an unhealthy release process.
  • Rapid deprecation cycles are okay if you provide migration tools.
  • Supporting more than two stable versions of a piece of software purely through volunteer effort is crazy.
  • If downstream makes substantial changes to the code or to the release process, downstream has just volunteered to support those changes.
  • If your project is under active development, the longer the period between stable releases, the less relevant your project is.
  • Users who want critical bug fixes and new features without actually upgrading their software also want magic flying candy-dropping ponies.

I expect there may be a few objections to these sixteen axioms.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I remember Aaron Farr having some interesting
    principles of free software project development.

    One thing I think he said was that the most
    successful ones involve developers. That is
    they are producing software developers use.

    I think he mentioned exceptions like OpenOffice.

    One other thing he talked about was how
    users become contributors.

    I wish I could remember what he said.

  • While I'm not object to the point, I would like to have it somehow explained.

    Other points are either self-explanatory, or simply obvious, but I don't immediately see why alpha/beta/rc releases are necessarily evil.

    • While I'm not object*ing* to the point...

    • I don't immediately see why alpha/beta/rc releases are necessarily evil.

      In the first place, they're ineffective as tools for gathering feedback. There's no substitute for getting your software to actual users and hearing directly from them what works and what doesn't work.

      Worse, I believe they're fundamentally at odds with the practice of done done [jamesshore.com]. If you get in the habit of releasing software with features you think probably aren't complete, you think are mostly complete, or you're pretty sure are com

      • In the first place, they're ineffective as tools for gathering feedback.

        So true! Though, at least you'll get smoker reports...

        • I prefer to get daily smoker reports from trunk and significant branches. Hourly reports are even better.

          The shorter the period between an action and its feedback, the more you can learn from the experience and the faster you can correct an incorrect action.

  • These all seem quite sensible. Now where are you going with this? ;-)
  • I really would like to see a book about Open Source Project Management.

    It should include both how one can run an open source project - stuff you started to write in the journal but also other things such as

    • How to run an OS project when you are a company e.g. MySQL or better yet some other company that decided to release - some of - its code under some OS license.
    • How could a company use the OS strategies you mention in their not open source products?
    • How could a company use the OS strategies in their in
    --
  • From my experience managing my church's web team, people really don't mind menial work so long as the work is valued and appreciated, and doing the work is fun.

    There were folk who would volunteers hours every month updating web site content, changing pictures, proofreading and checking for dead links. We'd get together at somebody's house, or a coffee shop with wifi, and just work.

    Not only that, but menial tasks are a great way for people to get introduced to a project, and for them to do that at low risk.

    • Good point. There's a difference between the game development model of making everyone do tech support or manual QA before coding or design and having non-coding tasks available for interested volunteers. The latter can be enjoyable and rewarding.