Creating Experience Teams

I want to use this entry as an opportunity to throw open the floor for discussion and brainstorming of a topic we first discussed at UDS in Orlando. I really welcome your comments, suggestions, and advice.

One of the interesting things about Ubuntu is that there are many different forms of contribution (typically skills such as development, packaging, translations etc) and different types of tasks (such as fixing bugs, creating documentation, packaging new applications etc).

Traditionally Ubuntu has been very much of an iterative method of contributing; we always have lists of things to do such as bug lists, translation string lists, merge proposals, the sponsorship queue etc. As such, many forms of contribution maintaining and tending to these lists and chipping away at them. Thankyou to everyone who helps to participate in this way.

One interesting piece of critique we have seen as Ubuntu has taken a more design-orientated direction is that “it is difficult to participate in design in Ubuntu“. I am not interested in getting into a debate over this in this entry (although I am sure some of you will want to anyway ;-)); there is some truth to this critique, but there is also some great work going on to help create a more collaborative environment in the design team. Many thanks to the team for doing this work.

When people offer this critique what they are usually referring to when they say “design” is “unity“.

In reality though, Unity really isn’t all that interesting. Unity is a tiny part of Ubuntu; the mere frosting around the edges that lets you find and start applications, find and load files, and other bits and pieces. Unity is cool, but Ubuntu is much more than Unity.

“That’s it, I’m moving”.

Ubuntu is really about experiences. How can I create a video of my kid’s first birthday? How can I listen to my music on my remote speakers? How can I show my photos on my TV? How can I record a song with my dad? How can I buy an album and listen to it in my car?

The Architecture Of An Experience

Each of these examples are the kind of things our users look for in Ubuntu, and I am sure you folks can think of many other examples of cool things we could do in Ubuntu.

With Ubuntu being an Open Source collaborative community, every one of us can help to bring one of these experiences to fruition. While Canonical invests heavily in Ubuntu and focuses on certain experiences, there is absolutely no reason why our community can’t create other awesome experiences too, or refine the ones we already have.

If anyone can do it, it is these people.

Making an experience come to fruition requires some coordination though; it is rarely a one-person job. Imagine you want to create an experience to stream music to a remote set of speakers. Creating this experience will likely require different pieces at different levels of the Ubuntu stack. For example, it might require certain ALSA or PulseAudio features, integration in Rhythmbox or Banshee, and then some UI to expose the feature to users.

Creating and delivering an experience will also require different skills to deliver it. It might require some programming if the features required don’t exist upstream, will need some packaging to integrate it into Ubuntu, and then require testers, documentation writers, bug-fixers and possible translators. Fortunately, we are community; we each bring our own skills to the fold.

As such, when we decide we want to deliver an experience there are set of technologies that fit together and a set of skills required to help connect these pieces together like Lego bricks to deliver the experience.

Creating Experience Teams

The session we had at UDS was to discuss methods in which we can encourage and support the formation of experience teams; that is, create an environment in which our community can form groups easily to collborate and build these kinds of experiences.

Let me give you an example. Imagine we want to create the stream music to a remote set of speakers experience that we discussed earlier. I think you could summarize this experience down (and many others) into requiring the following core skills:

  • Project Coordinator(s) – people to form a team, find others to participate, put together a roadmap for the team, and help people to successfully create the experience.
  • Programmers – people to write any code neccessary to deliver the functionality in the experience (not required if this functionality exists upstream).
  • Packagers – people to integrate the different components in the experience together.
  • Testers – people to test the experience, report bugs, and triage issues etc.

What I would like to open up for discussion here is how we can optimize our community to help people form these teams, have a great time collaborating together to create something, and deliver it in Ubuntu. What tools, facilities, support, and cheerleading can we provide to help make this happen?

That counts.

Off the top of my head I think these are some of the things that could help these teams form:

  • An ideas board – we would need a place to post ideas for experiences (arguably Brainstorm already does this, so we could potentially harness that) and help to inspire others in delivering those experiences.
  • A jobs board – with a place to share ideas, we would need a means in which people can form teams around those experiences. How do provide a means to connect community members with an itch to contribute with projects that need their skills.
  • A project management facility – I think we really have these tools already in place. We have Launchpad blueprints, the awesome which Martin Pitt and Chris Johnson helped to build, and other facilities to run projects effectively.
  • Mentoring and Support – I would love to see our leadership teams help to support and provide guidance for these teams in helping them to deliver their experiences.

In a nutshell, we should make it simple for a community member to have an idea for an experience, be able to find others who share a passion for creating the experience, and be able to harness the motivation and support of our community to be successful in creating the experience.

