1 Experience-Based Approaches to Process Improvement © Otto Vinter / Quality Week 2000 Experience-Based Approaches to Process Improvement - Otto Vinter.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Prescriptive Process models
Formal Process of QA and quality related certifications Formal Process of QA and quality related certifications MIM 3 rd year – Sem V Abhishek Mishra –
System Integration Verification and Validation
Testing and Quality Assurance
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Software Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 4 Quality Assurance in Context
Alternate Software Development Methodologies
CLEANROOM SOFTWARE ENGINEERING
Software Development Process Models. The Waterfall Development Model.
Software Quality Engineering Roadmap
RIT Software Engineering
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Iterative development and The Unified process
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Management Adrian Marshall.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
What is Business Analysis Planning & Monitoring?
8/27/20151NeST Controlled. 2 Communication Transportation Education Banking Home Applications.
S/W Project Management
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CLEANROOM SOFTWARE ENGINEERING.
Principles of User Centred Design Howell Istance.
Software Quality Assurance Activities
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Business Analysis and Essential Competencies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 How to Apply Static and Dynamic Analysis in Practice © Software Quality Week ‘97 How to Apply Static and Dynamic Analysis in Practice - Otto Vinter Manager.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Industrial Software Project Management Some views on project managing industrial and business software projects.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Requirements Engineering: What, Why, Who, When, and How
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
1 Experience-Driven Process Improvement Boosts Software Quality © Software Quality Week 1996 Experience-Driven Process Improvement Boosts Software Quality.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Chapter 4 프로세스 모델 Process Models
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Ch-1 Introduction The processes used for executing a software project have major effect on quality of s/w produced and productivity achieved in project…
A Framework for Selecting Change Strategies in IT Organizations Jan Pries-Heje The IT University of Copenhagen, & Otto Vinter DELTA IT Processes,
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Object oriented system development life cycle
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Software Project Planning &
Introduction to Software Engineering
Lecture 09:Software Testing
Chapter 2 – Software Processes
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 26 Estimation for Software Projects.
Software Design & Production Methodologies
Presentation transcript:

1 Experience-Based Approaches to Process Improvement © Otto Vinter / Quality Week 2000 Experience-Based Approaches to Process Improvement - Otto Vinter Project Manager Software Process Improvements, DELTA Software Engineering, Tel: , Fax: & Software Engineering Mentor Tel/Fax: , Mobile:

2 Experience-Based Approaches to Process Improvement © Otto Vinter / Normative Models for SPI CMM BOOTSTRAP SPICE (ISO15504) Defined comprehensive process Levels of maturity (capability) Key process areas (KPAs) for each level Assessed by certified assessors

3 Experience-Based Approaches to Process Improvement © Otto Vinter / Fundamentals in Normative Models Software Process Assessment & Improvement (The BOOTSTRAP Approach) ISBN

4 Experience-Based Approaches to Process Improvement © Otto Vinter / Problems with Normative Models Abstract model Assessment by external body Costs money Organisational focus Points out KPAs to be improved Little help on precisely what to do Raises a lot of expectations

5 Experience-Based Approaches to Process Improvement © Otto Vinter / Alternative Approaches to SPI Experience-based improvement actions Analyse problems from previous projects to extract knowledge on frequently occurring problems Change the development process through the use of an optimum set of methods and tools available to prevent these problems from reappearing Measure the impact of the changes in a real-life development project Diffuse the results to the rest of the organisation

6 Experience-Based Approaches to Process Improvement © Otto Vinter / Characteristics of Alternative Approaches Experience-based No specific model Hot-spot driven Focus on prevention One issue at a time (incremental) Piloting at project level Evolve rather than define (feed-back) Fits CMM level 1-2 cultures (where most of us are)

