Loading… Please Wait… Quality in IT project Michał Szymerski Rafał Staszewski What is quality? Quality (according to ISO 9000:2000) is the ability of the product and all its integral parts to satisfy demands of the customer or any other entity that commisioned the project (conformance to specifications) Essential subjects related to quality are: • Satisfaction of the customer is the main criteria of quality • Prevention is more crucial than inspection • Management responsibility • Although teamwork is important and essential to completion of the project, the main entity responsible for the project is the management Quality Management Quality assurance: Set of functions that are carried out throughout the process of the project creation, that aims at providing overall quality in the project Quality inspection: Inspecting each and every product of the project in order to assess their compatibility with the project requirements Quality planning: Assurance of quality must be planned in order to fully satisfy customer’s demand Quality Planning Quality planning – should start in the early phase of software creation The basis to quality planning in a project is the overall quality policy of the company(what is the managements idea twoards quality related problems). It is important to note that that this „policy” should not be strict but rather customized twoards individual projects. The main factors that should be concidered in quality policy: The projects scope The products description Standards and regulaitons well adjusted twoards the scope of the project. Standards are orders describing the workflow and characteristics of the product. Regulations are the non flexible , law requirements, organization requirements. While planning the quality it is important to take into concideration the results of other forms of planning. One of the elemetns of Q.P. is working with the user in order to verify if the way the project is being developed, satisfies him. (For software developement that would be using prototypes) Quality management - standards ISO (International Standards Organization) • Established in 1987 • Recognized worldwide • International set of five related standards for qualification of global quality assurance and quality control standards • Adherence is accomplished through an application process for ISO 9000 certification in company standards for inspecting production processes, updating records, maintaining equipment, training employees and handling customer relations • Procedures must be documented in company’s quality manual that defines the quality ensurance process. Standards continued • • • ISO 9001 – most general standard of the ISO 9000 Applies to companies that develop and create products ISO 9000-3 – auxilary document that describes software development ISO 9000 Company’s quality manual documents Used in development of Quality ensurance plan 1 Quality ensurance plan 2 Company’s quality processes Its entity is Quality ensurance plan 3 Venture quality management Quality management plan • • • • • • Result of quality planning Specifies desired product quality Specifies quality criterias Specifies company standards that are to be used in project Should be kept short Defines most important quality attributes Quality management plan - ctd Security Clearness Portability Protection Fitness to testing Ease of use Reliability Adaptability Reusability Immunity Modularity Efectiveness Solidity Complexity Learning curve Quality assurance The process of quality assurance is a set of functions that is needed in order for the project to meet its standards. We may specify 2 types of standards, that are part of quality assurance process: 1)Product standards – they relate to the project. They incorporate document standards that need to be created, such as requirements documentation hierarchy/structure , documenting standards ( expl. Commentary in the objects header), coding standards. 2)Process standards – they define the processes that need to be obeyed durring software developement. This includes defining specification processes as well as document descriptions (that should be created durring developement). There is a strict bond between quality and process standards. Product standards relate to the results of software developement process. In many cases process standards include specific process tasks, whos goal is to provide compliance with the product standards. Quality Assurance ctd. Quality assurance in projects is mostly done by an outside, project independant quality assurance branch/team, but can also be done by a team inside the project , specificly designated for this task, or by the client himself. Q.A. teams that develop standards should base them upon national and international standards such as: Progamming languages Notations Software enginering terminology Defining and writing requirements for software. Quality assurance processes and verification and aproval processes Quality assurance team should develop a "standards manual”, in which standards apropriate for the company should be defined. Process and Product Quality The main assumption of quality management is that the quality of the creation process has a direct influence on the quality of the delivered product and thus it has a very important influence on software quality Contrary to mass production systems (in which achieving an acceptable level of process quality guarantees a sustainable product quality), quality management in software development must be ensured in each and every development project or cycle Quality management process incorporates: 1) Defining processes’ standards (such as the way we make our audits, their time, precision etc) 2) 3) Monitoring the creation process in order to assure that standards are being obeyed Informing the management and the client about our software developement process The basic technique of quality assurance are audits of the quality (systematic checks aimed at finding eventual incompatibilities with the used standards) Standards creation Define process Create product Improve Process Measure Quality No Proper Quality Yes Develop standard Quality control: Quality control handles products, half-products and management work results The basic technique of quality control is inspection. This is checking and testing products in order to state if they comply with their requirements. Inspections are the basis for management decisions regarding the acceptance of a product Frequent occurences of similar problems should be a basis for modification of the work processes leading to them Software quality standards are important for quality assurance because they are a set of „best guidlines”. Following these guidelines makes our project better Software quality measures: Quality needs to be measurable. For every project, a set of measurements, which will be calculated durring the project’s life, must be prepared. The most simple types of quality measures for software developement projects are the number of errors encountered during the process of system usage and the time between their encounters Other types of measures are: The amount of code in lines Fog index (the measure of the readability of a certain fragment of text) S.Q.M. are especially very useful when it comes to detecting anomalous components, in which we have quality problems. Those components need to be thouroughly examined later There are no standard or universal measures. Companies must themselves pick their measures and analize the results based on local knowledge and conditions Quality evaluation Inspection of production process is the most commonly used quality evaluation method Software measurements are used to accumulate quantitative data about programming and software development techniques. Acquired data can be used to make conclusions about quality of the product and process used Quality management is an important part of the project, however – it must accompany the project budget; the lower the budget for quality management – the lower quality of the project Quality improvement process The fundamental assumption of quality improvement process is that product development process is most crucial to the overall quality of the project Improving the production process in order to avoid defects leads to better products In case of innovative products, people are often more important than actual production process used Factors that impact quality Technology used Process quality Product Quality Team quality Expenses, time, schedule Influence of any of these factors depends on the scale and type of venture Factors that impact quality Large ventures* The main problems: Integration Management Communication * large - complicated systems that are composed of many separate subsystems built by many different teams, in which product development can take many years Factors that impact quality Small ventures In case of small ventures, quality of the project team members is much more important than development process used. Good team should deliver a good project Inexperienced and incompetent team will, in most cases, not produce product of desired quality regardless of development technique used Development technique especially important in case of small teams Paperwork should never hold back the project Since team members spend a lot of time on planning and programming, adequate tools will greatly increase their productivity Factors that impact quality Regardless of project size, too little budget and unrealistic expectations of project completion date will greatly affect or ruin the overall quality of the project Fierce competition often casues companies to unnaturaly lower project costs in order to win contracts. This often leads to grave results as the project fails to have a suitable budget. Literature Ian Sommerville- „Inżynieria oprogramowania” WNT 2003 Wikipedia Internet sources