Getting Ship Done
At Powershop we’re always looking for ways to learn and to improve our software delivery practices. Recently we’ve been focussing on Agile practices that lead to the consistent delivery of value by the end of each sprint. We’ve been implementing practices and techniques in the following areas:
- small user stories
- pair programming
- visible work spaces
- shared responsibility across the team
This post will detail some specific examples of changes we’ve made and the effect the changes have had.
We’re using effective ways to split user stories as our stories are still bigger than they ideally should be. Agile-for-all has a really practical resource for splitting stories here.
Recently a 20 point story made it to one of the team’s sprint planning meetings. The team worked with their product owner to split the original story into two stories sized at 13 and 5. The PO identified the 13 point story as offering more value, so the team tasked it up. Given that their velocity was 14 they decided that the 13 point story would be the only item in sprint.
The team had also committed to pair programming as a way to build team knowledge and increase team resilience. With this in mind the four developers split the tasks up and worked in pairs to write the code required to complete the story. Each pair then code reviewed the other’s work. At the conclusion of the two week iteration they had completed the item and met their iteration commitment. In previous iterations larger stories had meant far longer lead times, with stories often spanning several iterations. Larger stories were also contributing to a testing bottleneck as large pieces of functionality were moved into testing with one tester.
During the development of the 13 point story the team pair programmed throughout the iteration.
This proved to be advantageous in acquainting the entire team with that area of our platform. When a couple of defects were raised in testing any member of the team was able to pick them up. Previously only one person had worked on each story and therefore it was usually the case that only one person could address any defects arising from testing. In the past this had caused delays and bottlenecks.
Technical teams are naturally given to using software to manage workflow. However once a visible workspace has been implemented they start to see how visualising work can help them to quickly identify:
- too much wip
- delays and bottlenecks in process
- iteration progress
Since the introduction of a visible workspace for one of our teams they’ve experienced far greater visibility of progress for each work item and therefore have easily identified opportunities to pair program.
The team also feels a greater sense of pride as their work is displayed on the wall for any other team to see. We currently have ten teams of varying sizes at Powershop and the implementation of visible workspaces for most teams has increased inter-team communication and collaboration.
Once the team takes shared responsibility for each and every story, more value is shipped. If an item has stalled team members will work together until the item progresses. Team members take responsibility as a team for both successes and failures. Just as spreading the workload increases the speed of delivery, shared responsibility for failure decreases individual stress.
In recent months we’ve implemented regular backlog refining meetings and made improvements to sprint planning. Getting a first look at user stories and discussing them as a team leads to a shared understanding of the desired outcomes and complexity of the item. Similarly team tasking of stories during sprint planning gives the team as a whole the opportunity to ensure each individual has understood not only the intent of the story but also the intended solution.
Where previously team members would take sole responsibility for the completion of a story from start to finish, now all team members can potentially pick up parts of the work or finish the item in case of unexpected absences.
Teams have become more resilient and and are achieving a greater spread of knowledge through much higher degrees of collaboration.
We’ll continue to hone our software delivery practices here at Powershop through experimentation and the continuing fostering of not just Agile practices but an Agile mindset.