Agile Quality Management

Similar documents
Agile Manifesto & XP

CS 5704: Software Engineering

An Overview of Software Process

Assistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability.

04. Agile Development

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

A Practical Approach to Project Management in a Very Small Company

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Nitty Gritty of QA Project Management. 11-Feb-09 Carol Perletz

Success of Agile Environment in Complex Projects

Leadership Lessons from Agile and PMI s PM-2. Tim Kloppenborg, PhD, PMP Marcie Lensges, PhD

Extreme Programming (XP)

8 th of April 2015 Bucharest, Romania Vlad Gabriel Sorin Agile PM/Scrum Master

Agile Delivery Framework (ADF)

Agile Software Development

Agile Test Plan How to Construct an Agile Test Plan

From Adoption to Transition

AGILE LESSONS FROM THE NEW PMBOK. Presented by Eddie Merla, PMI-ACP, PMP

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

What is Software Engineering?

Agile Methods. Background

Agile transformation is hard in large organizations JAOO Kati Vilkki

MCGILL UNIVERSITY Montreal, Quebec September 20 21, A DMAIC Framework for Improving Software Quality in Organizations: Case Study at RK Company

Chapter 3 Agile Software Development

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

Software Engineering Part 2

Succeed with Agile at Scale

Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

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

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.

Quality 24 Process Improvement 26 Real processes. Product Quality. Quality Management. Quality Management. Quality Plan

User-centered System Design. Agile

Quality assurance within the agile system development life-cycle

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Software Design COSC 4353/6353 D R. R A J S I N G H

Introduction to Agile/Extreme Programming

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

AGILE AND AGILE TESTING KAIZANIA 9 DECEMBER Lionel Bisschoff / Arrie van der Dussen. Kaizania 2009

ISO Approach CPA Stephen Obock Associate Director, KPMG August 2018

Introduction to Agile and Scrum

Agile Essentials Track: Business Services

Co-founder and Managing Director of RADTAC Specialist in Agile and Iterative approaches since mid 80s Agile Alliance Founder Member in 2002

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

Building High Assurance Systems with SAFe 4.0

Agile/Lean & Safety: Perfect Match or Impossible Combination?

I hate Maintenance! Maintenance SUCKS!

Business Analyst and Product Owner Where do they meet & conflict? Cherifa Mansoura

Processes and Life- Cycles. Kristian Sandahl

PMI Agile Certified Practitioner (PMI-ACP) Duration: 48 Hours

Russell Pannone February 10, 2009

Extreme Programming, an agile software development process

Software Quality Engineering Courses Offered by The Westfall Team

Where do you want to get to?

Processes and Life- Cycles. Kristian Sandahl

Software Quality Engineering Courses Offered by The Westfall Team

Agile and Automated Testing. Helmut Steineder JIPP.IT GmbH 2015

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Stages in a Software Development Cycle?

Agile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007

The problem. extreme Programming (XP) Conclusions Resources. Problems in software development. Practices Why XP works Benefits of XP

Lecture 8 Agile Software Development

Chapter 3 Agile Software Development. Part 1b

The Business Value of Agile Transformation

Introduction. Failure. Why Projects Fail. Agile in an Hour

Delivering Software Certainty. Atomic Object, Grand Rapids based software development firm Started in 2001 by Carl Erickson and Bill Bereza

The Software Life Cycle

Software Engineering Lecture 5 Agile Software Development

Accelerating Your DevOps Journey

Build Agile Knowledge - Participate in a sprint!

The Challenge of Agile Estimating

Introduction to Extreme Programming

A Journey & How it Works for Clients

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

SDEFT: Scrum Driven Engagement Framework for Testing

AGILE SOLUTIONS. Agile Basics

Chapter 8 : Informatics Practices. Software engineering- Process activities and Agile methods. Class XII ( As per CBSE Board) New Syllabus

IJMIE Volume 4, Issue 10 ISSN:

Introduction... 1 Part I: Understanding Agile... 7

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

Life Cycle Success Factors That Reduce the Failure Rate of IT Projects and Programs

Agile Transformation Key Considerations for success

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Chapter 4 Document Driven Approach for Agile Methodology

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

The Changing Roles of BAs and QAs in a SCRUM world

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

Software Process. Overview

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

Applying Lean-Agile practices Large, Engineered Systems. Harry Koehnemann. SAFe Consultant and Fellow Scaled Agile, Inc.

The ABC of Agile Business Change. James Yoxall BCS 17 September, 2013

