Rabu Input File Example

Rabu Schedule processes a JSON input file into an HTML output file. Here's an example of the input file.

{
"name": "Example v3.1",

The name of your project.

"updated": "26 Jun 2011",

The date that you last updated the information in this file.

"iterations": [

A list of all the iterations to date for this release. Put your current iteration first.

{

Each iteration gets an object of its own.

"started": "19 July 2011",

The date that the iteration started.

"length": 7,

The length of the iteration in calendar days. (In this example, the iteration is one week long.) Note that the value is a number, not a string.

"velocity": 3.5,

The velocity of the iteration. For your current iteration, use your estimated velocity. For completed iterations, use your actual measured velocity.

"riskMultipliers": [1, 2, 4],

Risk multipliers describe how much schedule risk you have, which determines how much spread there is in your schedule projections. They're described in detail here. The easiest approach is to use the following rules of thumb:

Rigorous projects: If your team achieves the same velocity every iteration, gets everything "done done," and you fix all your bugs each iteration, then you probably don't have much schedule risk. Use [1, 1.4, 1.8] for your risk multipliers.

Risky projects: If you don't meet the "rigorous project" criteria, you're more likely to have a lot of schedule risk. Use [1, 2, 4] for your risk multipliers.

"included": [

This is a list of all the features that will be included in your schedule projection—typically, the features you intend to ship in your next release.

Rather than listing out every story in your backlog, combine groups of stories into "features" that your stakeholders are interested in. You should only have about five features; if you have too many, you're likely to overwhelm your stakeholders with more detail than they care about, which will make discussing tradeoffs difficult.

["Smaller page size", 0],

Each feature has a name (such as "Smaller page size" in this example) and an estimate of the work remaining. This estimate is the sum of all the remaining stories for the feature. An estimate of zero means the feature is done. Note that the story estimates are numbers, not strings.

["Improved page clarity", 0],
["Improved graphic design", 0],
["Drag-and-drop in main UI", 5]
],
"excluded": [

You may also list features that are not included in your schedule projection in the "excluded" section. Use this to list features that your stakeholders are interested in, but that you have decided not to ship at this time. This helps define the boundaries of your work and creates the opportunities to explore trade-off scenarios with your stakeholders. This section is optional.

["Animated drag-and-drop transitions", 6.5],
["Configuration validation and error handling", 13],
["Mobile browser support", 5],
]
},

That's everything you need to describe an iteration.

{

After the current iteration, you may list each previous iteration from most recent to least recent. These historical iterations are optional. If present, they'll show up in the Rabu burn-up chart. We recommend erasing the history at the beginning of each release cycle so that the burn-up chart shows your progress towards your current release.

{
"started": "19 Jun 2011",
"length": 7,
"velocity": 3.5,
"riskMultipliers": [1, 2, 4],
"included": [
["Smaller page size", 0],
["Improved page clarity", 0],
["Improved graphic design", 0.5],
["Drag-and-drop in main UI", 7.5]
],
"excluded": [
["Animated drag-and-drop transitions", 6.5],
["Configuration validation and error handling", 13],
["Mobile browser support", 5],
]
},
{
"started": "12 Jun 2011",
"length": 7,
"velocity": 2,
"riskMultipliers": [1, 2, 4],
"included": [
["Smaller page size", 0],
["Improved page clarity", 0],
["Improved graphic design", 1],
["Drag-and-drop in main UI", 8]
],
"excluded": [
["Animated drag-and-drop transitions", 6.5],
["Configuration validation and error handling", 13],
["Mobile browser support", 5],
]
},
{
"started": "5 Jun 2011",
"length": 7,
"velocity": 1.5,
"riskMultipliers": [1, 2, 4],
"included": [
["Smaller page size", 1],
["Improved page clarity", 0.5],
["Drag-and-drop in main UI", 8.5]
],
"excluded": [
["Animated drag-and-drop transitions", 6.5],
["Configuration validation and error handling", 13],
["Mobile browser support", 5]
]
}
]
}

The Rabu input file is easiest to maintain if you update it once at the beginning of each iteration. Start by updating the velocity of the top-most iteration (the iteration you just completed) to your actual measured velocity, then copy-and-paste the entire iteration block to the top. This new iteration block is for the iteration you are starting. Update the "started" element accordingly and update the feature estimates to account for the stories you've completed as well as any other changes to the backlog. With practice, this should only take a few minutes.