I would like to open this up in the comments for ideas and suggestions for how we could make this happen. How do you think we can provide a place to share these experience ideas and build teams around them? How do we help these teams to be successful? Would you be interested in helping to create these facilities?

  • Benjamin Kerensa

    I like the idea of having a central job board or task engine to connect those with an “itch” to contribute with those who have work to delegate. I think it might be interesting to see a job board like you suggested with some sort of search based front-end to allow people with the “itch” to match their skills with tasks/roles that need a contributor.

    perhaps a based on OpenHatch ( ?

  • Anonymous

    Those are all very consumer/home/media experiences. Are there any thoughts about creating experiences for office scenarios?

  • Andrew_tattom

    I do like the idea of community inspired and created features, but I don’t agree with your dismissal of Unity criticism. Unity may be a small part of Ubuntu, but a steering wheel is a small part of a truck, if it doesn’t work as you expect it to, things become frustrating very quickly.

  • Keith

    Harnessing the power of the community! Potentially a great idea, there are so many talented community members spread out across Ubuntu universe. It makes sense to create these teams as and when needed, to either start or finish a project, make them as dynamic as possible with relatively short life-spans so nobody feels like they are getting involved in something they can not commit to long term. Maybe decide the teams to be created around when the beta period of a development cycle as the final features are frozen. Then by UDS/Alpha 1 who can have them in place to drive a project forward?

    I like the openhatch suggestion. Ask Ubuntu and the Ubuntu Forums could promote a similar style Ubuntu site. Though this runs the risk of placing talented contributors out of reach as they get involved in other projects, but I imagine the effect would be negligible. The projects will have to clearly defined, everything from the type of skills required, a timeline and preferred goals. 

    Maybe follow the ‘pledge music’ format for getting projects started. For instance a ‘brainstorm’ idea is chosen, the timeline/goal stated, then it awaits for people to pledge to the project. Once the minimum is met the project gets off the ground and the pledged people should hopefully produce the objective. This could be a huge benefit for people looking for a lens for instance for a application. The lifecycle of such projects could be measured in days. Networking will play a huge part on such a site, with people being able to contact others ‘suggest’ experience teams to others and so on.

    There could be even a potential learning aspect, a large project could set up an experience team to develop a group of peoples skills in order to help take part in other projects…but I am probably getting ahead of myself here.

    I think the potential is vast for this, if you can develop a site that can harness all these elements effectively.

  • Anonymous

    For the love of God.  Since when did practical tasks become ‘experiences’?  Drop the moronic marketing doublespeak.  You could literally s/experience/task/ that whole document and it’d make a load more sense.  People need useful software which helps them achieve their goals, not spin.

    Now, with the BS rant out of the way.  Yes, community involvement is always better.  Opensource only exists because of community effort.  Good stuff.

  • Zachary Shriker

    The only thing I can see being a problem to utilizing the community is that no one knows how or in what way to help. When you try to get involved, you usually are thrown into a user unfriendly world of setting up accounts, figuring out how the bug report system works, if you want to contribute art to icon sets it gets even more complicated. I actually do some graphic design and could do bug reports but usually when I get to the point where I’m being told “set up an account, password requires letters, numbers, one capitalization but not the first and one symbol” I say to myself “I’m never going to remember this password and this bug report is going to end up being a second job. screw it, someone else will report the bug”

  • Guest

    Why reinvent the wheel? For a year or two, until it no longer meets our needs, why not simply use openhatch or similar?

  • Ian Weisser

    Brainstorm is ready. Just add a ‘new-team’ tag to an idea.

    If there’s a way to make it readier, ping us in IRC #ubuntu-brainstorm, and we’re happy to discuss.

    We’re happy to let new-team or experience ideas grow and develop for 30 days, and longer if useful to gather momentum. (Generally if an idea hasn’t caught fire in a month, then it won’t)

  • Pasi

    Hey Jono,

    could you somehow explain how these “experience teams” would differ from the functional teams we already have; like Ubuntu Artwork team for artists et cetera?

    As you noticed yourself, many of the assets to help getting the teams set up are already waiting to be used, and are actually used too.

    Rather than building something completely new, including forming new teams and/or creating new assets, why not focus on helping the users getting started with Ubuntu? There is the Beginners team which has mentors, and they are able to point people the right path to achieve various things.

    I agree with you that we will need people who are willing to gather people together and, as turned out in the previous discussion about UDS, keep asking and encouraging them to keep contributing to things they have previously committed to. I don’t know if we need a “jobs board” to be able to achieve this though, since a software will not be able to build same kind of momentum in any team than a human can do.

  • Graham Lucking

    I am posting a link to a thread on Ubuntu Forums. It shows that there are talented people supporting Ubuntu who are not part of any official development team and may not be able to join one, and who feel left out of the project.

    This idea of yours might be a way for people to add value to Ubuntu and feel part of the project without giving the solid commitment that they are unable to give.