Ron Heywood is Senior Software Engineer on the Client Impact Team at Spektrix, working to make users’ work a little bit easier through the updates we release daily - from small tweaks and improvements, through to major system developments.
Last week, Ron reflected on twitter about the rapid creation of the Ticket Converter Tool in response to the spread of Covid-19. His thread provided a live insight into the process of developing a new feature, and he’s added a little more detail to that in today’s blog.
The best part about being employed as a software engineer is that I get satisfaction from solving lots of problems, and making the lives of the people who use our software a little bit easier. The less good part is that it can get a little frustrating. You’re not always solving the problem you would prefer to solve, and sometimes there is nothing obvious in the code that will make the problem go away.
We engineers need a team around us who can see things from the people perspective, beyond the numbers and the flowcharts, and get to the real measures that make software delightful. Recent events reminded me why engineers need to stay close to a team of people who know their users.
As arts and entertainment venues need to close in the #covid19UK response, not only do they lose revenue from future bookings, they need to process refunds.— Ron Heywood (@ronheywood) March 19, 2020
I saw some great Agile process in @spektrixeng but also some great community spirit. Here's a thread about it: https://t.co/h3ziGpU2dr
Spektrix provides Software as a Service for the arts, it's a really cool CRM system built, around a booking platform. And I'm part of an Agile engineering team.— Ron Heywood (@ronheywood) March 19, 2020
As part of the product we provide tools for box office staff to refund tickets, to match the usual box office story:
What’s an Agile engineering team?
Spektrix engineers use Agile methodology to create an evolving system that is constantly improved through cycles of development, testing and teamwork.
The high level story probably looked something like:— Ron Heywood (@ronheywood) March 19, 2020
As a Box office staff member
I want to be able to refund tickets in exceptional circumstances
So that customers can get their money back
And then there would have been some discussion about what scenarios there might be
So one scenario may be— Ron Heywood (@ronheywood) March 19, 2020
Given a customer can't attend
And the event is refundable
When the order is loaded in the system
Then the Refund Tickets button should be visible
And we keep thinking about ideas for the Given's, the When's and the Then's
Once we have lots of ideas we prioritise them into pieces of work :— Ron Heywood (@ronheywood) March 19, 2020
To decide which ones to work on, in which order, we think about concepts like
Minimum Viable Product
Nice To have
or maybe we use words to describe scope, like:
Must; Could; Should; Wont
What do these concepts mean?
A Minimum Viable Product is the bare essentials - a version which will do the job required without any frills, but could form the basis for future development in response to user feedback.
A Fast Follow is a quick fix to deal with a problem or bug; it’s usually a temporary patch whilst a long term solution is developed.
Nice to Have are the optional extras within a system or feature - these can be added iteratively to the Minimum Viable Product, and prioritised based on user feedback.
I'm not sure if we ever wrote up this scenario:— Ron Heywood (@ronheywood) March 19, 2020
Given a national emergency
And All future performances For All Clients are Cancelled
But I imagine the priority for that would have been lower than other priorities
Think about where you would prioritise it
Then think about where you would prioritise it on Friday the 13th of March 2020, when the government advises that all arts and entertainment venues should close to prevent the spread of the Virus.— Ron Heywood (@ronheywood) March 19, 2020
Pretty high right? And here's where the team showed what #agile means
The team thought not just about how to create a feature that would solve the problem of refunding the tickets— Ron Heywood (@ronheywood) March 19, 2020
But they also thought about the experience for the customer and also for the Box office staff, and for the venue itself.
The customer quite likely still wants to see the show at some point,— Ron Heywood (@ronheywood) March 19, 2020
The box office need to be able to issue a "rain check" or credit note for these cases
Many arts venues are registered charities and depend on donations, and their patrons are happy to act as benefactors.— Ron Heywood (@ronheywood) March 19, 2020
We can offer to convert the whole or part of the value of these tickets to donations in these cases.
Many orders would be what we call "fixed series" (A bit like a season ticket - you book for a season of shows.) So we need to make decisions about that on an order by order basis— Ron Heywood (@ronheywood) March 19, 2020
With this experience - understanding our clients and customers, we recognised that we should offer to convert the whole or part of the value of these tickets to donations in these cases.
I got to see some really clever thinking about all these things. Even though we had to turn it round fast. I got to see really pragmatic ideas. Solving one problem at a time and adding value as we went.— Ron Heywood (@ronheywood) March 19, 2020
The thing that delighted me most in this was the uptake of the "Donate the value of the tickets" option.— Ron Heywood (@ronheywood) March 19, 2020
To see that people understood that the venue would be struggling because of this, and how they chose to help them out in whatever way they could.
My engineering brain would be looking at the ledger - balance this against that so it properly adds up.— Ron Heywood (@ronheywood) March 19, 2020
The product team did their job perfectly - Showed how they understood their market, their users and turned a bad situation into an experience.
The arts and entertainment industry are going to be hurting.— Ron Heywood (@ronheywood) March 19, 2020
But I see people pulling together, showing empathy!
You can't just engineer that. #agile or not.