Quality Control

As much as we dislike the thought, the reality of software development is that practically all software has bugs. Bugs do not mean that the programmer has made a mistake or that the software is of poor quality. Bugs can generally be classified into two categories:

  1. Incorrect or incomplete determination or interpretation of the client's needs
  2. Incorrect or incomplete implementation of the programmer's intentions.

Tracker defines a bug as follows: "Bugs represent unintended behavior that can be related to features, for example 'login box is wrong color', and 'price should be non-negative'."

We make reasonable attempts to address both kinds of bugs as follows:

  1. We stay in close contact with the client throughout the development process. The first step in implementing a User Story is to have a conversation with the client and make sure that we understand your vision and have all the information we need to proceed.
  2. We incorporate both automated and manual testing into our development process. These tests help to ensure that our code performs as we intended it to. The client also tests our work when accepting User Stories and has the opportunity to bring issues to our attention at any point in the development of the project.

Bugs can also occur for many other reasons including, but not limited to: issues with 3rd party integration or technical debt from legacy code. It is important that the client be aware of the range of Quality Control options that we offer. To create a piece of software that is completely bug-free requires extremely rigorous analysis of all possible situations along with extensive development of automated tests. These naturally involve a significant additional commitment of time and resources on the part of the client and Singlebrook. Singlebrook’s clients usually find it most economical to have Singlebrook develop the software and then fix bugs as they come up, at Singlebrook's hourly rate. If there are sections of the Project that need to be bug-free from the beginning and which require more rigorous specification and testing, the client should notify Singlebrook of those sections at the beginning of the development process. Singlebrook can then provide estimates of time and cost, so that the client can make an informed decision about how to proceed.