Softwire

Quality Software Development

Softwire employ an in-house quality process called the Softwire Quality System (SQS). This is an ISO 9000-based process that covers all stages of the software development lifecycle. The SQS provides a comprehensive framework for development projects without imposing an excessive administration overhead. It helps ensure that all development tasks are carried out in a structured and professional manner, thereby enabling us to provide quality, timely delivery of software to our customers.

The most important way we achieve quality in our work is through the technical excellence of our staff - no process in the world can turn bad code into good - and in particular by ensuring that all work is peer-reviewed. One of the key roles of the SQS therefore is providing guidelines for the review process and ensuring that reviews happen.

We are also happy to adapt our approach to fit within the project management framework being adopted by our customers, and we have project managers trained in the application of a number of leading project management methodologies, e.g. PRINCE2.

The SQS covers the following areas of the development process.

Management and control

  • Project plan
    The project plan defines clearly how the project is going to be managed to ensure an on-time, high quality delivery of the agreed function, and to provide a basis to allow management of change throughout the course of the project.
  • Test plan
    Testing is usually carried out in several phases. The test plan defines the overall strategy for testing (i.e., what testing is to be done and in what phases), and the details of the testing performed in each phase.
  • Technical review
    The technical review phases ensure the technical accuracy of functional specifications, designs, code and other similar deliverables. The technical review process provides the key mechanism by which quality of the project deliverables is assured.
  • Version control
    The SQS version control process provides a mechanism for identifying, controlling and tracking the various versions of electronic files used during the lifetime of a project (e.g., source code, specification documents etc.).
  • Defect tracking
    Defect tracking allows us to monitor the quality of our developments. This provides benefits both in terms of (a) identification of components showing high defect levels, indicating quality problems and the need for investigative action; and (b) identification of components with unusually low defect levels, indicating a possibly deficiency in review or testing.

Implementation

  • Functional specification
    The functional specification defines clearly the functions of the product prior to performing the design and later stages of implementation.
  • High level design
    The high level design documents how the functional specification is implemented to provide the required solution to the customer.
  • Low level design
    The low level design further decomposes the components identified in the high level design to document their proposed implementation.
  • Code
    The purpose of the code phase is to produce consistent, maintainable code that implements the design and functional specification. The code phase covers not just executable code, but all other manually created machine-readable files which do not go through any other review process (e.g., text for error logs, help messages etc.).

Testing and rollout

  • Unit test
    The purpose of unit test is to check a single component in isolation to validate that it performs its specific function correctly.
  • Functional verification test
    The purpose of functional verification test is to check that a product conforms fully to its functional specification.
  • System test
    System testing examines a broad range of product behaviour in a variety of operating conditions and environments.
  • Release
    The release process ensures that deliveries to customers are complete and include enough information for the customer to use the delivery effectively.