Does Your IT Vendor Care About Code Quality?

In today’s competitive market established companies and even startups look to outsource their software development work due to many reasons. Budget, time to market and availability of expertise rank high among them. But one crucial factor that gets overlooked when you outsource development is the quality of the code. I think the lack of code quality is due to two main reasons

  1. You get what you pay for - i.e. the vendor does not have good engineers
  2. They don’t care because its a short engagement for them and it’s you who has to maintain the code

Why code quality is important?

So why should you care about code quality if you are getting a product that works perfectly?

  • Reduced maintainability
  • Security flaws
  • Scalability and performance issues
  • Reduces the lifetime of the product

are among many of the problems caused by bad code. The term “technical debt” correctly describes the situation caused by bad code because you end up paying the original debt together with interest.

XKCD on Code Quality

How do you make sure your vendor can deliver quality code?

If you ask the right questions during your vendor shortlisting process, you will greatly reduce the risk of ending up with a terrible codebase.

Can they describe and justify the architecture/tech stack?

You should make sure that your vendor can describe the architecture and justify it against your functional and non-functional requirements (scalability, performance, and growth plans). Choosing the correct tech stack out of the plethora of choices out there can significantly reduce the TCO. If you don’t have the technical resources you can ask the vendor to document the architecture and ask a third party to verify it.

Do they have code reviews as part of their technical process?

Code reviews are an important ingredient of a healthy development culture. It helps teams catch issues in code and it is a good continuous learning opportunity for engineers. Pull requests are a good tool to enforce peer reviews and a short end of sprint code review will let the team share their view on new code written.

Do they write unit tests?

Unit tests play a vital role in enforcing good design in early development phases because they encourage loosely coupled components. When it comes to maintenance and refactoring unit tests are an invaluable health monitor that makes sure nothing is broken.

Do they use tools to monitor quality?

Although it is true that some aspects of quality are impossible to measure objectively, engineering teams nonetheless should strive to measure relevant metrics and work on improving them. Code analysis tools and quality platforms like SonarQube and continuous integration tools can be used to maintain code quality.

If your vendor satisfies the above criteria you can rest assured that they will deliver a quality product. They might not be the cheapest vendor but having a good codebase will reduce your total cost of ownership in the long term.

We at Wollstra Tech go to great lengths to maintain our code quality. So if you are looking for a strategic alliance with a software engineering partner, hire us for your next development project and reap the benefits of a quality sensitive approach.

Chamindu Munasinghe CTO August 28, 2017