Agile SW-Development within a QM System

Similar documents
Understanding Model Representations and Levels: What Do They Mean?

Quality Management with CMMI for Development v.1.3 (2013)

ISO 9000 and Total Quality

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

By: MSMZ. Standardization

ISO Approach CPA Stephen Obock Associate Director, KPMG August 2018

Software Project Management Sixth Edition. Chapter Software process quality

Chapter 6. Software Quality Management & Estimation

Quality Systems Frameworks. RIT Software Engineering

Overview of Session. Process Standards and Introduction to SEI Models. Software Quality. Software Quality. Quality Management

Software Quality Management. Kristian Sandahl

Software Engineering Lecture 5 Agile Software Development

Chapter 3 Agile Software Development. Part 1b

Agile Essentials Track: Business Services

ISO Management System Standards, and Annex SL. Charles Corrie Secretary ISO/TC 176/SC 2

The Quality Paradigm. Quality Paradigm Elements

CHAPTER 8 INTEGRATION OF QMS AND LMS

Software Process Evaluation

ISO 9000 Certification

Software technology 3. Process improvement models. BSc Course Dr. Katalin Balla

Chapter 3 Agile Software Development

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Automated quality excellence evaluation

SHORT ANSWER QUESTIONS (KEY) UNIT- I

4180: Defined Processes, Evidence, and Rescuing Corporate Knowledge: Achieving Standards Compliance in Agile and Lean Environments

This chapter illustrates the evolutionary differences between

Where Is The Discipline In Disciplined Agility?

Two Branches of Software Engineering

What is ISO/IEC 20000?

agilesem an agile System Development Method at Siemens in CEE Eva Kišoňová, Ralph Miarka SW Quality Days Vienna January 2012

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

GSR Management System - A Guide for effective implementation

Agile Projects 7. Agile Project Management 21

1 INTRODUCTION TO QUALITY MANAGEMENT

European Survey on Quality Management Requirement Analysis of European SME s

Influence of quality management systems on the environmental changes and the work conditions in industry

CMM and CMMI : Show Me the Value!

Software Quality. Unit 8: Quality Management by Processes

Software Engineering Chap.3 - Agile Software Development

Agile Methods. Course "Softwareprozesse" Lutz Prechelt Freie Universität Berlin, Institut für Informatik

SOFTWARE ENGINEERING SOFTWARE PROCESS. Saulius Ragaišis.

What is ISO 9001 QMS? Business Beam

A Measurement Approach Integrating ISO 15939, CMMI and the ISBSG

Future development of the quality profession

Quality Management of Software and Systems: Software Process Assessments

PROCESS MANAGEMENT BASIC PRINCIPLES AND METHODICS OF IMPLEMENTATION INTO EXISTING COMPANY SYSTEM

Olena Abramova, Director, Personnel Certification Body of the Ukrainian Association for Quality, Ukraine

Applications of The Deming s 14 Principles. Who was Dr. W. Edwards Deming? Deming s Principles 10/14/13. W. Edwards Deming s 14 Points

Agile Software Development:

EVERYTHING YOU VE HEARD ABOUT AGILE DEVELOPMENT IS WRONG

Agile Methods. Course "Softwareprozesse" Lutz Prechelt Freie Universität Berlin, Institut für Informatik

ISO Internal Audit: A Plain English Guide

PRACTICAL EXPERIENCE OF THE EFQM MODEL IMPLEMENTATION IN THE CONDITIONS OF PUBLIC UNIVERSITY.

Software Engineering Part 2

WHATS NEW IN ISO 9001:2015

Project Quality Management

MTAT Software Engineering Management

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Chapter 2 Strategic Marketing Planning

How to Explain the Value of Every CMMI Practice

Quality Management Systems. A brief introduction to ISO9001:2008, what it is about and the benefits to its introduction.

Total Quality Management

Extending an Agile Method to Support Requirements Management and Development in Conformance to CMMI

ISO 9001 Quality Management Systems

Software Engineering Inspection Models Continued

04. Agile Development

INTERNATIONAL STANDARD

PAYIQ METHODOLOGY RELEASE INTRODUCTION TO PROJECT MANAGEMENT GUIDE. iq Payments Oy

