SOFTWARE PROJECT MANAGEMENT UNIT I TOTAL QUALITY MANAGEMENT Definition TQM is a management philosophy that seeks to integrate all organizational functions (marketing, finance, design, engineering, and production, customer service, etc.) to focus on meeting customer needs and organizational objectives. The simple objective of TQM is “Do the right things, right the first time, every time.” Quality can be quantified as Q=P/E where Q = Quality, P = Performance, E = Expectation Six Basic Concepts Of Total Quality Management 1. Management Commitment 2. Customer Focus 3. Involvement and utilization of entire work force 4. Continuous Improvement 5. Treating Suppliers as Partners 6. Establish Performance Measures for the processes TQM can be implemented successfully in any part of a business, such as: • Accounting • Field servicing • Finance • Legal and administration • Maintenance • Manufacturing • Materials management • Research and development • Sales and marketing Pillars Of TQM: Problem solving discipline Interpersonal skills Teamwork Quality improvement process. 1 SOFTWARE PROJECT MANAGEMENT Major Characteristics • The essential characteristics of an effective TQM system are company member, from the CEO to the lowest level employee, is focused on product or service quality. If management is not behind TQM, then it will fail. • Everyone must have the required training and be familiar with the necessary TQM techniques. • Anyone can suggest areas for improvement - as general operatives will be more familiar with their work station than anyone else is, valuable ideas for improvement at a production line level can, in many cases, come from line workers. • All departments are expected to focus on quality and productivity improvement and implement changes for their area. • In addition, all departments interact with each other to fix common problems in the product or process. • Collaboration on external issues (end-user defects for example) is expected from all departments. Process Improvement Cycle: Implementation Process Must begin from top management Cannot be delegated (lack of involvement cited as principle reason for failure) Top/senior management must be educated on TQM philosophy and concepts Visits to TQM companies, read books, attend seminars Need a roadmap/framework for implementation consider timing (any crisis) Formation of Quality Council – policies, strategies, programmes 2 SOFTWARE PROJECT MANAGEMENT Advantages of Total Quality Management Some of the advantages of total quality management are: 1. Emphasizing the needs of the market: TQM helps in highlighting the needs of the market. Its application is universal and helps the organization to identify and meet the needs the market in a better way. 2. Assures better quality performance in every sphere of activity: Adverse and nonparticipative attitudes of the employees are the biggest obstacles in the organization’s success, growth and advancement. TQM stresses on bringing attitudinal changes and improvements in the performance of employees by promoting proper work culture and effective team work. It provides excellent opportunities for self development and increasing employee’s interest in the job. 3. Helps in checking non-productive activities and waste: Every organization aims at improving productivity as well as reduction in cost so as to result in increase in profitability. Under TQM, quality improvement teams are constituted to reduce waste and inefficiency of every king by introducing systematic approach. Such efforts are helpful in achieving cost-effectiveness and safety in the organization. 4. Helpful in meeting the competition: TQM techniques are greatly helpful in understanding the competition and also developing an effective combating strategy. Due to the cut throat competition, the very survival of many organizations has become very vital issue. TQM helps in understanding the customers as well as the market. It provides an opportunity to the organization to meet the competition by resorting to the techniques of TQM. 5. It helps in developing an adequate system of communication: Faulty and inadequate communication and improper procedures act as stumbling blocks in the way of proper development of an organization. It results in misunderstanding, low- productivity, poor quality, duplication of efforts and low morale. TQM techniques bind together members of various related sections, departments and levels of management for effective communication and interaction. 6. Continuous review of progress: TQM helps to review the process needed to develop the strategy of never ending improvement. Quality improvement efforts have to be undertaken continuously to meet the dynamic challenges. From the above, it can be concluded that TQM results in both tangible and intangible gains. ************** 3 SOFTWARE PROJECT MANAGEMENT SIX SIGMA Definition A Strategy to improve the process quality by identifying and eliminating defects and minimizing variations in process outputs A data driven approach based on Measurement of the process variation using Statistical Process Control Goal The goal of Six Sigma is to reduce process variation. A structured Implementation approach based on a Design Measure Analyze Improve and Control(DMAIC) cycle and certified experts. Key Concepts of Six Sigma Critical to Quality : Attributes most important to the customer Defect Process Capability: What your process can deliver Variation Stable Operations : Ensuring consistent, predictable processes to improve what :Failing to deliver what the customer wants : What the customer sees and feels the customer sees and feels Design for SixSigma: Designing to meet customer needs and process capability Improving Quality Improving quality means reducing the defects per million opportunities (DPMO). There are two attributes to this metric that can be controlled: Opportunities – reducing the number of steps, handoffs and other “opportunities” will help improve quality Defects – reducing the number of defects for each process step through continuous process improvement will help improve quality. “Defect” is defined as any process output that does not meet the customer’s specifications. Statistical Process Control (SPC) • Control charting is the primary tool of SPC • Control charts provide information about the stability/predictability of the 4 SOFTWARE PROJECT MANAGEMENT process, specifically with regard to its Central tendency (to target value) and Variation • SPC charts are time-sequence charts of important process or product characteristics Six Sigma Process (DMAIC) Define- Identify key characteristics important to the customer Measure- Categorize key input and output characteristics, verify Measurement systems and Collect data and establish the baseline performance Analyze- Convert raw data into information to provide insights into the process Improve - Develop solutions to improve process capability and compare the results to the baseline performance Control - Monitor the process to assure no unexpected changes occur Types of Process Variation Common Cause Variation: It is the sum of many chances causes, none traceable to a single major cause. Common cause variation is essentially the noise in the system. When a process is operating subject to common cause variation it is in a state of statistical control. Special Cause Variation: It is due to differences between people, machines, materials, methods, etc. The occurrence of a special (or assignable) cause results in an out of control condition. Advantages: 1. Six Sigma is driven by the customer and thus aims to achieve maximum customer satisfaction and minimizing the defects. It targets the customer delight and new innovative ways to exceed the customer expectations. 2. Implementation of Six Sigma methodology leads to rise of profitability and reduction in costs. Thus improvements achieved are directly related to financial results. 3. Six Sigma is successfully implemented in virtually every business category including return on sales, return on investment, employment growth and stock value growth. 4. Six Sigma targets Variation in the processes and focuses on the process improvement rather than final outcome. 5 SOFTWARE PROJECT MANAGEMENT 5. Six Sigma is prospective methodology as compared to other quality programs as it focuses on prevention on defects rather than fixing it. 6. It is attentive to the entire business processes and training is integral to the management system where the top down approach ensures that every good thing is capitalized and every bad thing is quickly removed. Disadvantages 1. Applicability of Six Sigma is being argued among the Six Sigma critics. They opined that the quality standards should be according to specific task and measuring 3.4 defects per million as standard leads to more time spent in areas which are less profitable. 2. Six Sigma gives emphasis on the rigidity of the process which basically contradicts the innovation and kills the creativity. The innovative approach implies deviations in production, the redundancy, the unusual solutions, insufficient study which are opposite to Six Sigma principles. 3. People argue that Six Sigma is a bit gimmicky and simply a rebranding of the continuous improvement techniques and tools as practiced by Toyota. It thus promotes outsourcing of improvement projects with lack of accountability. 4. Six Sigma implementation constantly require skilled man force. Thus control and employee dedication are hard to accomplish if it’s not implemented regularly. 5. While converting the theoretical concepts into practical applications there are lot to real time barriers which needs to be resolved. **************** 6 SOFTWARE PROJECT MANAGEMENT SOFTWARE QUALITY Definition Concerned with ensuring that the required level of quality is achieved in a software product. It is also the conformance to meeting the requirements. Involves defining appropriate quality standards and procedures and ensuring that these are followed Should aim to develop a ‘quality culture’ where quality is seen as everyone’s responsibility Quality management activities Quality assurance • Establish organisational procedures and standards for quality Quality planning • Select applicable procedures and standards for a particular project and modify these as required Quality control • Ensure that procedures and standards are followed by the software development team Quality Assurance and Standards Quality assurance is the process of defining how software quality can be achieved and how the development organization knows that the software has the required level of quality. 7 SOFTWARE PROJECT MANAGEMENT Quality assurance standards • Product standards • Product standards Software standards Are based on knowledge (“best-practice” or “state-of-the-art”) Provide a framework for implementing a quality assurance process Assist/support continuity in practice within an organization Documentation Standards Particularly important documents are the tangible manifestation of the software Documentation process standards • Document standards • How documents should be developed, validated and maintained Concerned with document contents, structure, and appearance Document interchange standards • How documents are stored and interchanged between different documentation systems 8 SOFTWARE PROJECT MANAGEMENT Software Quality Management Processes Planning software quality involves; defining the required product in terms of its quality o (internal and external) characteristics o Planning the processes to achieve the required product Characteristics that govern how the product works in its environment are called external, which include, for example, usability and reliability Characteristic related to how the product was developed are called internal quality characteristics, and include, for example, structural complexity, size, test coverage, and fault rates Quality assurance process: ensuring that the software products and processes in the project life cycle conform to their specified requirements by planning, enacting, and performing a set of activities to provide adequate confidence that the quality is being built into the software Verification and validation processes: assessing software products throughout the product life- cycle Review and audit processes: involving Management reviews, Technical reviews, Inspections, Walk- through and Audits Quality Planning Quality planning is the process of developing a quality plan for the project A quality plan involves • Product introduction: A description of the product, its intended market and the quality expectation for the product • Product plans: The critical release dates and responsibilities for the product along with plans for distribution and product servicing • Process descriptions: the development and service processes that should be used for product development and management • Quality Goals: The quality goals and plans for the product including an identification and justification of critical product quality attributes • Risks and risk management: The key risks that might affect product quality and the actions to address these risks 9 SOFTWARE PROJECT MANAGEMENT Software product metrics Quality Control Checking the software development process to ensure that procedures and standards are being followed Two approaches to quality control • Quality reviews • Automated software assessment and software measurement Quality Reviews: The principal method of validating the quality of a process or of a product Group examined part or all of a process or system and its documentation to find potential problems There are different types of review with different objectives • Inspections for defect removal (product) • Reviews for progress assessment(product and process) • Quality reviews (product and standards) 10 SOFTWARE PROJECT MANAGEMENT McCall’s Quality Factors and Criteria • The 11 quality factors defined in the above Table have been grouped into three broad categories. – Product operation – Product revision – Product transition 11 SOFTWARE PROJECT MANAGEMENT McCall’s Quality Criteria ************ 12 SOFTWARE PROJECT MANAGEMENT ISO 9126 Overview of the ISO 9126 standard ISO 9126 is an international standard for the evaluation of software quality. The standard is divided into four parts as follows: quality model; external metrics; internal metrics; and quality in use metrics. The ISO 9126 software quality model identifies 6 main quality characteristics, namely: • Functionality • Reliability • Usability • Efficiency • Maintainability • Portability Functionality • Functionality is the essential purpose of any product or service. A sales order system should also provide the following functions: • Record sales order product, price and quantity. • Calculate total price. • Calculate appropriate sales tax. • Calculate date available to ship, based on inventory. • Generate purchase orders when stock falls below a given threshold. • The relationship between software functionality within an overall business process is outside the scope of ISO 9126 and it is only the software functionality, or essential purpose of the software component, that is of interest for ISO 9126. Reliability • Once a software system is functioning, as specified, and delivered the reliability characteristic defines the capability of the system to maintain its service provision under defined conditions for defined periods of time. One aspect of this characteristic is fault tolerance that is the ability of a system to withstand component failure. For example if the network goes down for 20 seconds then comes back the system should be able to recover and continue functioning. Usability • Usability only exists with regard to functionality and refers to the ease of use for a given function. For example a function of an ATM machine is to dispense cash as requested. Placing common amounts on the screen for selection, i.e. $20.00, $40.00, $100.00 etc., does not impact the function of the ATM but addresses the Usability of the function. The ability to learn how to use a system (learnability) is also a major sub characteristic of usability. Efficiency • This characteristic is concerned with the system resources used when providing the required functionality. The amount of disk space, memory, network etc. provides a good indication of this characteristic. As with a number of these characteristics, there are overlaps. For example the usability of a system is influenced by the system's Performance, in that if a system takes 3 hours to respond the system would not be easy to use although the essential issue is a performance or efficiency characteristic. 13 SOFTWARE PROJECT MANAGEMENT Maintainability • The ability to identify and fix a fault within a software component is what the maintainability characteristic addresses. In other software quality models this characteristic is referenced as supportability. Maintainability is impacted by code readability or complexity as well as modularization. Anything that helps with identifying the cause of a fault and then fixing the fault is the concern of maintainability. Also the ability to verify (or test) a system, i.e. testability, is one of the sub characteristics of maintainability. Portability • This characteristic refers to how well the software can adopt to changes in its environment or with its requirements. The sub characteristics of this characteristic include adaptability. Object oriented design and implementation practices can contribute to the extent to which this characteristic is present in a given system. Characteristics and Sub-characteristics for the ISO 9126 Quality Model is:Characteristics Sub-characteristics Definitions This is the essential Functionality characteristic and Suitability refers to the appropriateness (to specification) of the functions of the software. This refers to the correctness of the functions, an ATM may Accurateness provide a cash dispensing function but is the amount correct? A given software component or system does not typically function in isolation. This sub Interoperability characteristic concerns the Functionality ability of a software component to interact with other components or systems. Where appropriate certain industry (or government) laws and guidelines need to be Compliance complied with, i.e. SOX. This sub characteristic addresses the compliant capability of software. This sub characteristic relates Security to unauthorized access to the software functions. This sub characteristic concerns Maturity frequency of failure of the software. The ability of software to Reliability withstand (and recover) from Fault tolerance component, or environmental, failure. Recoverability Ability to bring back a failed 14 SOFTWARE PROJECT MANAGEMENT Understandability Usability Learnability Operability Time behavior Efficiency Resource behavior Analyzability Maintainability Changeability Stability Testability Adaptability Installability Portability Conformance Replaceability system to full operation, including data and network connections. Determines the ease of which the systems functions can be understood, relates to user mental models in Human Computer Interaction methods. Learning effort for different users, i.e. novice, expert, casual etc. Ability of the software to be easily operated by a given user in a given environment. Characterizes response times for a given thru put, i.e. transaction rate. Characterizes resources used, i.e. memory, cpu, disk and network usage. Characterizes the ability to identify the root cause of a failure within the software. Characterizes the amount of effort to change a system. Characterizes the sensitivity to change of a given system that is the negative impact that may be caused by system changes. Characterizes the effort needed to verify (test) a system change. Characterizes the ability of the system to change to new specifications or operating environments. Characterizes the effort required to install the software. Similar to compliance for functionality, but this characteristic relates to portability. One example would be Open SQL conformance which relates to portability of database used. Characterizes the plug and play aspect of software components, that is how easy is it to exchange a given software component within a specified environment. ************* 15 SOFTWARE PROJECT MANAGEMENT EXTERNAL STANDARDS BS EN ISO 9001 The British standard is now called BS EN ISO 9001:1994, which is identical to the international standard, ISO 9001:1994. Standards such as the ISO 9000 series aim to ensure that a monitoring and control system to check quality is in place. They are concerned with the certification of the development process, not of the end product. The ISO 9000 series govern quality systems in general terms and not just those in the software development environment. Let us examine how the standard works. A primary task is to identify those things that are to be the subject of quality requirements. Having defined the requirements, a system must be put in place to check that the requirements are being fulfilled and that corrective action is being taken where necessary. An overview of BS EN ISO 9001 QMS requirements In order for a quality management system (QMS) to meet the standard it has to conform to certain requirements which are summarized below. (a) The management must define and document the policy concerning quality and must ensure that this policy is communicated to all levels of the organization. (b) All quality control procedures must be documented. (c) All contracts to supply goods or services must contain mutually agreed requirements that the developer is capable of delivering. (d) There must be procedures to control and verify the design of the system to be supplied so that it meets the requirements agreed with the customer. (e) There must be procedures to approve design and other documentation. (f) Where components of the system to be supplied to the client are obtained from third parties there must be procedures to ensure, check and maintain the quality of these components. (g) Individual products must be identifiable as should their components. (h) The process by which the final product is created must be planned and monitored. (i) Inspection and testing must take place during the development phase, at its completion and before delivery. Tests and inspections must also be carried out on components obtained from third parties. 16 SOFTWARE PROJECT MANAGEMENT (j) The equipment used in the production process itself must be properly controlled with respect to quality. (k) The testing status of all components and systems must be clearly recorded at all times. (1) Care must be taken to ensure that items that are known to be defective are not inadvertently used. (m) When a defect is detected, measures must be undertaken to remove the defective part and to ensure that the defect does not occur again. (n) Satisfactory procedures must be in place to deal with correct handling, storage, packaging and delivery of the product. (o) Sufficient records must be maintained to demonstrate that the quality system is working satisfactorily. (p) The software quality management system must be audited on a regular basis. (q) Servicing and support activities must be subject to the quality management system. (r) The developer must establish appropriate statistical techniques to verify the acceptability of the final product. Identify specific instances in a software development environment where the requirements about the control of equipment (j), the recording of the testing status of all components (k), and the correct handling, storage, packaging and delivery of the product (m) would be relevant. What procedures would apply in a software environment in relation to these requirements? TickIT The Department of Trade and Industry (DTI) have formulated example, ISO 9000-3. The TickIT standards which give an interpretation of these standards, which applies specifically to software development. This includes such requirements as: • a detailed development plan is required before development is embarked upon; • change control procedures should be used at all stages of development; • design reviews must take place; • the suitability of the design methodology must be reviewed; • progress must be reviewed on a systematic basis; 17 SOFTWARE PROJECT MANAGEMENT • it must be possible to trace back the features of software design to specifications and requirements; • designs must be properly documented; • suitable test plans, specifications and records must be produced; • a code of practice must be in place which governs the way the software is developed. The code of practice must include the requirements that: • the design must be broken down into levels, each with identifiable inputs and outputs; • software must be organized into modules; • a module must normally perform a single function or a set of related functions; • a plain language description must exist for each module. Capability Maturity Model (CMM) The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development center sponsored by the U.S. Department of Defense (DoD). CMM's Five Maturity Levels of Software Processes • At the initial level, processes are disorganized, even chaotic. Success is likely to depend on individual efforts, and is not considered to be repeatable, because processes would not be sufficiently defined and documented to allow them to be replicated. • At the repeatable level, basic project management techniques are established, and successes could be repeated, because the requisite processes would have been made established, defined, and documented. • At the defined level, an organization has developed its own standard software process through greater attention to documentation, standardization, and 18 SOFTWARE PROJECT MANAGEMENT integration. • At the managed level, an organization monitors and controls its own processes through data collection and analysis. • At the optimizing level, processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs. Advantages and Disadvantages of CMM 1) High precision and accuracy 2) Requires less labor 3) Accurate dimensions can be obtained just by knowing the coordinates and distance between the two reference points. 4) Robustness against external force and error accumulation. **************** 19