The SQA Unit

The structure of SQA unit varies by type and size of the organization. The following figure shows an example of a standard structure and all the components under an SQA unit. In this chapter, we will discuss the roles and responsibilities of each sub-unit.

SQA Unit

Tasks Performed by the Head of the SQA Unit

The head of the SQA unit is responsible for all the quality assurance tasks performed by the SQA unit and its sub-units. These tasks can be classified into the following categories −

  • Planning tasks
  • Management of the unit
  • SQA professional activities

Planning Tasks

  • Preparation of the proposed annual activity program and budget for the unit

  • Planning and updating the organization’s software quality management system

  • Preparation of the recommended annual SQA activities programs and SQA systems development plans for the software development and maintenance departments

Management Tasks

  • Management of the SQA team’s activities

  • Monitoring implementation of the SQA activity program

  • Nomination of team members, SQA committee members and SQA trustees

  • Preparation of special and periodic reports, e.g., the status of software quality issues within the organization and monthly performance reports

SQA Professional Activities

  • Participation in project joint committees
  • Participation in formal design reviews
  • Review and approval of deviations from specifications
  • Consultation with project managers and team leaders
  • Participation in SQA committees and forums

Project Life Cycle SQA

SQA tasks related to the project life cycle sub-unit may be classified into two groups −

  • “Pure” managerial follow-up and approval tasks (project life cycle control tasks)

  • “Hands-on” or active participation in project team SQA activities, where professional contributions are required (participation tasks)

Project Life Cycle Control Tasks

  • Follow-up of development and maintenance team's compliance with SQA procedures and work instructions

  • Approval or recommendation of software products according to the relevant procedures

  • Monitoring delivery of software maintenance services to internal and external customers

  • Monitoring customer satisfaction and maintaining contact with customer's quality assurance representatives

Participation Tasks

These tasks include participation in −

  • Contract reviews
  • Preparation and updating of project development and quality plans
  • Formal design reviews
  • Subcontractors’ formal design reviews
  • Software testing, including customer acceptance tests
  • Software acceptance tests of subcontractors’ software products
  • Installation of new software products

SQA Infrastructure Operations Tasks

SQA systems employ a variety of infrastructure components to operate smoothly, namely −

  • Procedures and work instructions
  • Supporting quality devices (templates, checklists)
  • Staff training, instruction and certification
  • Preventive and corrective actions
  • Configuration management
  • Documentation control

More specifically, the SQA sub-unit’s tasks regarding these components include −

  • Publication of updated versions of procedures, work instructions, templates, checklists, and so forth, together with their circulation in hard copy and/or by electronic means

  • Transmission of training and instruction regarding adherence to and application of SQA procedures, work instructions and similar items to new and current staff

  • Instruction of SQA trustees regarding new and revised procedures as well as development tools and methods, among other components

  • Monitoring and supporting implementation of new and revised SQA procedures

  • Follow-up of staff certification activities

  • Proposal of subjects requiring preventive and corrective actions, including participation in CAB committees

  • Follow-up of configuration management activities, including participation in CCA committees

  • Follow-up of compliance with documentation procedures and work instructions

SQA Internal Audit and Certification Tasks

The types of SQA audits carried out in or by software organizations can be classified as follows −

  • Internal audits

  • Audits of subcontractors and suppliers to evaluate their SQA systems

  • External audits performed by certification bodies

  • External audits performed by customers who wish to evaluate the SQA system prior to accepting the organization as a supplier

The first two classes of audits are initiated and performed by the SQA subunit, the last two by external bodies.

SQA unit performs the following tasks for internal SQA audits

  • Preparation of annual programs for internal SQA audits

  • Performance of internal SQA audits

  • Follow-up of corrections and improvements to be carried out by the audited teams and other units

  • Preparation of periodic summary reports of the status of audit findings, including recommendations for improvements

SQA unit performs the following tasks for audits of subcontractors and suppliers −

  • Preparation of the annual program for SQA audits of subcontractors and suppliers

  • Performance of SQA audits of subcontractors and suppliers

  • Follow-up of corrections and improvements to be carried out by the audited subcontractors and suppliers

  • Collection of data on the performance of subcontractors and suppliers from internal as well as external sources

  • Periodic evaluation of the organization’s certified subcontractors’ and suppliers’ SQA systems based on audit reports and information collected from other internal and external sources. The evaluation report includes −

    • Recommendations regarding certification of subcontractors and suppliers

    • External audits performed by certification bodies involve the following tasks −

      • Coordination of the certification audit’s contents and schedule

      • Preparation of documents specified by the certification bodies

      • Instruction of the audited teams and performance of the preparations necessary for certification audits

      • Participation in certification audits

      • Ensure required corrections and improvements are performed