Global quality and regulatory compliance QUALITY AWARENESS IS AN ATTITUDE OF MIND

Lecture 8 Agile Software Development

Software Engineering. Lecture 7: CMMI

Software Engineering

Chapter 2: Project Methodologies and Processes

INTERNATIONAL STANDARD

AN EXAMINATION OF A RULE-BASED EXPERT SYSTEM TO AID IN THE IMPLEMENTATION OF THE CMMI FRAMEWORK

On the Path to ISO Accreditation

Committed to Excellence Information Brochure Helping with your decision to apply

Update Observations of the Relationships between CMMI and ISO 9001:2000

Software Quality Engineering Courses Offered by The Westfall Team

Drive Predictability with Visual Studio Team System 2008

Evolutionary Differences Between CMM for Software and the CMMI

Software Quality Engineering Courses Offered by The Westfall Team

Supplier Partnership. BPF 2123 Quality Management System

Process Improvement. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 28 Slide 1

WHY QUALITY IS IMPORTANT? PRODUCT AND QUALITY COSTS OF POOR QUALITY COST OF ACHIEVING GOOD QUALITY. Prevention costs.

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

QUALITY MANAGEMENT SYSTEM 8/30/2017

EFQM MODEL CRITERIA APPLICABLE TO ANY ORGANISATION

SUCCESS STORY MANUFACTURING SECTOR KOSTWEIN HOLDING GMBH

DORNERWORKS QUALITY SYSTEM

CSE 435 Software Engineering. Sept 14, 2015

Quality awards. Kalevi Aaltonen, Aalto University

Software Quality Assurance

ISO9001:2008 SYSTEM KARAN ADVISER & INFORMATION CENTER QUALITY MANAGEMENT SYSTEM SYSTEM KARAN ADVISER & INFORMATION CENTER

Software quality management

Trend and Business. Business and Quality Management

Common Management Process Model of New TQM Based on the Situation Analysis

Proposed Approach to Heterogeneous CMMI. Appraisals. Joseph V. Vandeville. 14 November 2007

In this unit we are going to speak about quality management in organizations.

The Third-Party Process: Waste of Resources or Added Value?

Transcription:

20.7.2005 Zopf Agile SW-Development within a QM System Abstract Agility is IN, heavy methods are OUT. There is a big hype about Extreme Programming, SCRUM, Crystal only to mention a few of the new paradigms. Many software developers are convinced that the new attitude solves most of the problems of the past and is adequate to the challenges of today, especially in the fast world of internet with internet time. On the other hand there is experience with CMMI that shows that customer satisfaction is growing with maturity level. There are many calls for tender that explicitly ask for ISO 9001 certification or for a certain CMMI level. Many companies not only are able to show an ISO 9000 certificate but really believe in quality management and successfully manage their business with total quality management (TQM) or are at least on the way to organise their business according to TQM Models such as the model for business excellence of the European Foundation for Quality Management (EFQM). How do this both worlds fit together? Siegfried Zopf, Dipl.-Ing., SIEMENS AG Austria, Program and Systems Engineering (PSE) Gudrunstr.11, A-1100 Vienna, Austria phone: +43 51707 46303, email: Siegfried.Zopf@siemens.com Processes The idea of writing down how the work should be done by everyone in department or company (I will call it organisation in the rest of the text) is a basic concept of quality management. Whenever you find out how to do it better you change the description and everybody who follows the new description does his job better. That is the idea behind the famous Deming Wheel (Fig.1). It is the kernel of quality management systems. Continual improvement, Kaizen or corporate learning are built on this. - 1 -

Figure 1: Deming Wheel This scheme became perfected. Software development processes were worked out in detail for the development on the whole as well as for the sub processes. Those process descriptions tended to become voluminous because the authors mostly had large projects in mind and did not want to ignore any possible necessity in a project. Thus the processes became heavy. Tailoring to the project needs was always recommended but therefore you had to study and understand the whole process to know what to take and what to leave away. Now enter managers and dull developers who do not take the time to understand the intention of the processes but simply follow the rules literally. The worst case is managers without software development experience who get an incentive for managing the implementation of a process. Processes applied in this way destroy everything that is necessary for successful projects. - 2 -