Agile Projects 7. Agile Project Management 21

Finally! A Model for Evaluating Agile Performance: The Agile Performance Holarchy. Darian Poinsetta Senior Executive Agile CxO

Two Branches of Software Engineering

Software Life Cycles and Configuration Management

Explore Comparative Analysis Software Development Life Cycle Models

Quality Management_100_Quality Checklist Procedure

Topics to be covered. Commercial Levers Available to the PM to Manage Agile project delivery

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

Transcription:

Agile Quality Management Panagiotis Sfetsos, PhD Assistant Professor, Department of Informatics, Alexander Technological Educational Institution E mail: sfetsos@it.teithe.gr Web Page: http://aetos.it.teithe.gr/~sfetsos/

Objectives: Agile Manifesto Values Agile Development What is quality? Quality Management Goals (ISO 9001:2008, ISO/IEC 9126, ISO/IEC 12207) Does Quality Management have a place in agile methods? Deming s Quality Improvement Cycles Best Agile practices Empirical findings on Quality in Agile Practices Human issues in Agile QM Key success factors

The emergence of the Agile Methods (1/2) The Standish group, 1994: Project Challenged Factors % of Responses 1. Lack of User Input 12.8% 2. Incomplete Requirements & Specifications 12.3% 3. Changing Requirements & Specifications 11.8% 4. Lack of Executive Support 7.5% 5. Technology Incompetence 7.0% 6. Lack of Resources 6.4% 7. Unrealistic Expectations 5.9% 8. Unclear Objectives 5.3% 9. Unrealistic Time Frames 4.3% 10. New Technology 3.7% Other 23.0%

The emergence of the Agile Methods (2/2) The Standish group, 1994: Project Success Factors % of Responses 1. User Involvement 15.9% 2. Executive Management Support 13.9% 3. Clear Statement of Requirements 13.0% 4. Proper Planning 9.6% 5. Realistic Expectations 8.2% 6. Smaller Project Milestones 7.7% 7. Competent Staff 7.2% 8. Ownership 5.3% 9. Clear Vision & Objectives 2.9% 10. Hard-Working, Focused Staff 2.4% Other 13.9% Total: Success rate = 16.2% Challenged projects = 52.7% Impaired (cancelled) = 31.1%

Agile Manifesto values in practice over processes and tools over comprehensive documentation over contract negotiation over following a plan

Agile Software Development (1/3) What does Agile development mean in practice? Iterative and incremental development Fits just right process Continuous testing and validation Simple planning and design Rapid response to change Close collaboration Empowered and self-organized teams Frequent delivery of working software measure of progress

Agile Software Development (2/3) Agile means re-evaluate your best practices in a rapid fashion Test Driven Development (TDD) or Test First Development + Refactoring Continuous Integration Customer participation Pair Programming Shared Code Ownership

Agile Software Development (3/3) Agile Methods Traditional Methods Project size Small, Medium Large Approach Adaptive Predictive Success Measurement Business Value Conformation to plan Management Style Decentralized Autocratic Perspective to Change Change Adaptability Change Sustainability Culture Leadership-Collaboration Command-Control Documentation Low Heavy Emphasis People-Oriented Process-Oriented Cycles Numerous Limited Domain Unpredictable/Exploratory Predictable Predictable Upfront Planning Minimal Comprehensive Team Size Small/Creative Large Quality Built-in from the beginning Split in the devel. phases Quality Assurance Upstream in the SDP End Product Return on Investment Early in Project End of Project

What is Quality? The totality of characteristics of a product or service that bear on its ability to satisfy stated and implied needs (ISO 8402) The degree to which a system, component, or process meets specified requirements and customer/user needs or expectations (IEEE) Both definitions are focused on satisfying the customer s need for the software product

Why is Quality Important? Customers expect it Focus on the Customer (expectations, requirements) We need to get better to compete Teamwork (Working together to reach goals and solve problems) Continuous Improvement Need to be able to measure our progress Measuring Success

Quality Management Goals (1/3) The 8 principles of ISO 9001:2000 Customer satisfaction Leadership Involvement of People Process approach Systemic approach Continuous improvement Decisions based on facts Relationship with suppliers mutually beneficiary

Quality Management Goals (2/3) The ISO/IEC 12207 Agile Methods and the Development Process Area Planning game or sprint planning Requirements definition activities Test Driven Development, Continuous Integration, Customer involvement, Pair Programming Testing and Implementation activities

Quality Management Goals (3/3) The ISO/IEC 9126 Software Product in the Agile Methods Quality Model External Metrics Internal Metrics Quality in Use Metrics

