As Notarize grows, it's important that our applications and platforms perform at their very best. They need to look good, be easy to use, and function as expected. Products and services that are fresh and reliable help make good companies great.
We want to be a great company, and with a world of opportunities at our fingertips, the Notarize Engineering Team is focusing on three priorities that will set us up for future success: stability, security, and UI/UX.
Let's start by highlighting our commitment to stability.
There's always room for improvement
If our software performs poorly, gives strange error messages, fails to get the job done, or crashes unexpectedly, no one is going to use it. No product is perfect, and our applications are no exception.
At Notarize, we've always relied on the concept of "20% time." The idea is that handling technology debt, improvements, and bug fixes should only consume 20% of each developer's time. But as you can imagine, getting that to happen with consistency is not always easy.
We've seen some success by adding cleanup tickets to team sprints, but getting this to happen consistently across teams is a challenge – particularly for customer-facing teams that rely on stability.
The calls for new feature development will always be louder than the need to clean up or optimize code. Fixing non-critical bugs or catching up on test coverage will often take second place if it produces no new functionality.
This is vital work, but if it's not made a priority, it's never going to happen.
A week dedicated to stability
So this week at Notarize, we're doing something called "Stabilization Week," where we are just going to focus on tech debt, bugs, performance, etc. This required a good bit of prep work:
- We kicked it off with a cross-team call for issues. A lot of these issues already had tickets written for them, and were waiting for someone to get to them. But we got a fair amount of new ideas as well.
- Every issue got a ticket, and the tickets were tagged with a "Stabilization Week" label so they could be easily filtered and searched in Jira.
- We then prioritized the tickets. Our engineer managers and tech leads went went through the list and removed any tickets that didn't fit the spirit of Stabilization Week. That left us with two full weeks of work for every member of the team – far more than we needed – so we gave each issue a priority and distributed them among the different teams.
Those tickets are what every engineer will work on for this entire week. We won't get through the whole list, but we'll make a mighty dent.
We're putting everything in its place
You might guess that this project would draw a lot of pushback from product managers and other stakeholders. Amazingly, it received everyone's full support.
In fact, what little pushback we've seen has come from engineers themselves.
It's not that engineers don't want to handle tech debt. The fear instead is that we might resort to regularly-scheduled stabilization weeks as a crutch to handle what should be part of our normal process. It's a completely valid concern, and we'll soon brainstorm how to improve our process so that we don't need to do this on an ongoing basis.
The whole process is kind of like having a messy room. You need to have rules that set you up for success, like making sure everything has a place and putting things back in those places when you're done with them.
But if you haven't been doing that regularly, there comes a point where you need to just drop everything and spend some time cleaning up – without interruption. So this week, we're cleaning our room. We hope by the end of it we'll have some ideas on how to improve our process so that our room stays cleaner.
If you have any successful strategies for scheduling this kind of work and staying on top of it, we'd love to hear them. Share your ideas with us on Twitter @Notarize_Eng.