Processes and Life- Cycles. Kristian Sandahl

Similar documents
Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Agile & Lean / Kanban

The Top Thrill Dragster

Chapter 3 Software Process Model

AGILE SOLUTIONS. Agile Basics

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

Introduction to Agile and Scrum

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

Agile Project Management: Best Practices and Methodologies

Chapter 3 Agile Software Development

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

AGILE BASICS. All slides copyright Philip Japikse

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

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Introduction to Agile/Extreme Programming

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

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

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Software Engineering Lecture 5 Agile Software Development

The Software Development Process (SDLC)

Scrum and Agile Processes. Dr.-Ing. Oliver Ciupke Haufe-Lexware GmbH & Co. KG 2011

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

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

Metodologías Agiles en E///

WHITE PAPER. Assessing Kanban fitment in the Fluid and Fast-paced World of Software Development. Abstract

Presented by Only Agile. What is Agile?

Scrum Team Roles and Functions

Scrum. a description. V Scrum Alliance,Inc 1

software development lifecycle (sdlc) models & agile methods

18-642: Software Development Processes

Agile Software Development

SWE 211 Software Processes

How to Prepare for and Implement a Project Using Scrum

De-Mystifying Kanban:

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

Copyright Software Engineering Competence Center

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Extreme Programming, an agile software development process

approach to successful project

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

The Product Creation Process

Software Engineering Fall 2014

Agile Methodology Adoption: Benefits and Constraints

Agile Software Development

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

AGILE SOFTWARE DEVELOPMENT. Keith Pine Kumeel Alsmail Parker Li Björn Davis

A New Divide & Conquer Software Process Model

Agile Delivery Framework (ADF)

Lecture 15 - recap. Kari Systä, TIE-21100/6; Kari Systä 1

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

The Unified Software Development Process

Sistemi ICT per il Business Networking

Ingegneria del Software Corso di Laurea in Informatica per il Management. Scrum. Davide Rossi Dipartimento di Informatica Università di Bologna

AGILE methodology- Scrum

Certified Scrum Master

BA25-Managing the Agile Product Development Life Cycle

Advanced Software Engineering. Lecture 7: Agile Development by Prof. Harold Liu

Agile Development Methodologies:

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping

Agile Methods: Scrum, Crystal, Lean SD,

Software Life Cycle. Main Topics. Introduction

Agile Surveillance Points

International Scrum Master Foundation. Study Guide Take the Certification online

Scrum, Creating Great Products & Critical Systems

Virtually Agile. Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007

Can Your Proposal Process Be More Agile?

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

Introduction to Software Engineering

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

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

Case Study: Applying Agile Software Practices to Systems Engineering

The Art of Agile Practice

Number: DI-IPSC-81427B Approval Date:

Reducing Business Risk

Art of Writing in Agile. Writing User Stories in Agile Shikha Saxena, Senior Technical Writer, Pune, India

Harnessing the power of agile development

Requirements Engineering and SCRUM. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 13, 2007

Why Agile, Why Now By David Schroeder, PMP, PSM

Improving Scrum with. Lean Thinking Nuno Rafael SGMUN 2016

Two Branches of Software Engineering

03. Perspective Process Models

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Applying Agile Principles to Project Management. Tyler Monson PMP, CSM Hiren D. Vashi PMP, PMI-ACP, CSM, CSP

Agile Quality Management

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

TANGIBLE STRATEGIES FOR ALIGNING YOUR PROCESSES WITH AGILE

Software development activities

Overcoming the Limitations of Agile Software Development and Software Architecture

[control] [data] [process] [strategy] [partners] [testing] [validation]

Chapter 8. Systems Development. Ralph M. Stair George W. Reynolds

HELP!!! THE SCRUM MASTER IS THE IMPEDIMENT!

Building Cloud Apps using Agile Methodology & Tools

Course "Softwareprozesse" Agile Management Practices: Scrum, Lean SD, Kanban,

Waterfall model is the earliest SDLC approach that was used for software development.

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

Scrum Testing: A Beginner s Guide

Agile and CMMI : Disciplined Agile with Process Optimization

Transcription:

Processes and Life- Cycles Kristian Sandahl

2 Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify System Design System Testing (Integration testing of modules) Module Design (Program Design, Detailed Design) Verify Module Design Verify Implementation Module Testing (Integration testing of units) Implementation of Units (classes, procedures, functions) Unit testing Project Management, Software Quality Assurance (SQA), Supporting Tools, Education

Remember the necessary parts of a project?

Processes are reoccurring Ordered set of activities May contain sub-processes Goal of each activity Each activity has entry/exit criteria and input/output Constraints

Remember our life-cycle model?... Carol the customer Abstraction Diana the developer Time

