Home > Open source, Openstack, Ubuntu > The value of Open Development

The value of Open Development

October 23, 2012 Leave a comment Go to comments

Mark’s recent blogpost on Raring community skunkworks got me thinking. I agree it would be unfair to spin this story as Canonical/Ubuntu switching to closed development. I also agree that (as the damage control messaging was quick to point out) inviting some members of the community to participate in closed development projects is actually a step towards more openness rather than a step backwards.

That said, it certainly is making the “closed development” option more official and organized, which is not a step in the right direction in my opinion. It reinforces it as a perfectly valid option, while I would really like it to be an exception for corner cases. So at this point, it may be useful to insist a bit on the benefits of open development, and why dropping them might not be that good of an idea.

Open Development is a transparent way of developing software, where source code, bugs, patches, code reviews, design discussions, meetings happen in the open and are accessible by everyone. “Open Source” is a prerequisite of open development, but you can certainly do open source without doing open development: that’s what I call the Android model and what others call Open behind walls model. You can go further than open development by also doing “Open Design”: letting an open community of equals discuss and define the future features your project will implement, rather than restricting that privilege to a closed group of “core developers”.

Open Development allows you to “release early, release often” and get the testing, QA, feedback of (all) your users. This is actually a good thing, not a bad thing. That feedback will help you catch corner cases, consider issues that you didn’t predict, get outside patches. More importantly, Open Development helps lowering the barrier of entry for contributors to your project. It blurs the line between consumers and producers of the software (no more “us vs. them” mentality), resulting in a much more engaged community. Inviting select individuals to have early access to features before they are unveiled sounds more like a proprietary model beta testing program to me. It won’t give you the amount of direct feedback and variety of contributors that open development gives you. Is the trade-off worth it ?

How much as I dislike the Android model, I understand that the ability for Google to give some select OEMs a bit of advance has some value. Reading Mark’s post though, it seems that the main benefits for Ubuntu are in avoiding early exposure of immature code and get more splash PR effect at release time. I personally think that short-term, the drop in QA due to reduced feedback will offset those benefits, and long-term, the resulting drop in community engagement will also make this a bad trade-off.

In OpenStack, we founded the project on the Four Opens: Open Source, Open Development, Open Design and Open Community. This early decision is what made OpenStack so successful as a community, not the “cloud” hype. Open Development made us very friendly to new developers wanting to participate, and once they experienced Open Design (as exemplified in our Design Summits) they were sold and turned into advocates of our model and our project within their employing companies. Open Development was really instrumental to OpenStack growth and adoption.

In summary, I think Open Development is good because you end up producing better software with a larger and more engaged community of contributors, and if you want to drop that advantage, you better have a very good reason.

Categories: Open source, Openstack, Ubuntu
  1. October 23, 2012 at 17:45

    I can definitely attest to this. After I attended the OpenStack Bexar Summit in San Antonio I became an advocate for OpenStack both inside Cybera and outside. Due to the completely open nature of the Summit I immediately perceived OpenStack’s potential. I haven’t looked back since.

    Thanks for articulating this Thierry.

  2. Thomas Kluyver
    October 23, 2012 at 20:52

    I see where you’re coming from, but I think the needs of Ubuntu are quite different from those of Openstack. For Ubuntu, it’s quite important to get plenty of publicity when a cool new feature is announced. And when Ubuntu describes a new feature, excitable users will want to try it out and judge it straight away. I imagine the people deploying their own clouds with OpenStack have considerably more patience.

    • Thierry Carrez
      October 23, 2012 at 21:59

      Nothing prevents you from developing (in the open) a feature in some PPA and make some splash when it hits the distro. That would give you (almost) the best of both worlds. I agree it would not make a Steve-Jobs-style splash, but it would retain the benefits of open development.

    • Thierry Carrez
      October 24, 2012 at 08:47

      Or think of it another way: does Ubuntu really need the PR splash ? Most software companies (including proprietary ones) decided otherwise and grabbed some benefits from beta testing programs. The (successful) counter-example is Apple, but in their case they need to wow their users enough to distract them from a bad value proposition: pay for a whole new device to get an incremental improvement. That’s the illusion field of magic: convince people to look at the wrong place.

      • Thomas Kluyver
        October 24, 2012 at 11:06

        Ubuntu will still benefit from beta testing. What Shuttleworth describes isn’t entire products kept secret until release. In current practice, early development of a feature like the HUD is done under wraps, but it’s publicly announced before release. There’s no indication that that ‘public at beta’ model will change.

        I also don’t think it’s a ‘code drop’ model, where the source is available but real development is closed. I trust Ubuntu that once a project is announced, development will proceed in the open. I don’t have a problem with projects being incubated in private for a while first.

  3. Stephen Michael Kellat
    October 23, 2012 at 22:39

    Mr. Shuttleworth had the colloquialism wrong. A skunkworks is a very, very dark project akin to Area 51. The proper business speak term is “Opening The Kimono” which is what is truly happening.

  4. October 24, 2012 at 05:56

    I think the same reasons that apply to Google and Android applies to Canonical and Ubuntu. IE, they may have negociated some deals with selected OEMs, or plan to do so.

  5. Marcus Moeller
    October 24, 2012 at 07:00

    The idea of a closed community does not really fit into the Open Source development model. Free Software development is based on the power of openness and transparency. It is about getting more ppl to participate.

    What Mark plans, is a classic business development model, adopted to Free Software. This might work as long as you treat your users as customers, not as community participants.

    As Free Software advocate I want ppl to take part, in order to improve the ecosystem in general. This is why I want to lower the barriers to take part, as much as possible.

  6. October 24, 2012 at 13:34

    “In summary, I think Open Development is good because you end up producing better software with a larger and more engaged community of contributors, and if you want to drop that advantage, you better have a very good reason.”

    You might produce “better” software from a technical perspective – which, unfortunately, usually is all developers might think about. You will certainly not produce better software from a design (in the meaning of aesthetics and beauty) and usability perspective — committees ruin these almost per definition.

    Open development might be great when you work on something like the Linux kernel or the Apache web server. However, you will not create beautifully designed application software with that approach that normal people – read: users that do not write code – will want to use.

    I’m pretty sure that the Ubuntu folks want to reach those normal people. And they are probably also convinced that you are more likely to reach this audience with smaller teams that focus on the actual idea instead of large teams with too many different perspectives that can at best reach a compromise that eventually is not loved by anybody.

    • Thierry Carrez
      October 24, 2012 at 13:47

      I see where you’re getting at, though I think Open Development does not mean you can’t make strong decisions (or opinionated design decisions). If you have a very respected project leader that is designated / elected to make the final call, it generally works very well… I basically don’t think you have to drop transparency and feedback loops to achieve great design.

  1. October 23, 2012 at 20:23
  2. October 24, 2012 at 13:00

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s