Backcountry PC Gold Points System Hackathon
A group of software developers put themselves in a room Friday afternoon committed to delivering an application to help Sara Hutchinson and others who administer Backcountry's Gold Points reward system. Ryan Debenham, Ryan Walls, Rusty Robinson, and Peter Gram applied their considerable skills, knowledge and a set of web app development tools to the task of creating quality software in a tight timebox, starting at 1:00 p.m. with the goal of finishing by 6:00 that evening.
At the end of the day, the team had produced software that created value for the small group of people who administer the Gold Points site, and by extension for all the people who benefit from the Gold Points system. In the process, they validated some important principles that make Agile teams more productive and effective (things like focus, team effort, business user engagement, and more--skip to the end to see a summary).
Backcountry is proud of its Gold Point reward system. Employees receive Gold Points as recognition for extraordinary efforts and achievement. The Gold Points system was built years ago using the same Interchange technology that powers the Manager system. Until now there have been no administrative tools for the system, so the admin has been dependent on technology teams for all kinds of tasks, including adding new events and gift certificates. The limited system functionality has constrained the admin's ability to do more and make things happen sooner. Because it is one of the pillars of Backcountry's employee recognition program, making the system better means employees will get even more benefits from it.
Specifically, Sara relies on software developers to do such routine tasks as adding all the upcoming home games for the Utah Jazz at the beginning of the season, adding gift certificates for new vendors, deleting vendors when they no longer offer gift certificates, and adding one-time events for which employees may exchange Gold Points for tickets. Also, she hasn't been able to get data out of the system without asking a developer to query the database and provide a csv or spreadsheet file
Prior to Friday afternoon, Sara provided the development team with a prioritized list of new features, enhancements, and reports based on her current process and existing features in the system. At the outset of the project, the team reviewed her list with Sara and asked a lot of questions to ensure they understood the problems they were going to address, and to ensure they had a shared understanding of what was and was not possible given the limited time and resources available.
The team used AngularJS toolset as the framework for the application based on their experience building applications for the Merch and Content teams. The legacy Gold Point system is tightly coupled with the set of tables it uses in the RootDB database, so one of the first steps in the project was to create APIs so the admin tool would have a more solid and scalable architecture. Also at the outset of the project, the team created a continuous integration pipeline for the admin tool, allowing all members of the team to check in code frequently and monitor the health of the entire project continuously.
By a little after 8:00 p.m. Friday the team had an application with basic features and functions, but not quite ready for prime time. After some additional work over the weekend and final touches to get the app to production on Monday, the team has produced software that allows the Gold Points administrator to:
- Edit, delete and add gift certificates.
- Edit, delete and add event types
- Edit, delete and add events
- Download Gold Points and Reservations to CSV format, filtered by a date range, to evaluate in an Excel file
In addition to that new functionality for the end user, the team has wrapped the Gold Point tables in RootDB with an API, which will enable them to continue building features outside of interchange, and ultimately decouple Gold Point data from RootDB.
Some great practices employed and lessons learned (many of the ideas from this post were in force):
- One Responsible Business Process Owner is Gold - It helps tremendously to have one person responsible for the business process describe to the team the business problem that needs to be solved, be available to discuss options and make decisions throughout the development process, and accept the solution as its being developed incrementally.
- The Team Is The Star - The team is more productive than the group of individuals when they share focus and are in constant touch with what they're doing throughout the development process (the whole is greater than the sum of the parts).
- The team is highly productive when it is able to focus on the solution it's developing for an extended, uninterrupted period, as was the case with this team Friday afternoon.
- Invest at The Start - Spending a relatively small amount of time at the beginning of the project to set it up for testing and continuous integration pays huge dividends in the form of allowing the team to add value iteratively throughout the life of the project.