Wednesday August 06, 2008
07:18 PM
Free Software Project Management Axioms
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.
Successful projects are for developers (Score:1)
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.
alpha/beta/rc axiom? (Score:1)
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.
Re: (Score:1)
While I'm not object*ing* to the point...
Re: (Score:1)
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
Re: (Score:1)
So true! Though, at least you'll get smoker reports...
Re: (Score:1)
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.
Sensible (Score:2)
Book title: Open Source Project Management (Score:2)
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
Re: (Score:1)
That's a good idea, especially the business perspectives. The most similar book is Karl Fogel's excellent Managing Open Source with CVS [red-bean.com], which doesn't go into this much detail on releases.
Re: (Score:2)
Are you sure you aren't thinking of Karl's "Producing Open Source Software" book?
http://producingoss.com/ [producingoss.com]
-- ask bjoern hansen [askbjoernhansen.com], !try; do();
Re: (Score:1)
Somehow I confused both into one book. Thanks for the correction!
Volunteers and "scut" work (Score:1)
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.
Re: (Score:1)
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.