Last updated · 29 October 2024
Technical elements of quality
Here, though, we’re looking at the technical elements of what quality means as an engineer at Significa. Let’s start with the mandatory elements of how we maintain standards:
Quality is all-encompassing. If you’ve already read The Ethos of Engineering, you’ll know that by now. If you haven’t, head over there first and then come back here — it’ll help clarify this page. We believe the best software we build requires minimal maintenance effort — it’s incredibly rewarding to see something still running smoothly two years post-launch without major issues.
In this section of our Handbook, we’ll explore the technical elements that define quality for engineers at Significa, starting with the essential standards we maintain.
Code readability and maintainability:
We strive to excel on this — you can’t be surprised by now. Fact: you can’t be the best without doing quality work. Beyond that, a well-structured codebase keeps everyone engaged and happy. If a project is poorly maintained, it creates frustration for developers, project managers, designers, and clients alike.
Imagine reaching the three-month development mark only to find the project is not maintainable, leading to unpredictable development speeds. This poses operational risks that will likely jeopardise deadlines and budgets.
Happy and engaged teams thrive when projects are maintainable, featuring good code quality and relevant documentation. Simple as that.
Another question you might have is how we maintain development speed while ensuring quality. This challenge is common in software development, but our philosophy centres around simplicity. We firmly believe that software should be straightforward. When complexity creeps in, development and maintenance take longer, or quality suffers. We don’t compromise on quality — it’s our pride at Significa, and as a developer here, it should be yours too. Here’s how we approach this challenge:
Code reviews
Code reviews are essential for ensuring code standards and promoting knowledge sharing within the team.
Linting and formatting
We utilise tools to enforce predefined coding patterns, ensuring developers aren’t wasting time on formatting. #AutomateEverything
Static code analysis
Depending on the project and Tech stack, we employ tools that help prevent issues before code review or runtime.
Tests
Great software needs testing. While tests can sometimes feel like a delay in the early stages, we advocate for balanced decisions regarding their necessity. However, any component that processes data must be covered by tests.