The open source and agile development worlds embrace the concept of sprints. Sprints, in whatever form they take, have become a vital way to take on smaller bits of work and see that work through completion. This builds momentum by setting and completing goals which the team agrees can be reached in a reasonable timeline.
During past month, I have been a part of two unconventional sprints at Classic.
- Unit Testing
- We all wanted to improve our unit testing skills and to find a good solution for our team. We left the sprint with PHPUnit working in Drupal 7 and a number of tests written.
- Documentation (Thanks to Steve Spencer for driving this one!)
- This was a day dedicated to documentation. From process documentation to documenting procedures for applications, the day was a success as it forced the documentation to get done. Documentation isn't a passion for many developers.
Why are these unconventional? They are sprints which helped us to define and document processes. They had very little to do with coding, though their results will help us improve efficiencies.
The advantage of tackling these items in dedicated one day sprints is mostly speed. We were able to do in one day what might take weeks for one person to complete. Dedicating a day or a few hours to have a team focus on a task can really produce results that just would not happen with the average daily workload.
Doing the work is only part of the task. Others on a team need to buy-in and review. These sprints allowed us to work through the issue at hands and make immediate decisions necessary to move forward (no waiting for email and blog comments).
Successful sprint tips:
- The sprint team is made up of those who can allocate the time. Respect that each team member will have to decide the time they feel they can dedicate to the sprint due to their schedule.
- Create a document which outlines the sprint goals and tasks. Pre-assign tasks if it makes sense.
- Take breaks
- Provide coffee, snacks, etc.
- Find a good room with comfortable chairs and minimal distractions, allowing the team to focus.
- Don't forget remote participants! Keep a chat channel and screen share going for any remote workers.
The next time your team has an important need which never gets movement, plan a sprint to get it moving!