Polish week: how our engineering team make Gearset sparkle

Polish week: how our engineering team make Gearset sparkle

Julian Wreford & Dan Yates on

Share with

LinkedIn
Twitter

As 2021 drew to a close, we decided to try something at Gearset we haven’t done for a while: a polish week. What is a polish week you may ask? It’s not a Poland-themed week, in case that’s how you read it at first — which some of us did! The idea is that for one whole week our developer team pauses their long-term development work and makes lots and lots of small changes to make the lives of our customers better.

We always spend a lot of time listening to customer suggestions and making improvements to our app. But we rarely have the whole engineering team pulling in one direction like this, and we hope you’ll agree the results are pretty astounding!

81 Pull requests, 17 Changelog entries, 28 Completed work items, 9 releases

In this post, we’ll explain how we approached our recent polish week and highlight our 5 favorite polishes.

Identifying the improvements we’d work on

Three weeks before polish week, everyone at Gearset was encouraged to contribute ideas for app improvements to a shared Kanban board. A significant portion of the submitted ideas came from customer feedback and our UserVoice Forum, but many were also taken directly from Gearcitizens’ personal experience.

All suggested tasks were initially tagged as “To review”. Our Product and UX teams assessed each one to work out whether a feature or fix was worth implementing, and what the solution might be. Tasks were then tagged as:

  • Approved. Tasks that we were happy to implement, but needed more information or UI designs.
  • Specced. Tasks that were ready for any developer to pick up and work on.
  • Not quite yet. Tasks that were too large for polish week, so were migrated to our roadmap.

This preparation work meant that when the morning of the 13th of December came round there was lots of work ready for developers to start.

Tackling the tasks during polish week

Developers could assign themselves any task of their choosing from the specced list of polish week tasks. A rudimentary difficulty rating for each task gave an indication as to how much time and expertise a task would require, and whether collaborating with other developers would be sensible or even necessary.

Some developers chose to work through lots of smaller tasks, while others chose larger tasks that tackled more challenging features.

Polish week saw engineers from different teams working together on more complex tasks. Collaboration was actively encouraged, and made sure that we managed to complete some of the more difficult tasks during the five days of polish week.

We always have a short release cycle at Gearset, and polish week was no different. We released once or twice every day, shipping newly implemented features and fixes to customers as quickly as possible. This meant that our users were able to see the impact of polish week in real-time throughout the week, checking the “What’s new” section of the app for regular updates.

Polish week Kanban board

Our top 5 polishes

1. Rollbacks for CI job deployments

The ability to roll back a continuous integration (CI) job run was a heavily requested feature. Many Gearcitizens were surprised to learn that this functionality didn’t already exist. It was already possible in Gearset to roll back manual deployments, so the logic for this rollback functionality was already in our codebase, and one of our developers was able to implement this feature by the end of polish week.

Screenshot of CI jobs history page

2. CI job history shows in-progress runs

Also on CI jobs, we recognized internally it was a little challenging to view the progress of a running CI job, as it wouldn’t appear on the CI job’s history page until the run was complete. We felt it was important to see all the information relating to a single job, including an in-progress run, in a single shared location. We want to reduce the need to navigate around from page to page as much as possible, and this feature felt like a relatively straightforward way to host all information relating to a CI job in one place.

Screenshot of CI job’s history page with in-progress job

3. Data deployment history now loads faster

It’s incredibly important to us that the Gearset app has great performance and responsiveness. That’s why one of the polish week tasks was to improve the loading speed of the data deployments history page. We identified the slow loading of this page, especially for customers with a long history of deployments, as a pain point we wanted to address.

We discovered that the performance of this page was being slowed by some heavy recalculations taking place every time the page loaded. The developer working on this task decided to store a number of pre-calculated values in our database relating to the information displayed on this page. These stored values make database queries much faster, so the page as a whole is quicker to load - especially for users with hundreds of historic items!

4. Automatic detection of the default Git branch

When users selected a source control repository as the source or target on the configure page, Gearset used to select the first branch in that repository alphabetically by default. We wanted Gearset to be smarter than this! More often, teams want to select their repository’s default branch, usually the main branch, so that’s what Gearset now selects by default.

We’ve added support for this for GitHub, GitHub Enterprise, Bitbucket and Bitbucket Server, so next time you’re selecting a repository Gearset will make a better guess at which branch you might want to compare changes from. And don’t worry if main or master isn’t your repository’s default branch — Gearset pulls the default branch information directly from GitHub and Bitbucket’s APIs, so it’ll know exactly what your default branch is called!

5. Text filters now persist through page refreshes

This request came from our customer success team, as they often used the text filters on various pages in Gearset but found the filtering had disappeared whenever they refreshed a page, leaving them to re-type their filters again.

This was a prime example of a polish week task: something that was implemented within a couple of days, but will have a huge impact on the general user experience of Gearset. Our CS team and customers are already appreciating it!

Join us next time!

Come and be part of the next polish week and make a huge difference to our thousands of customers worldwide! Check out our latest engineering jobs.

We want to meet you

If you're thinking about joining us, we'd love to hear from you! Find out more about our interview process, onboarding and current openings.