Quality | Quality |
Quality management cuts the cost of producing software. The sooner an error is detected, the lower the cost of the product due to impact avoidance.Software quality assurance may be defined as the set of activities providing evidence that the software product fits expected user needs. Quality is achieved by establishing, monitoring and controlling guidelines designed to obtain an integrated, properly finished software product that will have a long life. While quality assurance resides in a series of basic activities required to guarantee that software production processes are properly established and continually improved to ensure that products are in line with specifications. The procedure is accompanied by Quality Control measures, which benchmark the product to applicable standards, allowing action to be taken to handle any non-conformities that may be identified, and Quality Audits to verify that the procedures and policies established are properly followed. In short then, quality assurance is a concerted effort to ensure that the software complies with the general and specific criteria for each project, such as portability, efficiency, flexibility, reusability and scalability. The specific activities conducted within each project are thus designed to monitor and control the software project to ensure that objectives are attained to the desired level. This requires the collaboration and consensus of all involved, from project managers and the quality assurance team to programmers and the end users of the software project. The Benefits of QualityQuality management cuts the cost of producing software. The sooner an error is detected in the software, the lower the cost of the product due to impact avoidance. We believe that an error committed in the early stages of the development cycle, such as misinterpretation of any of the specifications, but which is only detected at the end, will waste a significant amount of work in the later stages of the process, with the consequent resolutions costs and loss of time. This has a major impact, particularly on products that depend for their value on time-to-market. Analysis of the effective cost of quality management reveals four key factors:
External costs can sometimes be very significantly higher than resolution itself, because they affect the reputation of the organization itself and can result in the loss of future sales. Prevention unquestionably produces the highest benefits, because it minimizes the number of defects that get through to our clients, thereby improving the quality of the product delivered and lowering production and maintenance costs. Software quality assurance frameworks and standardsThe international community has established numerous public and private bodies to promote the standardization of work processes in companies. This facilitates third party understanding of compliance with processes, at the same time as aiding inter-business cooperation in the preparation of products. The most widespread standards are those drawn up by the ISO/IEC, although in some sectors (such as software engineering) private frameworks exist to ensure higher levels of quality assurance. One of the most important of these is the SEI (Software Engineering Institute) in terms of the standardization of software development processes. Its CMMi (Capacity Maturity Model Integrated) is widely recognized throughout the industry. Kynetia holds ISO 9001:2000 certification, awarded in accordance with the ISO 90003:2004 standard, which sets the guidelines for the application of ISO 9001:2000 in the Software Engineering industry. We are constantly concerned with quality. Kynetia works continually to improve and adapt processes in compliance with ever more exacting standards from the standpoint of the finished product. Chief among these are the CMMI standards, which serve as a framework for the perfection of our Firm’s development processes. We are currently in the process of obtaining CMMI certification. Quality assurance elementsQuality assurance activities may be classified as follows:
Validation and VerificationValidation consists of the checks made at the end of the development cycle to ensure that the final product properly meets the specification of requirements and the expectations of users. The need to forestall errors arose from the need for highly reliable software in the systems of the aerospace industry at the end of the 20th century, since a failure detected at the end of production process could cause the abortion of missions and the loss of huge amounts of time and money. It was from these origins that the concept of verification emerged. Verification ensures that the product and all related sub-products constructed meet the requirements specified in the course of all activities undertaken in the course of the development cycle. The procedure is based on two key criteria:
At the same time, verification requires traceability among software elements and requirements specifications in order to ensure that all requirements, including the level of finish, performance, etc., are duly covered by tests, and that test results are repeatable even after changes have been made. Hence, verification means a process of continuous improvement that must be applied throughout the product development cycle, the configuration and management of which will allow monitoring at any time of the degree to which the procedures established to guarantee the quality of product development are followed. The critical issue with verification is the considerable increase in development costs involved. Nevertheless, if the software life cycle as a whole is considered, from the moment of conception to the moment at which the product is abandoned due to obsolescence, then verification will be found to reduce the general cost of software. An effective verification plan reduces the number of defects in the system rolled-out in the production environment by a proportion of 4 to 1. Since the cost of repairing such defects is between 20 and 100 times greater in maintenance operations than would be incurred in the development phases, the initial investment in prevention through verification procedures is amply justified. Software set-up managementThe software set-up consists of a set of software items that form a function in the business model. The purpose of set-up management is to identify all of the software elements that comprise each configuration, from specification and design documentation to the code and testing, and to control their evolution of the different phases of the product life cycle. Monitoring and follow-up are essential in the construction process, in testing and in the maintenance of the versions released. This is particularly important for change management and the reusability of software, given the interrelationships defined between the different software components. It also ensures the integrity of components when they are manipulated by the different players involved in the software construction process. The components controlled include proposals, requirements specifications, planning, analysis and design documents, source code, utilities and libraries, executables, testing plans and test scripts, and certificates and reports. Change management permits an accurate assessment of the impact of changes based on relationships between the components affected and the related documentation before any decision is taken. In terms of the reuse of code, change management ensures the identification of the elements required, because each software component and its relations with third party components, such as libraries and versions of systems are duly defined and established. The activities comprising set-up management processes may be classified in four main groups:
Where quality assurance processes are followed, they indicate that quality is assured and that the project managers can place reliance on quality. |