Version 1.0 / September 8, 2003
miniGuide to Zope Sprinting
- What Zope Sprints are and how to prepare for them
- - - - - - - - - - - -
By Albertas Algejevas | September 8, 2003
A Note from ZopeMag:
This is the first of many miniGuides ZopeMag is working on. Together with the SuperGuides we have in production they will form the backbone of the ZopeMag reference section. A miniGuide is designed to be short and concise. We hope you find that this miniGuide meets your needs. If not we'd like to hear how we can improve it. Enjoy!What is a Zope Sprint?
A Zope Sprint is a two-day or three-day focused development session, in which developers pair off together in a room and focus on building a particular subsystem. Tres Seaver at Zope Corporation (ZC) launched the concept of Sprints, based on ideas from the Extreme Programming (XP) community, for the development of Zope 3.
Zope Corporation began to employ this model in their consulting work, using intensive pair programming sessions for turning over the projects they had worked on to a client's IT staff. Later, it was used internally in Zope Corporation for developing Zope 3. Finally, ZC started to conduct Zope Sprints in different places throughout the world, attracting people from the Zope community to Zope 3 development.
Usually, a Sprint lasts at most 3 days, and there are no more than 10 participants, although the Sprint held at the beginning of December 2002 in Rotterdam, the Netherlands, hosted by a company called Infrae, was 5 days long: it was called a Sprintathon (something between a sprint and a marathon). Around 30 developers from all over the world participated.
Most Sprints are one of two kinds: those where a lot of people participate, and those where only developers already experienced in Zope 3 gather. The first kind of Sprint attracts new people to the project in a practical, hands-on manner; the second enables those attending to get a lot done in a short period of time.How does a Sprint work?
A sprint is organized with a coach, such as Jim Fulton (The Zope Pope), leading the session. The coach sets the agenda, uses the whiteboard to track activities, and keeps the development moving.
The first half a day is usually spent getting oriented. Jim Fulton presents a Python programmer tutorial for Zope 3. The tutorial is an Open Office presentation outlining the different aspects of Zope 3 development in simple steps. Currently, there are three chapters of the tutorial written. The first one introduces the component architecture of Zope 3 by demonstrating the creation of a simple component. The second chapter deals with automatically generated forms for data input, and the third one illustrates the creation of services. The tutorial is available for download from the Zope CVS at: http://cvs.zope.org/Docs/ZopeComponentArchitecture/PythonProgrammerTutorial/ After the tutorial, everyone gets a CVS checkout of Zope 3 working on their laptops.
As we already mentioned, the Sprints borrow a lot from the Extreme Programming discipline of software development.
The developers work in pairs using XP's pair programming technique. One person in each pair needs to be a veteran Sprinter, and both need to have Zope and Python experience. The coach is always available for questions, so the developers rarely get stuck on one problem.
At the end of the Sprint, the code produced is integrated into Zope 3. This means that Sprinters new to Zope 3 need to sign the Zope Contributors Agreement, which basically asserts a joint copyright between the committer and Zope Corp. The motives behind such an arrangement are explained in the Zope Contributor FAQ.
Extreme Programming is a lightweight discipline of software development, which focusses on simplicity, communication, feedback and courage. XP consists of numerous practices and rules, and most of them are applied during the Sprints. A Sprint usually lasts a short time even in XP terms, so the planning and tracking activities are performed quite informally. The technical practices, though, such as test-driven development, pair programming, simple design, refactoring, continuous integration, are highly regarded. You can read more about XP at: http://www.extremeprogramming.org/ or in the book by Kent Beck: "Extreme Programming Explained".How can I prepare for a Sprint?
A prospective Sprinter should have a good working knowledge of Python. Zope 2 knowledge is not necessary, but it might turn out to be useful.
A laptop with a working checkout of Zope 3 is a good idea. This means a Sprinter has to install the dependencies of Zope 3, which are specified on the Download page.
Then s/he has to check out a Zope 3 sandbox from the Zope CVS, either with a write access or anonymously.
It's not a big problem if some of the participants don't bring a laptop along -- just one computer per pair is needed.
Even a non-coding Zope community member can contribute to the development of Zope 3 by providing a Sprinting facility and paying Jim's travel expenses. In exchange, Zope Corporation offers a day with Jim or the ZC crew for consulting or a customer visit. Needless to say, the host of a Sprint has to provide the space and connectivity. Whiteboards are usually needed and a projector or at least a large monitor is needed for the tutorial.Conclusion
The Zope Sprints are lively bursts of development activity in an exciting Open Source project. They do achieve their goals of attracting more people to the project, sharing experience, building personal and professional relationships among the developers, and actually getting some work done!Further Resources
The CVS Homepage:
The CVS Manual:
Zope 3 Docs for Sprinters:
Zope 3 Contributor FAQ:
|ZopeMag is committed to bringing you the best in Zope Documentation.|
|Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag|