Nimble Rabbit (aka Lapin Agile) is our software development process / guideline we will follow for our development efforts including NTOSpider.
Contents
History
Characteristics
Roles
Meetings
Terminology
History of the Naming Scheme
History
In 2009, Dan Kuykendall and the team at NT OBJECTives, Inc decided to make slight adjustments to their product development. At the time, the team would struggle to put releases out in a timely fashion. The team was creating good software and communicated fairly well and simply needs a bit of improvement to the process that would help sync up tasks to create stability windows in which a stable build could be generated with a reasonably predictable set of new features. The innovation of the product is not driven purely by a design team, but rather started by the design team with customer input and then adjusted based on developer feedback. The developer are also encouraged to innovate during the daily development as issues are found while reviewing code needed to make their changes. This iterative development cycle allows and encourages developers to also be innovators.
Characteristics
Nimble Rabbit is a flexible “development process/framework” with a set of practices and overlapping roles that are intended to help define what we do well and the solutions to improve our process. Nimble Rabbit is also specifically designed to work well in a telecommuting/distributed environment. It also avoids many of the false assumptions and traps of existing Agile frameworks such as Scrum.
The project is run by a “Freddy”, which takes its tasks from the decisions of the “Picasso Group”. The Picasso Group is comprised of management, research, the engineers as well as customers.
During each “Hop”, typically a two-four weeks period (with the length being decided by the team).
At the end of each Hop there is the intention of having a releasable build. During the entire Hop, the Trouton Group will be performing tests against the daily builds, and ramp up stability testing efforts in earnest toward the end of the Hop.
If during a Hop a developer finds an issue in the code while reviewing code needed to make their changes, the issues are discussed briefly during the “Morning Checkup” or a follow up meeting and are either “Bunny Eared” for later, or considered “Cecal” which gets done right away.
Roles
The roles in Nimble Rabbit are intended to overlap in order to foster shared goals. The most of the roles are well understood by their names.
Freddy: The Project Manager. Runs the project and is responsible for the outcome.
Picasso Group: Research team that finds new features that can be added and comes up with possible design options.
Gaston Group: Customers and Partners chosen to participate with feature requests and testing of new builds at the end of each “Hop”.
Einstein Group: The software engineers/developers who actually build the stuff.
Trouton Group: The QA Team who make sure things work as expected.
Schmendiman Group: Handles determining the feature sets for each Hop. Each of the listed groups are allowed to participate in the Schmendiman Group and its meetings.
Meetings
Morning Checkup: The “Morning Checkup” is a daily meeting limited to 15 minutes that starts off each day. Each member of the “Hop” will give a brief account of the previous days activity, goals for the current day and any blocking issues they are facing.
Schmendiman Strategy Session: The Schmendiman Group works out the general plan of features for the next Hop.
Road to Monmartre: The meeting at the beginning of each “Hop” in which the Einstein and Picasso Groups meets with the “Freddy”. The Picasso Group will present their ideas for the next “Hop” which will debated/discussed with the Einstein Group and eventually decided upon by the Freddy. Then the plans for the next “Hop” will be put together. The key to a well planned Hop is to assign out tasks in an order that matches up well so that all can be ready to have their code done at the end of the Hop. To conclude the meeting the entire group will have lunch together, and adult beverages will be quite acceptable.
Monmartre Retrospective: The meeting at the end of each “Hop” in which the Einstein and Picasso Groups meets with the “Freddy” for a couple hours to review how the previous “Hop” went and what was learned. A list of the completed tasks will be compiled for the benefit of the Trouton Group, along with the list of incomplete tasks that will need to be rolled into the next Hop. At the end of this meeting the entire group will have lunch together, and adult beverages will be quite acceptable.
Terminology
Hop: The 2-4 week development cycle. At the end of a Hop all developers much have their latest working code checked in and ready for the Trouton Group to run their full testing.
Pellets: More commonly called “Bugs”. These are problems in the code that cause problems.
Cecal: Bugs found in the code during a Hop, that are decided to be worth fixing immediately (re-digested into the Hop). (ref)
Pocket Builds:
Whenever a developer is making significant changes to existing code that has the opportunity to cause major stability issues, they must check in their code into properly named CVS Branch. The build generator will be able to generate the Pocket Build for the Trouton Group to run separate stability testing of that build.
History of the Naming Scheme
The naming scheme came from a group discussion about a fun play on the “Agile” development process and the “Picasso at the Lapin Agile” play by Steve Martin. Using this play on words began the process of naming the groups, steps and organization.
The play is a fun little debate between Einstein and Picasso about the value of their genius and talents. The cast was used for naming the groups and the little guest appearance from Elvis Presley (The Visitor) was used for naming the daily morning conference calls.
Lapin Agile means Nimble Rabbit, so the “Rabbit” part to name inspires the naming of the process steps, such as Hop, Pellets (rabbit poop, alternate name for “Bugs”) the Cecal (the rabbit poop that they re-digest as part of the digestion process).
Since the developers are the Einstein group, the QA team gets to be named after Fredrick Trouton, who was one of the early experimenters that confirmed parts of the Theory of Relativity.
The big meetings are named after the location that the play takes place in.
The name “Pocket Builds” does not derive from the play in any way. It was made up long ago by Matthew Cohen to refer to custom builds the developers would provide him when he was running the QA department.