also known as the V-model Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify System Design System Testing (Integration testing of modules) Module Design (Program Design, Detailed Design) Implementation of Units (classes, procedures, functions) Verify Module Design Verify Implementation Time Unit testing Module Testing (Integration testing of units)

Now, remove the abstraction level Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify System Design System Testing (Integration testing of modules) Module Design (Program Design, Detailed Design) Implementation of Units (classes, procedures, functions) Verify Module Design Verify Implementation Time Unit testing Module Testing (Integration testing of units)

and we got the waterfall model! One of the first lifecycle models (Royce, 1970) The waterfall development model originates in the manufacturing and construction industries Very common, very criticized

The classical waterfall model 2017-09-29 Requirements System Design Finish each phase before continue to next. Module Design Implementation Milestone and deliverable at each step. (Artifacts such as Design document, Req. Specification. etc.). Time Unit Testing Module Testing System Testing Acceptance Test Maintenance

Problems with the waterfall model Software requirements change, hard to sign-off on a SRS. Early commitment. Changes at the end, large impact. Feedback is needed to understand a phase. E.g. implementation is needed to understand some design. Difficult to estimate time and cost for the phases. Handling risks is not an explicit part of the model. Pushes the risks forward. Software "is not" developed in such a way. It evolves when problems are more understood. Little room for problem solving.

Advantages with the waterfall model Simple, manageable and easy to understand Fits to common project management practices (milestones, deliverables etc.) Can be suitable for short projects (some weeks) Can be used at a large system level (several years) Can be suitable for "stable" projects, where requirements do not change Focus on documents, saves knowledge which can be reused by other people. Can be suitable for fixed-price contracts

Requirements System Design Do it twice (Royce, 1970) Second round, do it right. Program Design First round, a prototype Implementation Unit Testing Module Testing System Testing Input to the phases in the second round Acceptance Test Maintenance

Iterative and Incremental methods

Iterative development When should the releases take place? Time-boxing - The time period is fixed for each iteration. Customer Feedback What should be included in the release? Prioritized functionality - Do the most important parts first. Customer Feedback R1 R2 Final Release! design implementation Time Iteration 1 Iteration 2 test Iteration deployment 3

Dependent project parameters revisited Calendar time and resources are fixed Calendar Time Resources Project Features Select the most important functions Select quality. E.g. how general should we be? Quality

Prioritization of requirements Customer Value High Sweet Spot Low Avoid Low High Development Effort

Problems with iterative development Problem with current business contracts, especially fixed-price contracts. With short iterations it can be hard to map customer requirements to iterations. Overhead added Requirements selection problem

Advantages with iterative development Misunderstandings and inconsistency are made clear early (e.g. between requirement, design, and implementation) Encourage to use feedback -> elicit the real requirements Forced to focus on the most critical issues Continuous testing offers project assessment Workload is spread out over time (especially test) The team can get "lesson learned" and continuously improve the process Stakeholders get concrete evidence of progress

Processes, models, methodologies Waterfall model Process Models V- model Spiral model "what" at a high level of abstaction Prototype model Which is the "best" approach? Extreme Programming (XP) agile Rational Unified Process (RUP) Methodologies and defined Processes Scrum Kanban "what" and to a certain level "how"

The Rational Unified Process (RUP) The Rational Unified Process (RUP) is an iterative software development process framework Defined in 1997 by Grady Booch, Ivar Jacobson and James Rumbaugh Recognized to be particularly applicable to large projects with large teams Open/UP is a downsized method with agile components

RUP Disciplines and Phases Business Modeling Inception Elaboration Construction Transition Core Technical Disciplines Requirements Analysis and Design Implementation Test Deployment Core Supporting Disciplines Change & Config. Mgm. Project Mgm. Environment.

