Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson 21.05.2014



Similar documents
Agile Software Development compliant to Safety Standards?

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Agile and lean methods for managing application development process

Agile Software Development

Agile in a Safety Critical world

Introduction to Agile Software Development Process. Software Development Life Cycles

Agile and Secure: Can We Be Both?

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

How to manage agile development? Rose Pruyne Jack Reed

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Vragen. Software development model. Software development model. Software development model

Introduction to Agile Software Development

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Testing in Agile methodologies easier or more difficult?

Software Engineering I (02161)

Agile Development Overview

Workshop on Agile Test Strategies and Experiences. Fran O'Hara, Insight Test Services, Ireland

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1

Agile and lean methods for managing application development process

Testing in an Agile Environment

Lean Software Development

CSE 435 Software Engineering. Sept 16, 2015

Role of the Business Analyst in an Agile Project

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

Software Development Process

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Introduction to Agile and Scrum

Sustainable Software Development in Agile and CMMI: Apply Lessons Learned today

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

LEAN AGILE POCKET GUIDE

Usage of SCRUM Practices within a Global Company

Software Development Methodologies

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Software Development Life Cycle (SDLC)

Introduction to Agile

AGILE & SCRUM. Revised 9/29/2015

The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary

The Agile Movement An introduction to agile software development

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

An Agile Project Management Model

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

SECC Agile Foundation Certificate Examination Handbook

Agile methods. Objectives

Agile Software Development Methodologies and Its Quality Assurance

From Agile by Design. Full book available for purchase here.

The Agile Manifesto is based on 12 principles:

Agile with XP and Scrum

Requirements-driven Verification Methodology for Standards Compliance

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Models of Software Development

Software Development Going Incremental, Iterative and Agile:

WHY KANBAN? Troy Tuttle. blog.troytuttle.com. twitter.com/troytuttle. linkedin.com/in/troytuttle. Project Lead Consultant, AdventureTech

History of Agile Methods

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

An Overview of Quality Assurance Practices in Agile Methodologies

Testing in Scrum Projects

Blending Traditional and Agile Project Documentation

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Introduction to Agile Scrum

Nationwide Application Development Center

Secrets of a Scrum Master: Agile Practices for the Service Desk

Waterfall to Agile. DFI Case Study By Nick Van, PMP

A Quick Overview of Software Engineering. Paul Klint

The Role of CM in Agile Development of Safety-Critical Software

Agile! Springer. The Good, the Hype and the Ugly. Bertrand Meyer

Agile Testing and Extreme Programming

Agile Beyond The Team 1

Software Life Cycles and Configuration Management

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

CSSE 372 Software Project Management: More Agile Project Management

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

AGILE BUSINESS SERVICES. Guiding and supporting your business. at any stage of your agile journey

Agile Training and Certification Options. David Hicks

RUP for Software Development Projects

Kanban vs Scrum Making the most of both

Requirements Engineering for Software

Agile Testing. What Students Learn

Agile development of safety-critical software while meetings standards' requirements

What is meant by the term, Lean Software Development? November 2014

Lean Software Development: A Systematic Review

J-Curve effect, 38, JIT. See Just-in-Time Inventory Just Enough Design Initially (JEDI), 6, 283

Hamid Faridani March 2011

Collaborating for Quality in Agile Application Development From Beginning to End

Java course - IAG0040. Unit testing & Agile Software Development

Rapid Software Development

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Advanced Software Engineering. Software Development Processes

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Design of automatic testing tool for railway signalling systems software safety assessment

Applying Agile Project Management to a Customized Moodle Implementation

Transcription:

Lean and Agile in Safety-critical Software Development Research and Practice Henrik Jonsson 21.05.2014

About me 2012 Henrik Jonsson Professional Software engineer +13 years Employed by Etteplan Part-time PhD student at Mälardalen University Advisors are Sasikumar Punnekkat and Stig Larsson Studying Agile and Lean in Safety-critical Software development 2018

Agenda Today Overview of my basic research so far Agile values versus safety Agile practices versus EN50128 Lean concept SLR Lean versus safety Workshops tomorrow

Agile a reaction to waterfall System Requirement System Safe Req. A lot of handovers Large batches Long lead times System Design Safe Sw. Req. Sw Requirements Sw. Design & Implement Test Year 1 Year2 Year3 4

