Management tricks I like the most are the ones which require little to no efforts from your end, but give you a lot in return. Here I want to share a quick trick which can help to get 20% team performance improvement for almost nothing.
The classic approach
The very classic approach used my many orgs is Scrum or some of its variations. This classic process framework includes the following rituals:
- Sprint planning
- Grooming & Estimation (usually done with planning pocker)
- Daily standups
Some companies use a slightly different approach, some can add something on top (not remove though), but overall these is it.
In my experience, the step that takes most of the time is estimation. Planning poker is used to check if everyone is understanding the task complexity correctly, and if there's a wide spread (one developer says it is a 5 minute fix and another one is saying it will take at least a few days) you should start conversation and figure out pitfalls. Developers usually use story points, which is an abstract unit used to describe task complexity. The sum of story points is later used to give some time estimation (using some historical data, something like "In our org 1 SP is usually 2 hours of real time"). So you will spend the whole day in a week playing planning poker, discussing story points and trying to figure out how to develop all the core features before the deadline.
This process, however, is not very well optimized and cannot be. Assuming you are working in a weekly sprints, you will have to spend 20% of your time just to get a rough estimate. With other rituals, like retro and company meetings, your team will have about 3 days for the actual implementation. But there's a good alternative.
The Kanban method
One of a cool tools suggested by Kanban method is probabilistic forecasting. The main difference with the old approach, is SP-based estimation is a subjective thing. These estimations are given for an ideal scenario, in which developer is only working on a described task, without any hotfixes, priority changes, sick colleagues, etc. In reality, though, there are a many factors influencing the result and in this case probabilistic forecasting can give a better estimation.
Probabilistic forecasting is based on existing statistics of a team and the easiest way to run it is to use Monte Carlo simulation.
The Monte Carlo simulation will run a few thousand simulation trials using the input data (start date, number of tasks, number of trials, team members working on the feature, etc.) and build the graph showing dates and probability. Looking at this graph you can say something like "we can deliver these feature on Sep 30 with 70% probability". If 70% is not enough (let's say we need to launch an expensive marketing campaign), we can just pick a better probability and say "the feature can be delivered on Oct 7 with 95% probability". And this can be done in seconds instead of hours of of planning poker story points discussions.
This trick will work for any team having some existing statistics and can also be used with a new team, given we know individual historical data for each engineer. The tool we use at Bravado is called Nave and is installed as a Jira extension, so we can use all the existing historical data. Try it with your team and let me know how much time it saved for you.