Skip to content
Article

You Get What You Pay For: Measuring Software Quality

“You get what you pay for” is a phrase that applies to many parts of life, and software development is no exception. However, much of what goes into software development is a bit of a mystery to the layman, and understandably so. 

It took me four years of education to gain a cursory understanding and many more years of hands-on experience to gain real knowledge of software development. So if you aren’t a technical expert and you’re paying for software development services, how can you truly evaluate quality? 

The difference often lies in four areas: change management, planning and review, automation, and testing. 

Simply put, companies that get these right produce higher quality software than those that don’t. These key elements drive efficiency, building software with fewer errors while creating a structure that facilitates future development

Change Management

Source Control

We store code in a source control repository, meaning every change we make is tracked and saved. Furthermore, multiple developers can work on a project at once without fear of overwriting each other’s changes. 

We also practice Infrastructure as Code. This means that hosting environments are scripted as code and stored in the repository, ensuring that infrastructure can be stood up in a repeatable manner. The benefits include simplified maintenance, testing, and disaster recovery.

Versioned Releases

Every deployment is planned and versioned so that we know the exact state of our software and when it got there. Being able to reference past work enables us to add new features quickly and easily.

Planning & Review

Feature Specifications

Every feature is planned using a consistent format. We outline the feature’s business objective, document our assumptions and questions, outline dependencies, formulate a work plan, and determine how to test if it’s working correctly. We prefer to measure twice, cut once.

Code Reviews

Every line of code that’s written is reviewed by another developer. Nothing is released without peer review and approval.

Automation

Continuous Integration

Code from all developers is run through software that compiles or parses the code, triggers the automated tests, and reports back on coding style and complexity. This happens daily (sometimes several times a day) and allows us to detect problems early – before code is deployed.

Automated Deployments

We remove the human element of error by automating our deployments. Continuous Integration Servers run in parallel with deployment tools to ensure that our clients’ code reaches the intended servers efficiently and consistently.

Testing

Automated Tests

Every project is shipped with automated tests in place to ensure performance, accessibility, and predictable functionality. We use unit tests, integration tests, visual regression tests, accessibility tests, and load tests to ensure that the software we build behaves exactly as it should.

Acceptance Criteria

Acceptance criteria define the technical requirements of development work, and we write our acceptance criteria in Gherkin. This provides the perfect blend of human readability with technical specificity, and can also be used with automated testing.

Quality Assurance

We still test the good old fashioned way too. Every feature is tested against its acceptance criteria by a Quality Assurance Engineer. Before a feature is released, we ensure that the user experience is precisely as we intended it to be.

Spend Your Money Wisely

Through effective change management, planning and review, automation, and testing, we produce top quality software for our clients. 

If you’re already working with a software development partner, ask if they’re doing these things for your project. If they aren’t, then you’re likely getting less than you deserve. Contact us today for a free consultation, and we can discuss applying these best practices for your next software development project.

The Atlantic BT Manifesto

The Ultimate Guide To Planning A Complex Web Project

Insights

Atlantic BT's Insights

We’re sharing the latest concepts in tech, design, and software development. Learn more about our findings.