Agile software development As a reaction to the unproductive and dull development bureaucracy the Manifesto for Agile Software Development had to come: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals & interactions over processes & tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, We value the items on the left more. www.agilealliance.org Figure 2: Manifesto for Agile Software Development, Agile Alliance, 2001 That reminds me to the time when we wrote down our System Development Method SEM at Siemens Program- and System Engineering (PSE) at Vienna, Austria in the 1980ies. Nobody thought that processes were a substitute for motivated developers working in teams, or that documentation would be more important then working software. But we saw that even if we usually had a trustful relationship with our customers we needed some kind of contract. When we were writing our method we knew we had to keep our flexibility and we had signed the agile manifesto without hesitation. The agile manifesto does not oppose methods but the wrong application of methods. Predictive vs. adaptive processes It is true that a creative process like software development is not predictive and planable as routine work is. James A. Highsmith goes into details in his book Adaptive Software Development /2/ But there is also fundamental difference in understanding the meaning of planning. Especially technicians tend be very precise. The more decimal places a value has the better. People are no simple objects like stone or steel. People have individual behavior. Within frame conditions it is to a certain extent predictable, but not precisely. There is a big difference in having no plan at all and in having a plan that can be changed whenever circumstances demand a change. Concentration on the project Working in teams that concentrate on the project is emphasized in most literature about agility. The developers should build a team, organize the work themselves - 3 -

and should not do things that don t contribute to the goal of the project or to the next release of the project. This may be good for a single project but not for an organization. Documentation of agile processes A wide spread opinion or misunderstanding about agility is that you are only agile when you don t care about processes at all. But on the contrary agile methods are described (documented) and there are key practices and sets of rules for Extreme Programming and other methods. Values and not bureaucracy are guiding the application of the rules and the collaboration in teams. Professionalism of developers should allow describing the processes without going into much detail. In the discussions of agile development few is said about the management of an organization in which several agile projects are executed. We find nothing about management responsibility, selecting and training the right people, tracking and control of projects. Shall each project select an agile method or define how a selected method is applied or shall each project define its own process, templates and rules? What about corporate learning and synergy? Quality Management Quality Management is a very successful management philosophy. Its key tenets are -Success on the market through customer satisfaction -Product improvement through process improvement -Productivity increase through avoiding errors -Continual improvement process -Statistical methods Because of the importance of quality management (QM) for the success of economies many institutions all over the world built models for QM-Systems and worked on these models and improved and perfected them. ISO 9000ff Standards on Quality management systems The ISO 9000ff standards on Quality management systems are the most successful standards of ISO. In ISO9000:2000 /6/ the quality management principals are stated as shown in Fig.3-4 -

ISO 9000 Quality management principals Customer focus Leadership System approach to management Process approach Factual approach to decision making Involvement of people Continual improvement Mutually beneficial supplier relationships EFQM Fundamental concepts of excellence Results orientation Customer focus Leadership & constancy of purpose Management by processes & facts People development & involvement Continuous learning, innovation & improvement Partnership development Public responsibility Figure 3: Quality management principals and fundamental concepts The minimum requirements for a quality management system according to ISO9001:2000 /7/ are grouped in chapters as follows 4 Quality management systems (general requirements, documentation) 5 Management responsibility 6 Resource management 7 Product realization 8 Measurement, analysis and improvement A QM system shall guaranty that the expected quality will be delivered without waste. Agility and ISO 9001 The first three chapters: 4 Quality management systems, 5 Management responsibility and 6 Resource management concern the organizational framework or infrastructure in which the development processes are executed but have no direct requirements for the development process but one: The process has to be documented. The extent of the documentation can differ due to the competency of the personnel (4.2.1 Note 2a). Certainly there are implications on developers, such as audits or participation in improvement projects but even this can be done in intervals between projects. Until now nothing hinders agility. The chapter 7 Product realization is directly connected with the execution of a project. It has the subchapters: 7.1 Planning of product realization 7.2 Customer related processes 7.3 Design and development 7.4 Purchasing 7.5 Product and service provision and 7.6 Control of monitoring and measuring devices - 5 -