Does Quality Management, as in traditional, have a place in agile methods? Validation 90 Is the software matching the requirements? 80 Can we trace from 70 requirements to implementation? 60 50 40 30 20 10 0 Are we building the right software? Quality Assurance Establish procedures and standards Quality Planning Select procedures and standards 1ο Τρ. 2ο Τρ. 3ο Τρ. 4ο Τρ. Quality Βορράς Control Control procedures and standards Are we building the software right? Ανατολή Γύση Verification Are the classes matching the specification? Are we using good design and good practices?

Deming s Quality Improvement Cycles (1/2) PLAN -Establish the objectives and processes necessary to deliver results in accordance with the expected output. DO -Implement the new processes. Often on a small scale if possible. CHECK / STUDY -Measure the new processes and compare the results against the expected results to ascertain any differences. ACT -Analyze the differences to determine their cause. Determine where to apply changes that will include improvement.

Deming s Quality Improvement Cycles (2/2) The Agile version.. Iterative and Incremental Quality Improvement Cycles Plan Do Check / Study Act Release and Iteration / Sprint Planning A complete Iteration / Sprint Concurrent testing Continuous Integration Daily stands-up Iteration/Sprint reviews Retrospectives Implement lessons learned form Retrospectives Team Adaptation

Agile Quality Assurance QA in the Agile Software Development Life Cycle.. Requirement & Design QA Implementation and Code QA Integration and System QA Techniques / Practices - Simple planning and design - User Stories - Acceptance Tests and UAT - Release/Iteration planning - Architectural spike - System Metaphor - On-site customer feedback - Unit tests - Refactoring - Acceptance Tests and UAT - CRC-cards - Pair Programming - Unit tests coverage - Acceptance Tests and UAT - Continuous Integration - Common Codebase - Customer Feedback

Traditional vs. Agile (1/2) QA - key differences On-time system delivery, to spec, and within budget and schedule A working product increment QA team and PM responsible for quality Whole team approach Built-in QA team engaged in the testing phase (..end of product) Development team (testers included), upstream in the SDP

Traditional vs. Agile (2/2) Differences in Quality Split quality (in each development phase) QA team responsible for quality - Formal methods - Quality Police - No specs, can t test Quality Assurance end product Built-in quality (from the beginning) whole team approach - Self-directed team responsible for quality, testers included - Pair/team collaboration, - Day-to-day activities Quality Assurance upstream in the SDP (from the beginning)

Agile Techniques (1/2) How Have Agile Approaches Affected the Quality of Systems Deployed? 3% 6% 29% 14% Much Lower Somewhat Lower No Change Somewhat Higher Much Higher 48% Source: Ambler Agile Adoption Rate Survey of over 4200 Dr. Dobb s subscribers, March 2008

Agile Techniques (2/2) Third-party research suggests even wider adoption.. Have you adopted any Agile techniques? In a recent study conducted by the Agile Journal, it was determined that 88% of companies, many with over 10,000 employees, are using or evaluating Agile practices on their projects. No 31% Yes 69% Source: Ambler Agile Adoption Rate Survey of over 4200 Dr. Dobb s subscribers, March 2008 Which of the agile practices should be implemented to improve software quality?

Test Driven Development (1/4) What is TDD? TDD isn t about testing......it s about programming! (specification, design, testing and coding) Writing simpler, clearer and more robust and more maintainable code! Before you write code, think about what it will do. Write a test that will use the methods you haven t even written yet. Extreme Programming Applied: Playing To Win Ken Auer, Roy Miller The Purple Book No code should go into production unless it has associated tests Catch bugs before they are shipped to your customer

Test First Development + Refactoring (2/4) A test is not something you do, it is something you write and run once, twice, etc. It is a piece of code Testing is therefore automated Repeatedly executed, even after small changes The cycle of Red Green - Refactor

Test Driven Development (3/4) Testing in all phases and levels - Unit testing - Acceptance testing - Integration testing - Regression testing - Functional testing - System testing Empirical findings The defects were decreased from 5% - 45% Empirical Studies on Quality in Agile Practices: A Systematic Literature Review, P.Sfetsos, I. Stamelos. In QUATIC 2010.

Test Driven Development (4/4) TDD benefits: - shortens the programming feedback loop - provides detailed specification (tests) - improves quality (design and code) - provides concrete evidence that your software works - ensures that your design is clean - provides an interface before algorithm - supports evolutionary development - encapsulates learning - enhances intermediate stability - enhances confidence in code changes