The Agile Manifesto and Safety We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individual and Interactions Working Software Customer Collaboration Responding to change over Processes and tools Comprehensive documentation Contract negotiation Following a plan That is, while there is value in the items on the right, we value That is, while there is value in the items on the right, we value the items on the left more. the items on the left more. Agile Agile Regulated Safety-critical sw. dev. http://agilemanifesto.org/

The Agile Umbrella SCRUM Crystal Agile extreme Programming (XP) Kanban FDD Lean Software Development

Agile practices versus EN 50128 [Paper A] EN50128 (ISO61508) Extreme Programming (XP) EN50128

EN50128 : Software for Railway Control Based on ISO61508 Roles Life-cycle phases Quality Assurance Documentation

Agile Practices from Extreme Programming (XP)

Summary of Results Agile Practice Supporting requirements Problematic requirements Test Driven Development Pair Programming Planning Game Testable code Automated tests Source code readable and understandable Taking iterations into account Traceability Independence of tester Tester specifies tests - Details of requirements Change management On-site customer Validation - Continuous Controlled test environment - Integration Automated dynamic verification Refactoring Simpler, readable and maintainable source code Risk to invalidate verification and validation Small releases Validation High burden for formal certification each time Coding standard Coding standards required - Metaphor Architecture and design simple and Not sufficient, too ambiguous understandable Simple design Suitable design method - Balanced size and complexity of source code Sustainable pace - -

Conclusions [Paper A] All agile practices studied supported some of the requirements in EN50128 Most practices must be adapted XP lacks in-build support for documentation and V&V activities Results can guide both development teams and assessors.

But Lean Software Development then Lean product development Lean manufacturing and supply chain 15 (1991,2003) Womack&Jones 5 (2004) Liker 2 (1998) Ohno 1 (2006) Morgan&Liker Lean software development 13 (2003-10) Poppendieck 6 (2010) Andersson 3 (2005) Middleton & Sutton 1 (2010) Coplien & Bjornvig 12

Go see Lean Concepts Identified in Systematic Literature Review Mentorship Supplier integration Integrated functional expertise T-competence Chief engineer Visualization Lean Product Development Technology Value Value stream Adapt tools to human Powerful integrated tools Waste Mistake-proof Flow Set-based engineering Standardized work Respect People Systems Thinking Continuous Improvement Long-term decisions 13

Lean Concepts and Safety - Value Minimize failure stream: What do the customer want to avoid? Customer satisfied Performance Low quality Attractive High quality Must-have Customer dissatisfied

Lean Mistake-proof process Poka yoka fault avoidance Inspections (V&V) not just to find errors but to find means to prevent them in the future Eliminating systematic failures In practice for software development: Static analysis Strongly typed languages Defensive programming (Reviews)

Lean standardization Develop and use checklists (Standard operating procedures) Continuously improved by the workers themselves to avoid waste Coding standards

Lean team work Integrated Product Teams Software + Hardware + Safety + V&V Set-based engineering Develop and evaluate design alternatives objectively Keep options option as long as responsible E.g. timing budgets

Lean and Systems Thinking Safety is clearly a system property have to start at that level Avoid suboptimization of safety Ensure that processes/phases are well-aligned.

Summary Agile values complements plan-driven to achieve real safety Agile practices support certain EN50128 requirements XP weak on documentation and V&V activities Lean core concept may complement agile in SCSD Mistake proofing Standardization Integrated Product Teams Set-based Engineering Systems Thinking

Workshop Topics for Thursday Specifying and verifying safety requirement Integrating System, Safety and Software Engineering in a Agile and Lean Way Agile and safety session Lean Value and Waste in Safety Software Product Development

Lean Safety In Practice: Integrating system, software and safety engineering Based on ideas from agile, lean, own experiences and state-of-the-art research User stories as a starting point Use case scenarios to specify functionality Use case maps to visualize responsibility flow Use HAZOP guidewords to drive safety analysis, safety requirement specification and design Balance safety with other concerns Start at system level then apply recursively

References [Paper A] Jonsson, H, et al (2012) Agile Practices in Regulated Railway Software Development, WoCoCer workshop, ISSR, Dallas [Paper B] : Jonsson, H, et al (2013) Synthesizing a Comprehensive Framework for Lean Software Development, Euromicro SEAA 2013, Santander

Thank you! This work was supported by: Contact: E-mail: henrik.jonsson@etteplan.com Twitter: @hen_jonsson Blog: http://safe-lean-agile.blogspot.se/