What is a sprint?
A sprint is a multi-day session of intense development organized around extreme programming (XP) ideas such as pair programming. The idea originates in the Zope community.
For the development of Zope3, Tres Seaver at Zope Corporation launched a concept called "sprints", based on ideas from the extreme programming (XP) community. A sprint is a two or three day focused development session, in which developers pair in a room and focus on building a particular subsystem.
This model has worked well for the initial Zope Corporation-only sprints. We'd like to try out the sprinting model for Lenya. This establishes leadership in the community by sharing development approaches, intense sessions of focused communication on a topic, and explaining in person the Lenya development model.
A sprint is organized with a coach, such as Jim Fulton from the Zope community, leading the session. The coach sets the agenda, uses the whiteboard to track activities, and keeps the development moving. The developers work in pairs using XP's pair programming approach. One of the pairs needs to be a veteran sprinter. Some sprints are focused on a specific topic, like internationalization or cataloging.
The sprint approach works best when the first few hours are spent getting oriented. This means presenting the Lenya goals, getting everyone's computers working with the CVS server, etc. The need to have a veteran in each pair can be a limit on the number of pairs, which shouldn't go above four (for a total of eight sprinters). The coach can be a veteran in a pair.
Needless to say, a sprint needs a host to provide the space and connectivity. Whiteboards are usually needed. All sprinters should bring their own laptops with ethernet connections.
At the end of the sprint, code is produced and Lenya moves forward.