Charles Miller, Confluence Architect

Confluence 2.3 was released on January 4th 2007, afer a gruelling eight month long development cycle, the longest gap between releases in the history of the product. Going dark for so long was quite painful for us, in terms of lost opportunities and lost momentum. Customers started wondering if we'd lost our way.

So how do you recover from that?

Quite famously, Microsoft spent the last five years developing Vista, the successor to Windows XP. Vista was slated to make some huge improvements to XP: a hardware-accelerated, composited desktop, revolutionary search and database services, new APIs, desktop widgets, and a host of new applications for things like calendaring and photo management.

Apple, who had spent a lot of the late 1990's making aborted attempts to produce a next-generation operating system, finally got their act together by releasing OS X 10.0 in 2001. It had a new look-and-feel, a composited desktop and the base of a new set of developer APIs. At a steady pace over the next five years, they incrementally added hardware acceleration, calendars, photo management, desktop widgets, revolutionary search, and lots of new APIs to boot. They even tweaked the look and feel with each release, so the OS X of five years ago, with its slightly too enthusiastic abuse of pin-stripes and transparency, looks quite dated today.

Apple-watchers also learned to play a new guessing game. Each revision of the operating system would contain changes to applications, APIs or the filesystem that didn't seem to have anything to do with the published features. From these under-the-hood changes, it was possible to make astute guesses as to features that didn't make it into that release, but might show up in the future.

We weren't thinking about any of this after Confluence 2.3 came out. We just knew that for us, eight months was far too much time between drinks. Following the advice of the Extreme Programmers, we decided to turn the knobs up to eleven and see what happened. If a short release cycle was a good idea, how about a really short release cycle? Say... six weeks of development?

So after we'd at least partly calmed the glut of support cases caused by the 2.3 release, that's exactly what we did. Confluence 2.4 would be developed in a strict six week time-box from inception to release. Anything we had done at the end of those six weeks we'd ship. Anything not finished would be safely tucked away where nobody could see it, and carried over to the next development cycle. Features that might take a couple of months to complete would be planned over several releases, where before we might have just done one long stretch.

What does this mean for our customers? Quite simply, for the next six months or so, Confluence releases will be much more frequent, but each individual release will contain significantly less new stuff.

  • This is good for new customers, as new features will be available sooner. Once we've finished something, it'll be out and in peoples hands as soon as possible.
  • This is good for existing customers who are waiting on specific features. If you want editable comments, you can get them tomorrow and not wait until we've finished some other feature that the release was waiting on.
  • This is annoying for anyone who feels obliged to upgrade to the latest and greatest. It's best to pick your own schedule for upgrades, and only break that schedule if the new release contains one of your absolute must-have feature requests.
  • This is even more annoying for plugin developers. We're going to have to be a lot more careful about changing APIs that third-party plugins might rely on. Breaking everything twice a year was bad. Breaking everything three times a quarter would be suicidal.

Would I recommend this to other development teams? So far, absolutely. Paring things down to fast, frequent releases has been a great way to keep people focused on delivering. You know exactly what the date is that you need to be done by (as opposed to my almost-infamous-within-Atlassian "four to six weeks" estimate for Confluence 2.3), and if you miss that cut-off, you know you're not going to have to wait too long for the next opportunity.

Whether it's sustainable in the long term, I'm not sure yet. We'll see.

6 Comment(s)

So, 2.4 should be out about. . err. . now? :)

By Pete Shaw at February 27, 2007 3:22 AM

Development on 2.4 has completed, development on 2.5 has commenced, but the release is just pending a few annoying side-effects of trying to coordinate a release across two continents.

By Charles Miller at February 27, 2007 7:08 PM

Fun for your development team, yes. Fun for people deploying who've made changes to their installs, we'll soon find out ;)

By Phil Wilson at February 28, 2007 1:07 PM

Can you give a date on when you plan to release v2.4

We are about to shift our installation from test servers to a main server, and if a new release is coming, it might suit us better to wait until it's released as our guys are fairly busy at the moment.

By Elias at March 4, 2007 7:11 PM

2.4 does have some nice things (thank you!) and would be a good upgrade if I was confident that it works as good as current installed version. Sorry, but there is not a good track record with that. And that is way more important to any administrator than a short release cycle. For instance, I see "(view change)" is gone again. Still a happy Confluence user though!

By Anonymous at March 13, 2007 6:32 AM

Actually, the short release cycle goes a long way towards reducing regressions as well, as it forces us to checkpoint back to a releasable product every six weeks and not pile changes on top of changes between releases. It also forces us, when doing major work, to work incrementally and keep the product stable during development, and not give in to the "break everything then clean it up later" approach that is so tempting when a deadline is a long way away.

As far as "View Changes" missing goes, I think I know what particular flaw in our bug-fixing procedure caused that regression, and I've got a good idea how to prevent similar problems happening again.

By Charles Miller at March 13, 2007 7:02 AM

Post a comment

If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.





Remember personal info?

Type the characters you see in the picture above.