We had relative estimation before - but it was a single person experience. Our customers asked for something that will engage a whole distributed team.
What it does
Our solution allows the whole team to participate in a relative estimation session (based on the Magic Estimation method). People drag issues around, put them to the columns to show what is the estimated size of a Story or a Task. They can see what all the other participants are doing, what are they dragging and where are their cursors (with avatars). All in real time! After everybody is done, save all the estimated values in one click.
How we built it
We already had a functional connect app. We supercharged it with few additional techs (Google cloud platform, esp. firebase) and built the new estimation mode basically from scratch - with storybooks, tests etc.
Challenges we ran into
There were two, one technical, one not so. The easier one (the technical) was how to make people see their actions in near real time. We ran into multiple race conditions, UI freezes, etc. Finally, with the help of https://firebase.google.com/docs/database we managed to make it work well. The second one was harder. How to make the multiplayer experience as effective and fast in estimating as the single player is. We believe we did it, but only the users can tell.
Accomplishments that we're proud of
- We are using feature flags, incremental rollouts and we always have the latest version deployed to production.
- The cursors location visualisation, no matter if they are in ones viewport or somewhere outside.
- Team Relative was estimated using Team Relative!
What we learned
Technical is easy when compared to delivering value. First few attempts we tried were plain not useful. Even for us, people who developed it. We had to change our idea of a multiplayer relative couple of times before we were able to use it for our own estimation sessions.
What's next for Agile Poker for Jira Cloud
We are not finished with multiplayer estimations - next task is to bring the Bucket Sizing to distributed teams.