In ISO 9001 requirements concern the realization of products or services of any kind be it pastries, steel mills or software. Therefore it gives a rather abstract description. In 2004, ISO/IEC 90003 Software engineering Guidelines for the application of ISO 9001:2000 to computer Software /8/ was released. Concerning 7.1 Planning of product realization it explains in chapter 7.1.1 Software life cycle: Processes, activities and tasks should be performed using life cycle models suitable to the nature of a software project, considering size, complexity, safety, risk and integrity. ISO9001:2000 is intended for application irrespective of the life cycle models used and is not intended to indicate a specific life cycle model or process sequence. Design and development can be an evolutionary process and procedures may therefore need to be changed or updated as the project progresses, after consideration of changes to related activities and tasks. From an ISO 9001:2000 point of view I see no principal incompatibility with agile development as long as the procedure is established, documented, implemented and maintained (ISO 9001:2000, 4.2.1 Note1) and the organization in which the project is done fulfils the requirements on organizational level. A working quality management system in the organization will strongly foster agile projects. EFQM Model for Business Excellence More ambitious models were built to guide companies to business excellence. Competitions for quality systems awards were organized. In Japan the Deming price, in USA the Malcolm Baldridge award and the European Foundation for Quality Management /10/ defined the EFQM Model for Business Excellence /11/ and advertised the European Quality Awards. The fundamental concepts of excellence are more or less the quality management principals of ISO 9000 enlarged by public responsibility and the consideration of results (Fig. 3). As you see in the graphic of the EFQM model (Fig. 4)processes play a central role and contribute 140 points out of 500 points for enablers. The other enablers are about the management of the organization. - 6 -

Figure 4: EFQM Model for Business Excellence As the model for business excellence is a non descriptive model, it does not tell you what to do. You can define a process as you think is appropriate for the business and then apply the quality management philosophy. The organization monitors the execution of the process. It measures and checks if the process delivers the expected results and turns the Deming wheel for continual improvement. In a (self)assessment you check the elements of the management system with the RADAR logic. Results, Approach, Deployment, Assessment and Review. For every result that you have planned you check the approach (the documented procedure is part of the system), the deployment (the execution follows the procedure) and assessment and review (someone looks how it works, measures, learns and improves). You also check, if the results are the consequence of your goals and activities and not only windfall profits. For being excellent you have to show improvements of your results over several years. Processes have to be systematically designed, managed and improved. This can certainly be done in agile development. Capability Maturity Model Integration CMMI CMMI is different from ISO9001 and EFQM. The Capability Maturity Model Integration is meant to be the application of Total Quality Management to software developing organizations. Other then the EFQM Model it is a prescriptive model. It defines exactly what to do in software development and calls these different activities Process Areas (Fig.5). For every Process Area it - 7 -

gives a lot of information how to do it. For each Process Area specific goals and generic goals are defined. Level2 Requirements Management Project Planning Project Monitoring and Control Supplier Agreement Management Measurement and Analysis Process and Product Quality Assurance Configuration Management Level4 Quantitative Process Management Software Quality Management Figure 5: CMMI Process Areas Level3 Requirement Development Technical Solution Product Integration Verification Validation Organizational Process Focus Organizational Process Definition Organizational Training Integrated Project Management Risk Management Decision Analysis and Resolution Level5 Organizational Innovation and Deployment Causal Analysis & Resolution The Generic Goals reflect the organizational embedding of the processes. The Common Features Commitment to perform Ability to perform Directing implementation Verifying implementation remind strongly to the ISO 9001 requirement that procedures are established, documented, implemented and maintained. CMMI is a waterproof model for software development with the aim to foresee every possibility that may occur in a project. It is a collection of experience and best practise and complies with the highest requirements even on level 2 and 3. The CMMI is also used as one of the reference models in Spice Assessments /9/. Measurement at Siemens PSE /3/ showed that higher CMM-Levels improve customer satisfaction (Fig.5). - 8 -

