Steve Alexander reported on the development of methods that are used for Launchpad and Bazaar. Steve and I have funny handwritten sheets built, we have photographed.
One of the main problems with which one is in development at Canonical, especially at the Launchpad and Bazaar team, employed is the question how to "Corporate Style Development" with a fully distributed team under one roof gets.
The approach of Canonical approach is this: from methods of agile processes and the community-driven open source development is a emulgate to produce, which they call "Agile community.
To make this process of development at home continuously, Canonical also uses elements of the "LEAN" process. This is originally from the car and the production of Toyota and Kaizen: continuous improvement of products, the organization and processes.
values account The details of the processes of some fixed elements that Canonical as "values". These values are presented in contrast with the values of "classic" agile development and are based on personal experience:
knowledge and motivation of co-location Canonical seeks to bring together the best people, and made the experience that it is productive to have the best people to work together over long distances, rather than insist that all work on site, and to be less good developers in the team.
patches integrate with Sprint planning Canonical most products specifically developed as open source. This leads to code contributions, and do not necessarily fit into their own planning. To make the overall product to as many users as possible, the aim is interesting patches as quickly as possible to transfer into the main line of code.
Community In-House Development software benefits in various aspects of it if you buy a community to which they actively used, extended and developed. For this it is not always necessary that one's software is open source - extensive interfaces and plug-in systems also help a community to establish themselves and contribute to the development of software.
In comparison to agile development, this is actually a logical extension of the customer-on-site principle.
Builds High Another updated from the agile development approach: high-quality releases.
Even sitting together teams of defective code is problematic. If, as highly distributed teams an error creeps, this can destroy the basis of time differences quickly all the work days, while waiting for the fix. Therefore, all tests run after every checkin. And actually, they get left in the position after each check-in a high-quality release.
LEAN Another question for LEAN is how much work is wasted to get to from the beginning of the implementation of a feature to the customer?
LEAN With one tries to achieve high speed of development to it as soon as possible to bring to the customer, for as long as a feature in the works, it causes only cost: the specifications may Change requires attention of the developers, it lacks the customer. The longer this condition, the more expensive the operation is finished.
It is also a waste, if a function has ever been made, and still be in development. For example, due to lack of quality or excessive work packages.
Canonical tries to reduce waste by several methods:
Festivals release cycles Launchpad has a release cycle of one month for a planning horizon of four months. Ubuntu has a release cycle of 6 months. This makes it easier for the different divisions (Marketing, Testing, Development) to communicate.
Uniform workload counterexample: If you are just a 1-Monatszyklusansetzt happens in the third week of the following: quality has to happen. This gives each its code tries somehow to get into the release, which leads to increased stress this week (writing code, write tests, other people's code reviewer, ...).
To get around this, has any code Canonical reviewer one day a week on standby (each on different days). This allows each programmer to address the waiting reviewer must immediately and not wait to quality assurance in the third week. Through synchronous communication (IRC, VoIP) is here also avoided wasting, as both reviewers and developers code and concepts just in the head and "swap" does not have to.
will continue the work packages deliberately kept small: every patch must be less than 500 lines including diff context. If it is bigger it must be divided into several smaller units.
Finally, changes are as fast as possible on the trunk played for renewed conflict and thus to avoid waste.
Postgraduate Steve has also pointed to a paper by Ian Clatworthy
in which the thoughts to community-driven development once again recessed are presented.