Agile Approaches - Agile Alliance Lightweight approaches to satisfy the customers with "early and continuous delivery of valuable software" Manifesto for Agile Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan (http://agilemanifesto.org, 2001)

extreme Programming - XP 2017-09-29

Extreme Programming Formulated in 1999 by Kent Beck XP is a light-weight methodology for small to medium-sized teams developing software in the face of vague or rapidly changing requirements. Driving good habits to the extreme

XP Values Communication On-site customer, user stories, pair programming, daily standup meetings, etc. Simplicity ''Do the simplest thing that could possibly work'' (DTSTTCPW) principle Feedback Unit tests tell programmers status of the system Programmers produce new releases every 2-3 weeks for customers to review Courage Communicate and accept feedback, throw code away, refactor the architecture of a system

XP- Some Practices 2017-09-29 Pair Programming Programming as a collaborative conversation Focus on task Clarify ideas Rotate frequently Refactoring Improve the design of existing code without changing its functionality Tool support, e.g. Eclipse Stories "requirements", but not mandatory a token for a piece of system capability to be implemented Name + short story On index cards (paper) Continuous Integration Integrate and test often Automated build system Automated regression tests (e.g. JUnit) Test-First Programming Create tests before code Focus on interface and "what is needed" Gets tests for free

Scrum Approach public in 1995 at OOPSLA "Scrum" strategy used in rugby for getting an out-of-play ball back into play.

Scrum in a nutshell Small, cross-functional teams Product split into small, roughly estimated, stories Iterations - sprints Continuous improvement and deployment Slides by Aseel Berglund

The Sprint Sprint end date and deliverable do not change

The Team The Team Sprint end date and deliverable do not change

The Scrum Master 2017-09-29 Scrum Master The Team Sprint end date and deliverable do not change

The Product Owner 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Product Owner The Team Sprint end date and deliverable do not change

The Product Backlog 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Product Owner The Team A prioritized list of what is required, features, stories Sprint end date and deliverable do not change Product Backlog

The Sprint Planning Meeting 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Product Owner The Team A prioritized list of what is required, features, stories Sprint Planning Meeting Sprint end date and deliverable do not change Product Backlog

The Sprint Backlog 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Product Owner The Team A prioritized list of what is required, features, stories Sprint Planning Meeting Task Breakout Sprint Backlog Sprint end date and deliverable do not change Product Backlog

Sample Taskboard 2017-09-29

The Daily Scrum Meeting 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Daily Scrum Meeting Product Owner The Team A prioritized list of what is required, features, stories Sprint Planning Meeting Task Breakout Sprint Backlog Sprint end date and deliverable do not change Product Backlog

The Burn Down Charts 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Burn down charts Daily Scrum Meeting Product Owner The Team A prioritized list of what is required, features, stories Sprint Planning Meeting Task Breakout Sprint Backlog Sprint end date and deliverable do not change Product Backlog

The burn down chart Only track hours remaining, not hours worked X days (in Sprint) Y hours remaining in estimated time Remove meeting time, vacation etc. from total available hours Update only when PBIs are DONE When not done Undone PBIs

The Sprint Review Meeting 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Burn down charts Daily Scrum Meeting Product Owner The Team A prioritized list of what is required, features, stories Sprint Planning Meeting Task Breakout Sprint Backlog Sprint end date and deliverable do not change Sprint review meeting Done? Finished work Product Backlog

The Definition of Done! 2017-09-29 When are we done? No more remaining work Includes testing, documentation etc. Possible to ship after each sprint Everybody understand what done means Tools to support done Version handling (SCM) Automated build Automated tests (Continuous integration)

The Sprint Retrospective 2017-09-29 Inputs from Executives, Stakeholders, Customers, Users, Team Scrum Master Burn down charts Daily Scrum Meeting Product Owner The Team A prioritized list of what is required, features, stories Sprint Planning Meeting Task Breakout Sprint Backlog Sprint end date and deliverable do not change Sprint review meeting Finished work Product Backlog Sprint retrospective

Kanban The two pillars of the Toyota production system are just-intime production and automation with a human touch, or autonomation. The tool used to operate the system is kanban. Taiichi Ohno Father of the Toyota Production System

看板 - Kanban 看板 - Kanban is a Japanese word that means visual card, signboard, or billboard. Toyota originally used Kanban cards to limit the amount of inventory tied up in work in progress on a manufacturing floor Kanban is a lean approach to agile software development Focuses on the flow of progress

How does Kanban Work? Visualize the workflow Split the work into pieces, write each item on a card and put on the wall. Use named columns to illustrate where each item is in the workflow. Limit WIP (work in progress) assign explicit limits to how many items may be in progress at each workflow state. Measure the lead time (average time to complete one item, sometimes called cycle time ), optimize the process to make lead time as small and predictable as possible.

A simple Kanban Board Source: http://www.crisp.se/gratis-material-och-guider/kanban

Work In Progress Work In Progress, WIP, limits are designed to: - reduce multitasking - maximize throughput - enhance teamwork Reducing multitasking is beneficial for two primary reasons

1 Reducing Multitasking 20% time is lost to context switching per task, so fewer tasks means less time lost (from Gerald Weinberg, Quality Software Management: Systems Thinking)

2 Reducing Multitasking Performing tasks sequentially yields results sooner. A B C A B C A B C A B C multi-tasking A, B and C (on the top), delivers A much later, and even C slightly later, than sequentially (on the bottom).

Typical Measurements Cycle time Measured from when you started working on it Lead time Measured form when the customer ordered Quality Time spent fixing bugs per iteration WIP Average number of stories in progress Throughput Number of stories completed per iteration (when using fixed iterations)

Benefits of Kanban Eliminate over-production, the #1 waste Produce only what is ordered, when ordered, & quantity ordered Increase flexibility to meet customer demand Competitive advantage by sequencing shipments to customers (what they want, when they want it, in the order they want it!) Several things are optional: sprints, estimation, agile practices. Even iterations!

www.liu.se