Ubuntu Promises and Goals
So far, this book has been about the prehistory, history, and context of the Ubuntu project. After this chapter, the book will focus on the distribution itself. Before proceeding, it's important to understand the goals that motivated the project.
The most important goals of the Ubuntu project are philosophical in nature. The Ubuntu project lays out its philosophy in a series of documents on its Web site that are important enough that we've included many of them verbatim in Appendix B of this book. In the most central of these documents, the team summarizes their charter and their major philosophical goals and underpinnings
Ubuntu is a community-driven project to create an OS and a full set of applications using free and Open Source software. At the core of the Ubuntu Philosophy of Software Freedom are these core philosophical ideals
- Every computer user should have the freedom to run, copy, distribute, study, share, change, and improve their software for any purpose without paying licensing fees.
- Every computer user should be able to use their software in the language of their choice.
- Every computer user should be given every opportunity to use software even if they work under a disability.
The first item should be familiar by now. It is merely a recapitulation of Stallman's free software definition quoted above in the section on free software history. In it, the Ubuntu project makes explicit its goals that every user of software should have the freedoms required by free software. This is important for a number of reasons. First, it offers users all of the practical benefits of software that runs better, faster, and more flexibly. More important, it gives every user the capability to transcend their role as a user and a consumer of their software. Ubuntu wants software to be empowering and to work in the ways that users want it to work. Ubuntu wants every user to have the ability to make sure it works for them. To do this, software must be free, so Ubuntu makes this a requirement and a philosophical promise.
Of course, the core goals of Ubuntu do not end with the free software definition. Instead, the project articulates two new, but equally important, goals. The first of these is that every computer user should be able to use their computer in the language of their choice as a nod to the fact that the majority of the world's population does not speak English while the vast majority of software interacts only in that language. To be useful, source code comments, programming languages, documentation, and the texts and menus in computer programs must be written in some language. Arguably the world's most international language is a reasonably good choice. However, there is no language that everyone speaks, and English is not useful to the majority of the world's population that does not speak it. Computers can be a great tool for empowerment and education, but only if the user can understand the words in their computer's interface. As a result, Ubuntu believes that it is the project's—and community's—responsibility to ensure that every user can easily use Ubuntu to read and write in the language with which they are most comfortable.
The ability to make modifications—a requirement of free software and of Ubuntu's first philosophical point—makes this type of translation possible. This book is a case in point. While it only helps explain Ubuntu to the relatively small subset of the world that already speaks English, the choice to write this book in English was made to enable it to have the widest impact. More important, it is distributed under a license that allows for translation, modification, and redistribution. The authors of this book cannot write this book in all of the world's languages—or even more than one of them. Instead, we have attempted to eliminate unnecessary legal restrictions and other barriers that might keep the community from taking on the translation work.
Finally, just as no person should be blocked from using a computer simply because he does not know a particular language, no user should be blocked from using a computer because he has a disability. Ubuntu must be accessible to users with motor disabilities, vision disabilities, and hearing disabilities. It should provide input and output in a variety of forms to account for each of these situations and for others. A significant percentage of the world's most intelligent and creative individuals have disabilities. Ubuntu's impact should not be limited to any subset of the world when it can be fully inclusive. More important, Ubuntu should be able to harness the ability of these individuals as community members to build a better and more effective community.
Conduct Goals and Code of Conduct
If Ubuntu's philosophical commitments describe the why of the Ubuntu project, the Code of Conduct describes Ubuntu's how. Ubuntu's Code of Conduct (CoC) is, arguably, the most important document in the day-to-day operation of the Ubuntu community and sets the ground rules for work and cooperation within the project. Explicit agreement to the document is the only criterion for becoming an officially recognized Ubuntu activist—an "Ubuntero"—and is an essential step toward membership in the project. Signing the Ubuntu Code of Conduct and becoming an Ubuntu Member is described in more depth in Chapter 6.
The CoC, which can be read in full in Appendix B, covers "behavior as a member of the Ubuntu Community, in any forum, mailing list, wiki, Web site, IRC channel, install-fest, public meeting or private correspondence." The CoC goes into some degree of depth on a series of points that fall under the following headings:
- Be considerate
- Be respectful
- Be collaborative
- When you disagree, consult others
- When you are unsure, ask for help
- Step down considerately
Many of these headings seem like common sense or common courtesy to many, and that is by design. Nothing in the CoC is controversial or radical, and it was never designed to be.
More difficult is the fact that nothing is easy to enforce or decide because acting considerately, respectfully, and collaboratively is often very subjective. There is room for honest disagreements and hurt feelings. These are accepted shortcomings. The CoC was not designed to be a law with explicit prohibitions on phrases, language, or actions. Instead, it aims to provide a constitution and a reminder that considerate and respectful discussion is essential to the health and vitality of the project. In situations where there is a serious disagreement on whether a community member has violated or is violating the code, the Community Council—a body which will be discussed in depth in Chapter 8—is available to arbitrate disputes and decide what action, if any, is appropriate.
Nobody involved in the Ubuntu project, including Shuttleworth and the other members of the Community Council, is above the CoC. The CoC is never optional and never waived. Of course, it was in no way designed to eliminate conflict or disagreement. Arguments are at least as common in Ubuntu as they are in other projects and online communities. However, there is a common understanding within the project that arguments should happen in an environment of collaboration and mutual respect. This allows for better arguments with better results—and with less hurt feelings and fewer bruised egos.
While it is sometimes incorrectly used as such, the CoC is not a stick to be wielded against an opponent in an argument. Instead, it is a useful point of reference upon which we can assume consensus within the Ubuntu community. Frequently, if groups in the community feel a member is acting in a way that is out of line with the code, the group will gently remind the community member, often privately, that the CoC is in effect. In almost all situations, this is enough to avoid any further action or conflict. Very few CoC violations are ever brought before the Community Council.
While a respectful community and adherence to a set of philosophical goals provide an important frame in which the Ubuntu project works, Ubuntu is, at the end of the day, a technical project. As a result, it only makes sense that in addition to philosophical goals and a project constitution, Ubuntu also has a set of technical goals.
The first technical goal of the project, and perhaps the most important one, is the coordination of regular and predictable releases. In April 2004, at the Warthogs meeting, the project set a goal for its initial proof-of-concept release six months out. In part due to the resounding success of that project, and in larger part due to the GNOME release schedule, the team has stuck to a regular and predictable six-month release cycle and has only now—two years later—chosen to extend the release schedule by six weeks and only after obtaining community consensus on the decision. Frequent releases are important because it means that users are able to use the latest and greatest free software available—something that is essential in a development environment that is as vibrant and rapidly changing and improving as the free software community. Predictable releases are important, especially to businesses, because it means that they can organize their business plans around Ubuntu. Through consistent releases, Ubuntu can provide a platform that businesses and derivative distributions can rely upon to grow and build.
While releasing frequently and reliably is important, the released software must then be supported. Ubuntu, like all distributions, must deal with the fact that all software has bugs. Most bugs are minor, but fixing them may introduce even worse issues. Therefore, fixing bugs after a release must be done carefully or not at all. Ubuntu only engages in major changes, including bug fixes, between releases when the changes can be extensively tested. However, some bugs risk the loss of users' information or are a serious security vulnerability. These bugs are fixed immediately and made available as updates for the released distribution. Ubuntu works hard to find and minimize all types of bugs before releases and is largely successful in squashing the worst. However, because there is always the possibility that more of these bugs will be found, Ubuntu commits to supporting every release for 18 months after it is released. In the case of Ubuntu 6.06 (Dapper Drake), the project is going well beyond even this and committing to support the release for three full years on desktop computers and for five years in a server configuration.
This bipartite approach to servers and desktops implies the third major technical commitment of the Ubuntu project: support for both servers and desktop computers in separate but equally emphasized modes. While Ubuntu is more well known, and perhaps more popular, in desktop configurations there exist teams of Ubuntu developers focused both on server and desktop users. The Ubuntu project believes that both desktops and servers are essential and provides installation methods on every CD for both types of systems. Ubuntu provides tested and supported software appropriate to the most common actions in both environments and documentation for each. This book contains information on running Ubuntu both on the desktop and on a server.
Finally, Ubuntu is committed to making it as easy as possible for users to transcend their role as the consumers and users of software and to take advantage of each of the freedoms central to our philosophy. As a result, Ubuntu has tried to focus its development around the use and promotion of a single programming language, Python. The project has worked to ensure that Python is widely used throughout the system. By ensuring that desktop applications, text-based or console applications, and many of the "guts" of the system are written in or extensible in Python, Ubuntu is working to ensure that users need only learn one language in order to take advantage of, automate, and tweak many parts of their computer systems.
Of course, Ubuntu's goals are not only to build an OS that lives up to our philosophy or technical goals and to do it on our terms—although we probably would be happy if we only achieved that. Our ultimate goal, the one that supersedes and influences all others, is to spread our great software, our frequent releases, and the freedoms enshrined in our philosophy to as many computer users in as many countries as possible. Ubuntu's ultimate goal is not to become the most used GNU/Linux distribution in the world, it is to become the most widely used OS in the world.
The first bug in Malone, a bug-tracking system that Ubuntu uses, illustrates this fact. The bug, filed by Shuttleworth at severity "critical," remains open today and can be viewed online at https://launchpad.net/distros/ubuntu/+bug/1. The text of the bug reads:
Microsoft has a majority market share | Non-free software is holding back innovation in the IT industry, restricting access to IT to a small part of the world's population and limiting the ability of software developers to reach their full potential, globally. This bug is widely evident in the PC industry.
Steps to repeat:
- Visit a local PC store.
- Observe that a majority of PCs for sale have non-free software preinstalled.
- Observe very few PCs with Ubuntu and free software preinstalled.
What should happen:
- A majority of the PCs for sale should include only free software such as Ubuntu.
- Ubuntu should be marketed in a way such that its amazing features and benefits would be apparent and known by all.
- The system shall become more and more user friendly as time passes.
Many have described Ubuntu's success in the last two years as amazing. For a new GNU/Linux distribution, the level and speed of success has certainly been unprecedented. During this period, Ubuntu has lived up to both its philosophical and technical commitments, achieved many of its goals, and built a vibrant community of users and contributors who have accomplished monumental amounts while collaborating in a culture of respect and understanding fully in line with the Ubuntu code of conduct. However, Bug #1 demonstrates that the Ubuntu project will only be declared a complete success when Ubuntu's standards of freedom, technical excellence, and conduct are the norm everywhere in the software world.