Friday, June 19, 2015

Reclusive Scrum Poker - & a Faster Planning Meeting

At work we follow the agile methodology and typically play a weekly scrum poker game to estimate the relative cost of upcoming development work.  The project manager was using a free online scrum poker game.  Really the game worked well except for two issues.  The first was that we use JIRA for ticket tracking, so each story being estimated required each player to copy paste the link into a new browser tab.  Then the tab flipping started, then confused players out of sync with what story was currently being estimated.  The other issue was with the time spent waiting for everyone in the room to finish reading the current stories acceptance criteria.  The one guy in the room who was in the middle of fixing a bug after estimating the last story could really burn up time as everyone else waits for him to catch up.  Ultimately, it felt like our planning meetings were becoming a big time burner. The meetings were easily taking two hours to play.

An engineer on our team suggested we play the stories on our own time, and then just discuss the pointing in the planning meeting.  This way we wouldn't waste time waiting on each other.  A brilliant idea, but it would require new software.  That however was a problem we could solve.  I decided it'd be a great way to learn some new technologies, so I volunteered to take it on as a side project.  Our manager created a wish list of functionality for the new game, and I worked from that prioritized list.  I'd also like to mention one of my co-workers at the time Mr. Jaques, who volunteered to help with the UI layout and design. 

Drawing inspiration from I started working on the project in my spare time. Over the next couple months I developed an Angular based scrum game that allows players to play each story in isolation, yet facilitates discussion in our planning meeting.  It integrates with JIRA, allowing auto creation of games based on JQL queries.  It pulls JIRA stories to be estimated into an iframe, and saves estimated story points back to JIRA. Players are organized into teams, and anyone can create teams and games.

- Technologies -
Firebase seemed like it'd be the simplest quickest route to persist data.  It has worked very well.  I hope to do a post on lessons learned soon.  The client side code is all Angular, and for the UI Twitter Bootstrap was used.  Integration with the JIRA api is accomplished by wrapping calls with a Node.js service built using express.js.  The client side controllers are all tested using Mocha & Sinon-Chai.  

- Outcome -
Now our typical planning meetings are lasting an hour and feel much more focused.  All the story point is being done on our own time, so for now its a success.  For now it's been decided to keep the code internal, but at some point I would like to open source our version of the game. 

- Screenshots -


No comments:

Post a Comment