SQA audits performed by the organization’s customers entail these tasks −

  • Coordination of the audit’s contents and schedule

  • Preparation of documents specified by the customer’s auditor

  • Instruction of the audited teams and performance of the preparations necessary for SQA audits by the organization’s customers

  • Participation in the audits

  • Ensure that the required corrections and improvements are performed

SQA Support Tasks

Most of the consumers of SQA support services are located within the organization. They include project managers, team leaders and SQA trustees. Their tasks include −

  • Preparation of project plans and project quality plans

  • Staffing review teams

  • Choice of measures to solve identified software development risks

  • Choice of measures to solve schedule delays and budget overruns

  • Choice of SQA metrics and software costs components

  • Use of SQA information system

  • Choice of development methodologies and tools that reflect the failure experience data accumulated by the SQA unit

SQA Standards and Procedures Tasks

The SQA sub-unit is intimately involved in deciding which SQA standards will be adopted as well as developing and maintaining the organization’s procedures. To fulfil the attendant obligations, the SQA unit is required to −

  • Prepare an annual program for the development of new procedures and procedure updates

  • Be responsible for the development of new procedures and procedure updates, with participation in appropriate committees and forums

  • Follow-up on the developments and changes in SQA and software engineering standards; introduction of additional procedures and changes relevant to the organization

  • Initiate updates and adaptations of procedures in response to changes in professional standards, including adoption or deletion of standards applied by the organization

SQA Engineering Tasks

Follow-up of professional advances, solution of operational difficulties and expert analysis of failures are the immediate objectives of this SQA sub-unit.

Hence, the main engineering tasks involve the following −

  • Testing quality and productivity aspects with respect to new development tools and new versions of currently used development tools

  • Evaluation of quality and productivity of new development and maintenance methods and method improvements

  • Development of solutions to difficulties confronted in application of currently used software development tools and methods

  • Development of methods for measuring software quality and team productivity

  • Provision of technological support to CAB committees during analysis of software development failures and formulation of proposed solutions

SQA Information Systems Tasks

SQA information systems are meant to facilitate and improve the functioning of SQA systems. The tasks involved include −

  • Development of SQA information systems for software development and maintenance units for

    • collection of activity data

    • processing of, for example, periodic reports, lists, exception reports and queries

    • processing of, for example, periodic reports, lists, exception reports and queries

  • Development of SQA information systems facilitating the SQA unit’s processing of information delivered by software development and maintenance units including estimates of software quality metrics and software quality costs

  • Updating SQA information systems

  • Development and maintenance of the organization’s SQA Internet /Intranet site

SQA Trustees and Their Tasks

SQA trustees are those members who are primarily involved in the promotion of software quality. These members provide the internal support necessary for successfully implementing SQA components.

Their tasks may vary depending upon the organizations. Accordingly, it might be unit related and/or organization-related tasks.

Unit-related Tasks

  • Support colleagues for solving the difficulties during the implementation of software quality procedures and work instructions

  • Assist the unit manager in carrying out related SQA tasks

  • Promote compliance and monitor the implementation of SQA procedures and work instructions by colleagues

  • Report substantial and systematic non-compliance events to the SQA unit

  • Report severe software quality failures to the SQA unit

Organization-related Tasks

  • Trigger changes and updates of organization-wide SQA procedures and work instructions

  • Trigger improvements of development and maintenance processes in the organization

  • Initiate applications to the CAB regarding solutions to recurrent failures observed in the respective units

  • Identify SQA training needs across the organization and propose appropriate training or instruction program to be conducted by the SQA unit

SQA Committees and Their Tasks

SQA committees can be either permanent or ad hoc. The tasks may vary considerably from organization to organization.

  • Permanent committees commonly deal with SCC (Software Change Control), CA (Corrective Actions), procedures, method development tools and quality metrics.

  • Ad hoc committees commonly deal with specific cases of general interest such as updating a specific procedure, analysis and solution of a software failure, elaborating software metrics for a targeted process or product, updating software quality costs and data collection methods for a specific issue.

Permanent SQA committees are integral parts of the SQA organizational framework; their tasks and operation are usually defined in the organization’s SQA procedures.

Ad hoc committees are established on a short-term per-problem basis, with members nominated by the executive responsible for software quality issues, the head of the SQA Unit, the SQA sub-units, permanent SQA committees, or any other body that initiated its formation and has an interest in the work. This body also defines the tasks of the ad hoc committee.