Creating Predictability in the Midst of Agility
Agile software development in a startup is fast, challenging, exciting and dynamic however one of the hardest things to accomplish in this environment are predictability and repeatability. When teams start agile development the first sprint(s) can often be disastrous, and lead to abandonment. The easiest way to build predictability into the process is to think about a Agile development as a simple supply (engineering resources) and demand (product needs) relationship. The key is to increase the accuracy on both sides of the equation.
When you read literature on Agile development there are a couple of standard techniques suggested to improve predictability:
- Triangulation: The process of tracking estimates and then when a ‘like’ feature comes up you use previous estimates to triangulate in on a reasonable estimate.
- Cycle Velocity: Teams track velocity or points throughput over a given (short) development cycle, and uses this as a starting point for the next cycle.
Great! except that in practice these are marginally effective at first. One of the things we have found to be a great step forward on the demand-side estimates was to create better definition around the base estimation factor. Estimation, and product throughput in agile development is typically measured in ‘points’. There are different schools of though on how a point is defined. Through time and experience we have found the following definition works best for us: A point is one day’s worth of development time with little to no interruptions by a senior software developer.
With a more defined based estimation factor we then added complexity multipliers to our user stories (feature requests) to help with triangulation. Often we would get bogged down in a lot of what if discussion which is good, but often created angst among the developers when trying to create estimates. We moved to a model where estimates were stated as best-case, and then we would add multipliers for both technical complexity and business complexity to generate a risk adjusted estimate in addition to the best case.
Now what about the supply-side? Often overlooked, but just as important…If not analyzed correctly it can create an overworked engineering team. Of course in a startup, everyone is overworked, but the key is sustainability. Especially with small teams and short development cycles small supply-side ‘events’ can wreak havoc on predictable product throughput. We have found that the following items need to be effectively factored into the supply-side calculation:
- Team member skill levels
- Vacation time
- Overhead/support needs
Every team member starts out with a baseline FTE (full time equivalent) value of 1. First we start by adjusting the baseline value down to adjust for skill differences in junior resources. Any vacation days that the engineer will be taking during the sprint cycle are then factored in, as well as the expected % overhead (P1 bugs, production support) that each resource will be expected to cover during the cycle. Calculated out for each resource and then added the numbers together gives you a net FTE count for the team, which can then be multiplied against the days in the sprint to give you a baseline supply estimate.
During sprint planning we then begin estimating against the demand until you hit a number where the supply-side estimate is approximately sitting between the demand-side best case estimate and the risk adjusted estimate (assuming some stories will work out closer to best case and some will work out closer to worst case).
These minor enhancements along with team experience have allowed us to create an extremely predicable product development process, that is not only repeatable but also sustainable. All critical in startup product management and software development.
If this concept interests you - let me known and I can send you the spreadsheet template.

MarketRIGHT 3.0, benefits Carpet One retailers in numerous ways:




