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.
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 −
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 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 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)
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
These tasks include participation in −
SQA systems employ a variety of infrastructure components to operate smoothly, namely −
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
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
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
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
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 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 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.
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
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 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.