Posts Tagged ‘UDS’
In our first few years, Ubuntu experienced explosive growth, from zero to millions of users. Because Ubuntu is an open project, these people don’t just use Ubuntu, but can see what’s happening next and influence it through suggestions and contributions. The volume of suggestions quickly became unmanageable through ad hoc discussion, because the volume of feedback overwhelmed the relatively few people who were actively developing Ubuntu.
In order to better manage user feedback at this scale, Ubuntu Brainstorm was created in 2008. It’s a collaborative filtering engine which allows anyone to contribute an idea, and have it voted on by others. Since then, it’s been available to Ubuntu developers and leaders as an information source, which has been used in various ways. The top ideas are printed in the Ubuntu Weekly Newsletter each week. We experimented with producing a report each release cycle and sharing it with the developer community. People have been encouraged to take these suggestions to the Ubuntu Developer Summits. We continue to look for new and better ways to process the feedback provided by the user community.
Most recently, I asked my colleagues on the Ubuntu Technical Board in a meeting whether we should take responsibility for responding to the feedback available in Ubuntu Brainstorm. They agreed that this was worth exploring, and I put forward a proposal for how it might work. The proposal was unanimously accepted at a later meeting, and I’m working on the first feedback cycle now.
In short, the Technical Board will ensure that, every three months, the highest voted topics on Ubuntu Brainstorm receive an official response from the Ubuntu project. The Technical Board won’t respond to all of them personally, but will identify subject matter experts within the project, ask them to write a short response, and compile these responses for publication.
My hope is that this approach will bring more visibility to common user concerns, help users understand what we’re doing with their feedback, and generally improve transparency in Ubuntu. We’ve already selected the topics for the first iteration based on the most popular items of the past six months, and are organizing responses now. Please visit brainstorm.ubuntu.com and cast your votes for next time!
For some time now, we’ve been gearing up to begin development on Ubuntu 11.04. While some folks have been putting the finishing touches on the 10.10 release, and bootstrapping the infrastructure for 11.04, others have been meeting with Canonical stakeholders, coordinating community brainstorm sessions, and otherwise collecting information about what our priorities should be in the next cycle.
We’re using what we’ve learned to plan the Ubuntu Developer Summit next week in Orlando, where we’ll refine these ideas into a plan for the cycle. We’re organizing UDS a little bit differently this time, with the main program divided into the following tracks to reflect the key considerations for Ubuntu today:
- Application Developers – Making it faster, easier, and more enjoyable to develop and distribute new applications on (and for) Ubuntu
- Cloud – Delivering the best experience of cloud computing, whether hosting in a public cloud or building your own private cloud
- Hardware Compatibility – Measuring and improving compatibility with a wide range of laptops, netbooks, servers and desktops
- Multimedia – Formulating the best software stacks for graphics, audio and video in Ubuntu
- Package Selection and System Defaults – Choosing the right components to keep Ubuntu lean, flexible and ready-to-run, while ensuring that the pieces fit and work together cleanly
- Performance – Squeezing the best performance out of today’s free software stack, from the Linux kernel and GNU toolchain through user interfaces
- Ubuntu the Project – Continuously improving the way we work together to produce Ubuntu, both within the project and with our upstream and downstream partners
You can click on the links above for a preview of the schedule for the week, with links to more detailed blueprints which will develop during and following UDS. If you’ll be joining us in person, then I’ll see you there! If not, be sure to review Laura’s guide on how to participate remotely.
This is a repost from the ubuntu-devel mailing list, where there is probably some discussion happening by now.
After each UDS, the organizers evaluate the event and consider how it could be further improved in the future. As a result of this process, the format of UDS has evolved considerably, as it has grown from a smallish informal gathering to a highly structured matrix of hundreds of 45-to-60-minute sessions with sophisticated audiovisual facilities.
A survey can’t tell the whole story, though, so I would also like to start a more free-form discussion here among Ubuntu developers as well. I have some thoughts I’d like to share, and I’m interested in your perspectives as well.
The core purpose of UDS has always been to help Ubuntu developers to explore, refine and share their plans for the subsequent release. It has expanded over the years to include all kinds of contributors, not only developers, but the principle remains the same.
We arrive at UDS with goals, desires and ideas, and leave with a plan of action which guides our work for the rest of the cycle.
The status quo
UDS looks like this:
This screenshot is only 1600×1200, so there are another 5 columns off the right edge of the screen for a total of 18 rooms. With 7 time slots per day over 5 days, there are over 500 blocks in the schedule grid. 9 tracks are scattered over the grid. We produce hundreds of blueprints representing projects we would like to work on.
It is an impressive achievement to pull this event together every six months, and the organizers work very hard at it. We accomplish a great deal at every UDS, and should feel good about that. We must also constantly evaluate how well it is working, and make adjustments to accommodate growth and change in the project.
How did we get here?
(this is all from memory, but it should be sufficiently accurate to have this discussion)
In the beginning, before it was even called UDS, we worked from a rough agenda, adding items as they came up, and ticking them off as we finished talking about them. Ad hoc methods worked pretty well at this scale.
As the event grew, and we held more and more discussions in parallel, it was hard to keep track of who was where, and we started to run into contention. Ubuntu and Launchpad were planning their upcoming work together at the same time. One group would be discussing topic A, and find that they needed the participation of person X, who was already involved in another discussion on topic B. The A group would either block, or go ahead without the benefit of person X, neither of which was seen to be very effective. By the end of the week, everyone was mentally and physically exhausted, and many were ill.
As a result, we decided to adopt a schedule grid, and ensure that nobody was expected to be in two places at once. Our productivity depended on getting precisely the right people face to face to tackle the technical challenges we faced. This meant deciding in advance who should be present in each session, and laying out the schedule to satisfy these constraints. New sessions were being added all the time, so the UDS organizers would stay up late at night during the event, creating the schedule grid for the next day. In the morning, over breakfast, everyone would tell them about errors, and request revisions to the schedule. Revisions to the schedule were painful, because we had to re-check all of the constraints by hand.
So, in the geek spirit, we developed a program which would read in the constraints and generate an error-free schedule. The UDS organizers ran this at the end of each day during the event, checked it over, and posted it. In the morning, over breakfast, everyone would tell them about constraints they hadn’t been aware of, and request revisions to the schedule. Revisions to the schedule were painful, because a single changed constraint would completely rearrange the schedule. People found themselves running all over the place to different rooms throughout the day, as they were scheduled into many different meetings back-to-back.
At around this point, UDS had become too big, and had too many constraints, to plan on the fly (unconference style). We resolved to plan more in advance, and agree on the scheduling constraints ahead of time. We divided the event into tracks, and placed each track in its own room. Most participants could stay in one place throughout the day, taking part in a series of related meetings except where they were specifically needed in an adjacent track. We created the schedule through a combination of manual and automatic methods, so that scheduling constraints could be checked quickly, but a human could decide how to resolve conflicts. There was time to review the schedule before the start of the event, to identify and fix problems. Revisions to the schedule during the event were fewer and less painful. We added keynote presentations, to provide opportunities to communicate important information to everyone, and ease back into meetings after lunch. Everyone was still exhausted and/or ill, and tiredness took its toll on the quality of discussion, particularly toward the end of the week.
Concerns were raised that people weren’t participating enough, and might stay on in the same room passively when they might be better able to contribute to a different session happening elsewhere. As a result, the schedule was randomly rearranged so that related sessions would not be held in the same room, and everyone would get up and move at the end of each hour.
This brings us roughly to where things stand today.
Problems with the status quo
- UDS is big and complex. Creating and maintaining the schedule is a lot of work in itself, and this large format requires a large venue, which in turn requires more planning and logistical work (not to mention cost). This is only worthwhile if we get proportionally more benefit out of the event itself.
- UDS produces many more blueprints than we need for a cycle. While some of these represent an explicit decision not to pursue a project, most of them are set aside simply because we can’t fit them in. We have the capacity to implement over 100 blueprints per cycle, but we have *thousands* of blueprints registered today. We finished less than half of the blueprints we registered for 10.04. This means that we’re spending a lot of time at UDS talking about things which can’t get done that cycle (and may never get done).
- UDS is (still) exhausting. While we should work hard, and a level of intensity helps to energize us, I think it’s a bit too much. Sessions later in the week are substantially more sluggish than early on, and don’t get the full benefit of the minds we’ve brought together. I believe that such an intense format does not suit the type of work being done at the event, which should be more creative and energetic.
- The format of UDS is optimized for short discussions (as many as we can fit into the grid). This is good for many technical decisions, but does not lend itself as well to generating new ideas, deeply exploring a topic, building broad consensus or tackling “big picture” issues facing the project. These deeper problems sometimes require more time. They also benefit tremendously from face-to-face interaction, so UDS is our best opportunity to work on them, and we should take advantage of it.
- UDS sessions aim for the minimum level of participation necessary, so that we can carry on many sessions in parallel: we ask, “who do we need in order to discuss this topic?” This is appropriate for many meetings. However, some would benefit greatly from broader participation, especially from multiple teams. We don’t always know in advance where a transformative idea will come from, and having more points of view represented would be valuable for many UDS topics.
- UDS only happens once per cycle, but design and planning need to continue throughout the cycle. We can’t design everything up front, and there is a lot of information we don’t have at the beginning. We should aim to use our time at UDS to greatest effect, but also make time to continue this work during the development cycle. “design a little, build a little, test a little, fly a little”
- Concentrate on the projects we can complete in the upcoming cycle. If we aren’t going to have time to implement something until the next cycle, the blueprint can usually be deferred to the next cycle as well. By producing only moderately more blueprints than we need, we can reduce the complexity of the event, avoid waste, prepare better, and put most of our energy into the blueprints we intend to use in the near future.
- Group related sessions into clusters, and work on them together, with a similar group of people. By switching context less often, we can more easily stay engaged, get less fatigued, and make meaningful connections between related topics.
- Organize for cross-team participation, rather than dividing teams into tracks. A given session may relate to a Desktop Edition feature, but depends on contributions from more than just the Desktop Team. There is a lot of design going on at UDS outside of the “Design” track. By working together to achieve common goals, we can more easily anticipate problems, benefit from diverse points of view, and help each other more throughout the cycle.
- Build in opportunities to work on deeper problems, during longer blocks of time. As a platform, Ubuntu exists within a complex ecosystem, and we need to spend time together understanding where we are and where we are going. As a project, we have grown rapidly, and need to regularly evaluate how we are working and how we can improve. This means considering more than just blueprints, and sometimes taking more than an hour to cover a topic.
I spent last week at the Ubuntu Developer Summit in Belgium, where we kicked off the 10.10 development cycle.
Due to our time-boxed release cycle, not everything discussed here will necessarily appear in Ubuntu 10.10, but this should provide a reasonable overview of the direction we’re taking.
While most of our time at UDS is spent in small group meetings to discuss specific topics, there are also a handful of presentations to convey key information and stimulate creative thinking.
A few of the more memorable ones for me were:
- Mark Shuttleworth talked about the desktop, in particular the introduction of the new Unity shell for Ubuntu Netbook Edition
- Fanny Chevalier presented Diffamation, a tool for visualizing and navigating the history of a document in a very flexible and intuitive way
- Rick Spencer talked about the development process for 10.10 and some key changes in it, including a greater focus on meeting deadlines for freezes (and making fewer exceptions)
- Stefano Zacchiroli, the current Debian project leader, gave an overview of how Ubuntu and Debian developers are working together today, and how this could be improved. He has posted a summary on the debian-project mailing list.
The talks were all recorded, though they may not all be online yet.
The Foundations team provides essential infrastructure, tools, packages and processes which are central to the development of all Ubuntu products. They make it possible for the desktop and server teams to focus on their areas of expertise, building on a common base system and development procedures.
Highlights from their track:
- Early on in the week, they conducted a retrospective to discuss how things went during the 10.04 cycle and how we can improve in the future
- One of their major projects has been about revision control for all of Ubuntu’s source code, and they talked last week about what’s next
- We’re aiming to provide btrfs as an install-time option in 10.10
- In order to keep Ubuntu moving forward, the foundations team is always on the lookout for stale bits which we don’t need to keep around anymore. At UDS, they discussed culling unattended packages, retiring the IA64 and SPARC ports and other spring cleaning
- There was a lot of discussion about Upstart, including its further development, implications for servers, desktops and the kernel, and the migration of server init scripts to upstart jobs
- After maintaining two separate x86 boot loaders for years, it looks like we may be ready to replace isolinux with GRUB2 on Ubuntu CDs
The desktop team manages both Desktop Edition and Netbook Edition, on a mission to provide a top-notch experience to users across a range of client computing devices.
Highlights from their track:
- A key theme for 10.10 is to help developers to create applications for Ubuntu, by providing a native development environment, improving Quickly, improving desktopcouch, making it easier to get started with desktopcouch, and enabling developers to deliver new applications to Ubuntu users continuously
- With more and more touch screen devices appearing, Ubuntu will grow some new features to support touch oriented applications
- The web browser is a staple application for Ubuntu, and as such we are always striving for the best experience for our users. The team is looking ahead to Chromium, using apport to improve browser bug reports, and providing a web-oriented document capability via Zoho
- Building on work done in 10.04, we will aim to make simple things simple for basic photo editing
- Security-conscious users may rest easier knowing that the X window system will run without root privileges where kernel modesetting is supported
The server team is charging ahead with making Ubuntu the premier server OS for cloud computing environments.
Highlights from their track:
- Providing more powerful tools for managing Ubuntu in EC2 and Ubuntu Enterprise Cloud infrastructure, including boot-time configuration, image and instance management, and kernel upgrades
- Improving Ubuntu Enterprise Cloud by adding new Eucalyptus features (such as LXC container support, monitoring, rapid provisioning, and load balancing. If you ever wanted to run a UEC demo from a USB stick, that’s possible too.
- Providing packaged solutions for cloud building blocks such as hadoop and pig, Drupal, ehcache, Spring, various NOSQL databases, web frameworks, and more
- Providing turn-key solutions for free software applications like Alfresco and Kolab
- Making Puppet easier to deploy, easier to configure, and easier to scale in the cloud
Kiko Reis gave a talk introducing ARM and the corresponding opportunity for Ubuntu. The ARM team ran a full track during the week on all aspects of their work, from the technical details of the kernel and toolchain, to the assembly of a complete port of Netbook Edition 10.10 for several ARM platforms.
The kernel team provided essential input and support for the above efforts, and also held their own track where they selected 2.6.35 as their target version, agreed on a variety of changes to the Ubuntu kernel configuration, and created a plan for providing backports of newer kernels to LTS releases to support deployment on newer hardware.
Like the kernel team, the security team provided valuable input into the technical plans being developed by other teams, and also organized a security track to tackle some key security topics such as clarifying the duration of maintenance for various collections of packages, and the ongoing development of AppArmor and Ubuntu’s AppArmor profiles.
The QA team focuses on testing, test automation and bug management throughout the project. While quality is everyone’s responsibility, the QA team helps to coordinate these activities across different teams, establish common standards, and maintain shared infrastructure and tools.
Highlights from their track include:
- There was a strong sense of broadening and deepening our testing efforts, mobilizing testers for specific testing projects, streamlining the ISO testing process by engaging Ubuntu derivatives and fine-tuning ISO test cases, and reactivating the community-based laptop testing program
- In support of this effort, there will be projects to improve test infrastructure, including enabling tests to target specific hardware and tracking test results in Launchpad
- There is a continuous effort to improve high-volume processing of bug reports, and two focus areas for this cycle will be tracking regressions (as these are among the most painful bugs for users) and improving our response to kernel bugs (as the kernel faces some special challenges in bug management)
The design team organized a track at UDS for the first time this cycle, and team manager Ivanka Majic gave a presentation to help explain its purpose and scope.
Toward the end of the week, I joined in a round table discussion about some of the challenges faced by the team in engaging with the Ubuntu community and building support for their work. This is a landmark effort in mating professional design with free software community, and there is still much to learn about how to do this well.
The community track discussed the usual line-up of events, outreach and advocacy programs, organizational tools, and governance housekeeping for the 10.10 cycle, as well as goals for improving the translation of Ubuntu and related resources into many languages.
One notable project is an initiative to aggressively review patches submitted to the bug tracker, to show our appreciation for these contributions by processing them more quickly and completely.
At the recent Ubuntu Developer Summit, there were three sessions held to discuss the future of the Ubuntu Women project. Unfortunately, I was unable to attend the first two, because I didn’t realize the first one was happening, and I had a scheduling conflict for the second. The first session was video recorded, and hopefully the recording will be made available soon. While attending the third and final session, I tried to catch up on the earlier discussion as I listened to what was being said.
The first thing I noticed in the Gobby notes was a link to an existing roadmap for Ubuntu Women. I hadn’t seen that document before, and was encouraged to see that it included concrete, measurable goals for increasing the participation of women in Ubuntu. In particular, it presents a goal of increased representation in Ubuntu governing bodies, which I think is an important step in promoting gender diversity in the project. People want leaders they can identify with.
The next thing I found in the document was a list of goals. I asked about the relationship between the goals in Gobby and the ones in the wiki roadmap, and someone explained that the goals in the wiki were long term, while the ones in Gobby were short term (to be completed in the 6-month Lucid cycle).
There were about 25 people attending the session, and most of the talking was done by Amber Graner, Elizabeth Krumbach, Laura Czajkowski, Jono Bacon and Kurt von Finck. It was Friday afternoon, the last day of an intense week, and the energy level was fairly low. The focus seemed to be on reviewing the group’s objectives and agreeing who would take the next steps. The objectives were as follows:
Clarify the purpose of the #ubuntu-women channel
The group seemed to feel that there was confusion about what this IRC channel was for. A couple of men in the room said that they didn’t know whether they could or should join the channel, because it had the word “women” in the name.
The core of the issue seemed to be less about purpose than governance. The group was concerned about the fact that the channel was not publicly logged like most other Ubuntu channels, and that this gave the impression of it being a “fiefdom” within the community, or a place where people would “gossip”.
As far as I’m aware, there is at present no requirement that Ubuntu channels (official or unofficial) must be publicly logged, and there are many channels which are not. If this is considered to be a requirement for a healthy IRC community, then the Ubuntu IRC council would be in a good position to put forward such a policy. I don’t think I have enough experience in regulating IRC discussions to say whether this is the right thing to do, but it seemed a bit odd to me that this came up in the context of #ubuntu-women. It isn’t clear to me what problem this is meant to solve, and whether it is consistent with precedent (again, I’m not very familiar with IRC governance).
There was some confusion over why folks might not want the channel to be logged. Kurt suggested that if the conversation adhered to the Code of Conduct, there should be no reason not to publish it. I suggested that there were many occasions where a conversation might be appropriate to keep “off the record” while still following the code of conduct, and that these were separate issues (standards of behavior versus privacy).
The group’s agreed actions on this topic included agreeing and documenting guidelines for behavior in #ubuntu-women, and arranging for the conversations in the channel to be publicly recorded.
Create a safe space IRC channel
This objective seemed to acknowledge that something would be lost if the conversations in #ubuntu-women were made a matter of public record. The group therefore proposed the creation of a separate channel, which would still be logged, but only the Community Council would have access to the logs.
The reason for this seemed to be, again, the need to ensure regulation, and the concern that without oversight, channel participants would misbehave. While a safe space does require oversight in order to be maintained, the goal of involving the CC seemed to be general governance of behavior rather than the safety of women. The group seemed to acknowledge that this idea needed more work, and in particular wasn’t satisfied with the terminology of safe space.
The agreed actions were to create the new channel, document guidelines for behavior in it, and arrange for the conversation there to be logged for the Community Council.
Appoint a leader of the Ubuntu Women team
The group seemed to feel that, in order for the team to meet its goals, it was important to implement some form of government, and that the appropriate structure (at least initially) would be to have a single leader. They proposed to define the responsibilities of such a role, solicit nominations from the community, and ask the Community Council to appoint a leader.
I asked why the team could not appoint their own leader, and they explained that the team was not well defined enough, e.g. the Launchpad team is open for anyone to join. Without explicit membership, it’s difficult to organize a fair election. They suggested that the appointed leader would go about organizing the team to the point where it could govern itself more effectively.
There seemed to be some concern that this would be controversial.
Change the perception of Ubuntu Women
After the written goals had been reviewed, Amber said that in her view, the true value of the sessions had been to change the perception of Ubuntu Women in the community, and that the perception had been very negative. All of the vocal participants agreed with this assessment, seemed to feel this was an important problem to solve, and felt that great progress had been made during the course of UDS.
I was surprised by this, because I hadn’t encountered this perception myself, and so I asked to hear more about it. Several people asserted that that there was a problem, that Ubuntu Women and/or its IRC channel were perceived in a negative light. Two men in the room offered anecdotes: one didn’t think he should join the IRC channel because it had “women” in the name (which seems like a different issue), and another said that someone in his LoCo had advised him to avoid it because it was hostile.
I didn’t really understand all of this, but I didn’t want to derail the conversation, particularly as I had missed the first two thirds of it. In talking to people following the event, the issue at hand seems to be the IRC channel, #ubuntu-women, rather than Ubuntu Women itself. The channel, at one point, had become a sort of common meeting place for women in various geek communities, and was a place where they would sometimes blow off steam, or conduct broader feminist discussions beyond the scope of Ubuntu Women. This was apparently a bit off-putting to the uninitiated, as well as to some of the channel’s regular participants.
Some time ago, #ubuntu-women reverted back to its original purpose and the other discussion moved elsewhere, but it seems that this perception remained among some members of the Ubuntu community. This also may explain why I’ve been hearing that people are confused about the difference between Geek Feminism and Ubuntu Women, because some of the same people are involved in both, and discussed both on #ubuntu-women.
Hopefully that’s the end of this apparent stigma, and Ubuntu Women can get on with the business of helping the Ubuntu community to welcome more women.
This week, I’m in Dallas, Texas working at the Ubuntu Developer Summit. Hundreds of Ubuntu developers and other community members are gathered to discuss the future of the project, particularly the 10.04 release. Developers are engaged in technical discussions about how to implement new features for the release next April.
Obviously, a week is not enough time to decide, design and plan half a year of work, but we try to fit as much as possible into the week, because it is such a rare opportunity for us to work together face to face. In order to make the best use of our time, there is a very full schedule of sessions, and we do a great deal of advance preparation.
There is a persistent rumor that UDS is where we decide what to do in the next cycle, but this isn’t quite accurate. UDS is where we primarily figure out how to do what needs to be done. Naturally, UDS is a sea of ideas, thanks to all of the creative thinking which happens among attendees, and we do dream up and decide to do new things there. However, most of this is determined well before we all board airplanes to travel to UDS.
Brainstorm is constantly collecting and ranking suggestions from Ubuntu users. Ubuntu development teams hold public meetings on IRC where they discuss ideas and plans. Canonical stakeholders submit requirements for their needs. All of this information is aggregated, sorted, evaluated and prioritized, largely by the heroic engineering managers at Canonical, who then develop the core of the agenda for UDS. Additional sessions are then added as they come up during the week, when there is space.
At this particular UDS, I am moderating the server track, where we’re hashing out the details of our projects for Ubuntu Server Edition 10.04. Being a UDS track moderator makes for a very busy week, with back-to-back sessions all day for five days straight. It’s only Wednesday, and I’m feeling a bit fried already, having been away from home for over two weeks.
In each session, there is a discussion between the developers working on the project, the other UDS attendees who are interested in it, and any random folk who listen in on the audio stream and add questions or comments via IRC. The participants take notes using Gobby and then publish them in the Ubuntu wiki, where they are developed into specification documents tracked in Launchpad.
Those specifications are further broken down into work items, which we can use to maintain a burn down chart. Rick Spencer, our desktop engineering manager, gave a presentation this afternoon about how that process will work. The burn down chart will give us a tool for establishing whether we are on track to complete our work, or if we are under or over committed, and make adjustments to our plans as needed.
I have a sense of tremendous momentum going into this release cycle, which will culminate in our third LTS (long-term support) release of Ubuntu.
We are a large community, but only a small number of people can travel to attend UDS in person. So, over the years, we’ve experimented with different approaches to enable remote participation in UDS. If you participated in UDS remotely (for example, using the audio feed, IRC, Gobby, etc.), please tell us about your experience by filling out this survey:
If you registered to attend in person in Barcelona, you’ll be receiving an email with a (different) link to the (same) survey. Please use that one instead, so that we can easily sort feedback from local and remote participants.