Velocity is perhaps the most important concept in agile development. In his recent Agile 101 class at the TDWI BI Summit in San Diego, Ralph Hughes defined velocity as “The number of story points that can be delivered comfortably in an iteration.” That estimate effects many other estimates, such as the size and mix of your teams, as well as the number of iterations needed to deliver the full project scope—all of which impact the budget.
In many agile projects the answer to establishing velocity is simply “see how the first few iterations go” then adjust task planning and budgeting on the back end. However, if team members are new to agile those first few iterations may take a little longer. And once the stable velocity for a team is known, velocities may vary substantially across your teams. This will make estimating a bit trickier.
By way of analogy, it’s like determining the velocity required for an aircraft to leave the ground. Aircraft are complex machines so they have several key velocities (V1, VR, and V2) but the concept is there. Much like the story conference and task planning steps in an agile project aspects of wind, temperature, altitude, and take-off weight are factored into a well-known set of characteristics for that aircraft—all before the pilot ever releases the parking brake.
One complicating element in determining velocity is infrastructure setup. After all, the needed infrastructure may not be fully established in the early iterations. Some projects address the infrastructure with an “Iteration 0.” Unfortunately the 0 also means “zero business value”, which can set the project off on the wrong foot. In his 2011 blog, Vikas Hazrati suggests that an Iteration 0 is best avoided. He also suggests that the infrastructure be built along the way. Going back to my analogy for a moment that sounds like building the airplane as you’re barreling down the runway towards V1.
But the most important element to estimating agile velocity early and with high accuracy is using highly-automated and integrated applications that have been built for agile development. Integrated warehouse applications manage much of the infrastructure—removing the integration inefficiencies—while making warehouse development faster and more predictable across teams. Warehouse automation will establish reliable velocities from the first project forward, rather than for each project individually.
In his Agile Data Engineering course, Ralph Hughes introduces warehouse professionals to some modern, highly-automated warehouse solutions. If you’d like to improve your estimates through reliable velocity, then you should take his course and investigate how integrated warehouse applications can help you get there.