Figure 5: Customer satisfaction vs. CMM-Level CMMI is an excellent coherent system of process areas that are interwoven perfectly. But its complexity brings people to follow letter by letter instead of agile, based on values and goals. CMMI suggests Tailoring In Chapter 6 of the CMMI Version 1.1 Staged Representation /13/ the model tailoring of the CMMI model to the need of an organization is encouraged. Tailoring a CMMI model is a process whereby only a subset of a model is used to suit the needs of a specific domain of application. The models were written for use by all types of organizations; however for small types of organizations a CMMI model must be interpreted. Often the project plan also contains plans for other supporting functions, such as quality assurance and configuration management. A four-person project might expect to develop a project plan that is only a few pages long. CMMI is not necessarily as heavy as its is often applied. Extrem Programming and CMMI Blending Agile Development Methods with CMMI" /1/ is the title of a report written by Glen Alleman in which he discusses how Extreme Programming practices and agile values fit into a CMMI environment, enabling the organization to become more agile while still meeting its compliance standards. He shows a table mapping the CMMI process areas to XP practices. Not surprisingly there is a match or at least a moderate match with level 2 process areas and with level 3 process areas concerning development projects but practically no match with process areas concerning organizational matters on level 3 or quantitative management on level 4. - 9 -

In our organization we developed the iterative incremental process e-sem based on our standard process stdsem. It supports agile development wherever agility is appropriate. The question is: how much fantasy is allowed when it comes to fulfil the specific goals of a process area. For example: Can Story Cards and Customer on site satisfy the level 2 Process Area Requirements Management, Specific Practice SP1.1 Develop an understanding with the requirements providers on the meaning of the requirements? Probably yes when there is only one stake holder. When there are more write down a list of the stakeholders and there their goals and define a simple change request process. In my opinion this does not contradict agility. The Typical Work Product Criteria for evaluation and acceptance of requirements may be part of the compulsory training of the developers. It certainly is not so easy with every element of the model even on level 2. A workshop with people from SEI and the industry /15/ identified one rough edge on level 2: Objectively monitor adherence to process and QA products/services. At the higher levels organizational aspects and quantitative management are not met by agile methods. EFQM for Software Intensive Organizations The European Software Institute ESI and the EFQM are cooperating in the project Software TQM to build an EFQM Excellence model for Software Intensive Organizations. Work is based on CMMI. But in my opinion quality management in software development does not necessarily mean CMMI. Conclusio From a quality management point of view an organisation has to have a management system that works according to the philosophy or principals or fundamental concepts (or how ever you want to call it) of quality management. To be able to apply this management philosophy to software development projects, the projects have to follow a documented process. Data have to be collected, analysed and used for process improvement. The organisation with a quality management system with its focus on goals, people, training, resources and systematic management is the perfect environment for executing software development projects (agile or traditional). The additional work load of process definition as well as data collection and analysis can be done by the organization outside the project. The project team can stay small and concentrate on the project with the exception of participating in process improvement. But that is not outside the realm of agility. Even in XP there is a rule called Fix XP when it breaks for process improvement. - 10 -

On the other hand, sometimes quality management is done in a heavy handed bureaucratic manner. Perhaps we should call for agile quality management. References /1/ Alleman, Glen, Blending Agile Development Methods with CMMI, Cutters IT Journal June 2004 /2/ Highsmith, James A., Adaptive Software Development: a collaborative approach to managing complex systems,1999 /3/ Zopf, Siegfried, CMM-Level vs. Customer Satisfaction, EOQ-Conference on Software Quality, 1999 /4/ http://www.agilealliance.org /5/ http://www.extremeprogramming.org/ /6/ ISO9000:2000 Quality management systems Fundamentals and vocabulary /7/ ISO 9001:2000 Quality management systems Requirements /8/ ISO/IEC 90003 Software engineering Guidelines for the application of ISO 9001:2000 to computer software /9/ ISO/IEC 15504 Information technology Process assessment /10/ http://www.efqm.org /11/ EFQM Excellence Model, EFQM Brussels, 2003 /12/ http://www.sei.cmu.edu/ /13/ Capability Maturity Model Integration Version 1.1 Staged Representation, CMU/SEI-2002-TR-012, 2002 /14/ http://www.swtqm.net /15/ Agile Methods and CMMI Annual Research Review and Executive Workshop, 2002 http://sunset.usc.edu/events/2002/arr/presentations/agile%20met hods%20and%20cmmi.ppt - 11 -