An Introduction to Sprinting
What is a sprint?
A sprint is a focused development session, in which developers assemble in small groups in the same physical location and focus on a particular task. A sprint is organized with a coach leading the session. The coach sets the agenda, tracks activities, and keeps the development moving. The developers often work in pairs using XP's pair programming approach.
The sprint approach works best when the first few hours are spent getting oriented -- presenting a tutorial for the development material, laying out the stories to tackle for the day, getting everyone a CVS or SVN checkout to work with.
ZopeMag's miniGuide to Zope Sprinting is a good introductory article; just mentally remove every "Zope" from the article to make it generic.
Steve Holden has a good article in O'Reilly's OnLamp Python Python DevCenter on how to run a sprint. This installment of a monthly column gives more background.
Why sprint?
Sprints are intended to benefit a projects by getting people working in the same room and making decisions quickly. They're also a good opportunity to spend 4 or 8 hours concentrating on a task, and to encourage more people to take part in development. They will also be a good place to see ExtremeProgramming or other AgileMethods in action, and to work closely with experienced project developers.
If you wish to participate in a sprint, please contact the sprint organizers in advance, or add your name to the list of participants for a given sprint. It's important for organizers to have an idea of how many people will be participating.
What equipment and supplies do sprints need?
The minimum requirements are:
- A room to work.
- Power for laptops.
Commonly available:
- Wireless networking. It's not necessary to have wireless, but it makes the sprinters much more productive because it's easier to share work and to coordinate via IRC or e-mail.
Optional:
- Whiteboards or pen/paper for sketching out ideas.
Sprints
Here is a list of some recent sprints organized by corporations and user groups around the world:
ArlingtonSprint. Held every 3rd Saturday in Arlington, Virginia.
BoulderSprint. First sprint is November 4 in Boulder, Colorado.
GoogleSprintPy3k. Sponsored by Google, a 4 day sprint in two locations in late August 2006 to work on Python3000.
NeedForSpeed. Held in Iceland, speed was achieved, May 21-28, 2006.
PyCon. 4 days of sprinting at PyCon2007, February 26 - March 1, 2007.
PyPy. Sprints are held nearly every month to work on this exciting direction in Python's future development.