Pair Programming Continual design and code review process Reduction of the defects Improvement of design and code quality Higher product quality Faster cycle time Enhanced learning Knowledge transfer Enhanced trust/teamwork More communication Collective code ownership Empirical findings Design and code quality improvement varying from 15% up to 65% Empirical Studies on Quality in Agile Practices: A Systematic Literature Review, P.Sfetsos, I. Stamelos. In QUATIC 2010.

Customer Interaction and feedback Customer involvement in the development phases... Planning Implemen- Testing Release tation Scenarios and Features Cost estimation Acceptance testing Beta versions Usability data and metrics Acceptance and Functional Testing Prioritize testing Incorporate necessary changes or reprioritize features Implement lessons learned from Retrospectives Team Adaptation

Empirical Findings A systematic literature review, evaluating quality approaches and metrics, in Agile practices, according to ISO/IEC 12207 and ISO/IEC 9126 standards: TDD The defects were decreased from 5% - 45% Improvement of external quality (TFD + Refactoring) Decreased fault rates in Industry (than in Academia) Pair Programming Design and code quality improvement varying from 15% up to 65% Other Practices Quality improvement for combined practices including Planning Game or Sprint Planning, Refactoring and On-site Customer. Empirical Studies on Quality in Agile Practices: A Systematic Literature Review, P.Sfetsos, I. Stamelos. In QUATIC 2010.

Human issues in Agile QM - Teams as adaptive ecosystems (roles and tasks depend on developers) - Communication and Collaboration (most critical success factors) - Human factors must be identified, understood, controlled, predicted or manipulated. - Organizations and managers must capitalize on developers potential talents and strengths Values People Teams Culture

Key success factors (1/5) Enhance: Agile Quality Planning & Execution just enough, just-in-time (JIT) Planning levels (Quality criteria): for User stories, Iteration and Release planning, End product Visibility: Release tracking, iteration tracking, and story tracking Code quality Test-Driven Development (TDD) Refactoring to improve existing design Coding with design patterns Pair programming Shared code responsibilities

Key success factors (2/5) Enhance: Test-Driven Development, Not Defect-Driven TDD is a skill Efficiently and effectively testing Pairing and shared testing code responsibilities, refactoring, attention to design Add more tests if they add value Just Do It - Insist on achieving 100% coverage Measure and Review Make Results Visible Customer & User perspective The customer must be always available Business people and the project team must work together User involvement is necessary

Key success factors (3/5) Enhance: Continuous Integration (maintaining Quality all the time) Test Driven Integrations Single source repository Frequent automated builds and tests Agile Verification and Validation Validation (Are we building the right product?) Acceptance Test-Driven Development (ATDD): to help define the design and code All User Acceptance Tests should be passing (accept the story, the iteration and the release - quality criteria). Verification (Are we building the product correctly?) A quality development process Unit testing verifies at the code level Functional testing (and other tests) verifies product at higher level Frequent automated builds and tests

Key success factors (4/5) Enhance: Team building Self Organizing vs. role or title based Empowered to make decisions vs. decisions by outside authority Decisions to be consensus-driven vs. leader-driven Committed to success as a team vs. success at any cost Motivated by trust vs. fear or anger Maintain constructive disagreement vs. damaging conflict Agile metrics Discuss the importance of quality with the team Measure results at the team level Identify simple metrics that can be collected early Track the value delivered to customer or business Track only as long as it adds value Ensuring that quality is not treated as an event, but has become a way for life for the team

Key success factors (5/5) Agile Quality Assurance People must: Write automated specifications Collaborate with developers Continuously run all Acceptance Tests Be at the front of the Test Driven Development Agile leadership Fix values and culture Embrace change adjust methods to the projects Create best teams Influence team decisions set movable boundaries Continuously reflect, inspect, and adapt

Books (1/2) Test-Driven Development: By Example Kent Beck Addison-Wesley, 2003 ISBN 0-321-14653-0 test-driven development: A Practical Guide Dave Astels Prentice-Hall/Pearson Education, 2003 ISBN 0-13-101649-0

Books (2/2) Refactoring: Improving the Design of Existing Code Martin Fowler Addison-Wesley, 1999 ISBN 0-201-48567-2 Agile Software Development Quality Assurance Author(s)/Editor(s): I. Stamelos, P. Sfetsos IGI Global, 2007 ISBN13: 9781599042169 ISBN10: 1599042169

The Quality Puzzle Thank you for your attention!