7 Experience-Based Approaches to Process Improvement © Otto Vinter / Examples of Alternative Approaches Analysis of defects progress reports, etc. Structured/Selective interviews project managers project members customers, etc. Goal-Question-Metric paradigm (GQM) Some frameworks for alternative approaches: Experience Factory (V. Basili e.a.) Product Process Dependency Models (PROFES: but primarily: you must find your own way

8 Experience-Based Approaches to Process Improvement © Otto Vinter / Brüel & Kjær - Sound & Vibration Measurement TransducerSignal conditioning Digital conversion Signal processing Post processing Output Brüel & Kjær Conditioning Amplifier ISO 9001 CERTIFIED

9 Experience-Based Approaches to Process Improvement © Otto Vinter / Defect Analysis from Error Logs Definitions Bugs are anything between serious defects and suggestions for improvements Problem reporting starts in the integration phase Error Logs Analysed Embedded and PC Windows development projects Project sizes app. 5-7 person years In total app bugs analyzed in detail Problem reports covered a period until 18 months after first release

10 Experience-Based Approaches to Process Improvement © Otto Vinter / Problem Report Distribution over Time

11 Experience-Based Approaches to Process Improvement © Otto Vinter / Defect Analysis Technique Interview sessions 1-2 developers and 1-2 process consultants app. 5 minutes / bug Bug Categorisation based on a bug taxonomy by Boris Beizer: -Boris Beizer: Software Testing Techniques, Van Nostrand Reinhold, 1990 comprehensive set of bug categories and statistics Capture Subjective Information on the Bugs where and how the bug occurred quality factor (reliability, usability, functionality...) complexity of bug (correction cost) what could prevent the bug

12 Experience-Based Approaches to Process Improvement © Otto Vinter / The Beizer Bug Taxonomy 1. Requirements and Features 2. Functionality as Implemented 3. Structural Bugs 4. Data 5. Implementation (standards violation, and documentation) 6. Integration 7. System and Software Architecture 8. Test Definition or Execution Bugs 9. Other Bugs, Unspecified Each category detailed to a depth of up to 4 levels

13 Experience-Based Approaches to Process Improvement © Otto Vinter / Problem Report Categorization Category

14 Experience-Based Approaches to Process Improvement © Otto Vinter / 1st Action: The Prevention of Errors through Experience-driven Test Efforts (PET) Results of the analysis of error logs no special bug class dominates embedded software development requirements problems, and requirements related problems, are the prime bug cause (>36%) problems due to lack of systematic unit testing is the second largest bug cause (22%) Action: Improve Testing Processes static analysis -source code complexity, data flow anomalies, coding standards dynamic analysis -code coverage by test cases, cross references code to test cases Funded by CEC. Final Report:

15 Experience-Based Approaches to Process Improvement © Otto Vinter / Static Flowgraph (McCabe = 10)

16 Experience-Based Approaches to Process Improvement © Otto Vinter / Static Flowgraph (McCabe = 20)

17 Experience-Based Approaches to Process Improvement © Otto Vinter / Test Coverage Strategy Test coverage must take into consideration perceived complexity -based on a visual inspection criticality -product and project issues developer experience -domain, product, and unit bug and change request history degree and type of reuse Test cases for dynamic analysis are selected by normal testing techniques equivalence partitioning, boundary value analysis etc.

18 Experience-Based Approaches to Process Improvement © Otto Vinter / Results of the Improved Testing Process 46% Improvement in Testing Efficiency Removing static bugs Increasing unit branch coverage to > 85% 75% Reduction in Production-Release Bugs Compared to Trial-Release 70% Requirements Bugs in Production-Release Next Action: Improve Requirements Engineering

19 Experience-Based Approaches to Process Improvement © Otto Vinter / 2nd Action: A Methodology for Preventing Requirements Issues from Becoming Defects (PRIDE) Results of the analysis of error logs Requirements related bugs 51% Usability issues dominate 64% External software (3rd party & MS products) 28% Action: Introduce requirements techniques Use Situations (Scenarios) -Relate demands to use situations. Describe tasks for each scenario. Usability Test, Daily Tasks, Navigational Prototype -Check that the users are able to use the system for daily tasks, based on a navigational prototype of the user interface. Funded by CEC. Final Report:

20 Experience-Based Approaches to Process Improvement © Otto Vinter / Scenarios “The defining property of a scenario is that it projects a concrete description of activity that the user engages in when performing a specific task, a description sufficiently detailed so that design implications can be inferred and reasoned about” John M. Carroll, Scenario-Based Design: Envisioning Work and Technology in System Development, Wiley Many names for the same concept: scenarios use situations work situations work setting

21 Experience-Based Approaches to Process Improvement © Otto Vinter / Road Test Scenario Road tests are done in the car when it is driving on special test roads. The purpose of the recordings is to identify noise sources, comparing them to earlier measurements, and eventually removing the noise through changes to the car design. The engineer will record noises from various parts of the car when it is driving at various speeds, when it is turning, when it is breaking, etc. The microphone will have to be mounted at various places not accessible from the drivers seat. Usually, the engineer has a plan for what to measure, but circumstances may change so that he has to do something different and later find out what he actually did and which sounds relate to what. Back at the lab the sounds will be analyzed by the engineer himself, or - in many cases - someone else.

22 Experience-Based Approaches to Process Improvement © Otto Vinter / Usability Test Environment PC V Experiment Leader User Log Keeper Tape Recorder Microphone

23 Experience-Based Approaches to Process Improvement © Otto Vinter / Results of the 2nd Improvement Action Product is selling steadily more than twice as many copies compared to a similar product developed for a similar domain by the same team Usability is exceptional in the market Users’ interaction with the product was totally changed as a result of the early usability tests Almost 3 times increase in productivity for the development of the user interface 27% reduction in problem reports

24 Experience-Based Approaches to Process Improvement © Otto Vinter / Improvement Approach Based on Project Manager Perceived Problems Interview project managers 1 project manager and 3 process consultants app. 1 hour per interview process-oriented interview guide Analyze problems raised classify the problems according to software process present the issues at a project manager workshop establish consensus on a few major issues let each manager select an issue to improve Monitor development projects introduce and train the team on the selected issue coach, and support regularly and on request collect experience and results

25 Experience-Based Approaches to Process Improvement © Otto Vinter / Improvement Approach Based on Project Manager Perceived Problems Major Issues iterative software development model requirements project monitoring (estimation, progress evaluation, etc.) project conclusion (test, configuration management, etc.) Improvement Actions: diffuse and adopt the test and requirements techniques define new iterative development models improve project monitoring Results: improvement actions were performed with enthusiasm project related actions completed successfully

26 Experience-Based Approaches to Process Improvement © Otto Vinter / 3rd Action: Iterative Software Development Model Demo Prototype Functionally Complete Model Specification Spec. Test Design Test Code Design Test Spec. Customer Req. Spec. Validation Release Vers. 1.0 Final Customer Validation Intermediate Customer Validation Pre-Project StabilizationPartial Implementation Full Implementation Specification and user interface mock-up Released Product Customer Views: Product Views: Cycles: Phases: SpecificationDevelopmentOperation Development Views:

27 Experience-Based Approaches to Process Improvement © Otto Vinter / Iterative Software Development Model Types of Iteration user validation (usability test) exploration (e.g. performance) proof-of-concept (e.g. architecture) well-defined functionality (increment) Duration time-boxed -less than 6 weeks, with 2 weeks spacing full increments -app. 3 months, with 2 weeks of stabilization Essential for Success user validation stabilization

28 Experience-Based Approaches to Process Improvement © Otto Vinter / Results of the 3rd Improvement Action drive and motivation of team increased dramatically turbulence within and around team decreased control over project progress increased requirements creep was kept under control resources used more efficiently serious problems were uncovered early quality improved step-by-step

29 Experience-Based Approaches to Process Improvement © Otto Vinter / Comparison of Recommendations RecommendationDefect 1 st Bootstrap Project Mgr. 2 nd Bootstrap Analysis Assessment Interviews Assessment Development Model - iterations x x x  - risk management x Requirements x x x  Project Monitoring - estimation x x x - time & resource usage x x - monitor progress x x x Project Conclusion - configuration mgmt. x x x - testing x x x (  ) - release criteria x x Reuse x Process Descriptions x 

30 Experience-Based Approaches to Process Improvement © Otto Vinter / Problem Diagnosis Results Defect analysis from error logs has established a basic process for testing and release has improved our requirements process and products Improvements from interviews successful diffusion and adoption of previous improvement actions established a new software development model Impacts on maturity development model, test, and requirement issues are no longer on the Bootstrap recommendation list

31 Experience-Based Approaches to Process Improvement © Otto Vinter / In Conclusion Problem diagnosis approach is a simple and effective way to find problems in the software development process good starting point for process improvement programmes in companies step-wise improvements with quick wins changes assessment recommendations However, normative models are needed comprehensive framework -KPAs are important, levels are not established assessments -effect of improvements