Transcription

2 Application development lifecycle model To support the planning and management of activities required in the production of e.g. goods, software, or information systems, various lifecycle models have been developed A lifecycle model establish the order in which a project designs, prototypes, implements, tests, etc., i.e. performs its activities. Waterfall Code-and-Fix Prototyping 2

3 Waterfall model Strenghts The waterfall model performs well for projects in which you have a stable product definition Do such projects exist? Weaknesses The waterfall model is inflexible. Is it possible to specify the requirements at the beginning of the project? Is it possible to design and implement all parts of the application at the same pace? 3

4 Code-and-Fix Strenghts No planning and design overhead, time is spend on pure coding Requires no process management experience. Weaknesses Useful only for tiny applications. In case of real life projects, dangerous! 4

5 Prototyping Develop a prototype, show it to your customer, and refine it based on the feedback Strenghts Flexibility (with changing requirements) Reduced time and cost Weaknesses Can distract developers from properly analyzing the complete project Can easily result in the code-and-fix development. Good for applications with lots of user interaction Most Agile Methods rely heavily upon prototyping techniques. 5

6 Overview of lean and agile software development

7 Lean software development Lean software development is an adaptation of Lean manufacturing principles and practices Based on the Toyota Production System The core lean principles: Eliminate waste Extra features (unnecessary functionality) Partially done work Task switching Delays (waiting for work) Bureaucracy Defects Focus on learning and improvement Build quality in the process Decide as late as possible Deliver as fast as possible (customer value) Empower the team 7

8 Two Axioms of Lean Software Engineering (David Joyce) 1. It is possible to divide the work into small (value adding) increments, that can be independently scheduled 2. It is possible to develop any increment in a continuous flow, from requirement to deployment 8

9 Dividing the work to small increments 9

10 Dividing the work to small increments Time on the job Client Time of getting the first batch Time of whole production 10

11 Agile software development A group of software development methodologies based on iterative and incremental development Requirements and solutions evolve through collaboration between self-organized cross-functional teams Agile Manifesto - values: 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a detailed plan Popular Agile methods Scrum Extreme Programming (XP) 11

15 Background of Kanban Kanban is a Japanese word that literally means signal card In a manufacturing environment, this card is used as a signal to tell an upstream stage in a process to produce more Kanban is a pull system New work is pulled into a stage in the system when there is capacity to handle it, rather than being pushed based on demand The workers at each stage in the process are not allowed to do work unless they are signaled from a downstream stage A pull system cannot be overloaded if the capacity of each step has been set appropriately The first kanban system for software engineering was implemented at Microsoft beginning in

16 Kanban as an Adaptive System to achieve Lean The Kanban Method is an adaptive system for catalyzing Lean behaviour (complex, adaptive, emergent behavior) Kanban core concepts Visualize workflow Limit Work-in-Process Help work to flow Kanban is not a software development methodology Does not provide methods for any particular development task, like design or testing Kanban teams adopt practices e.g. from agile methods (such as daily stand-up meetings) 16

17 Implementing Kanban

18 Kanban workflow There is a queue of work, which goes through a number of stages until its done When work is completed in a stage, it is pulled downstream for the next stage 18

19 Kanban board WIP limit Vertical columns for stages (phases) in the workflow, i.e. activities through which the work progresses Input queue ( Backlog ) Done stage ( RTS ) Work items on cards that are moved from column to column Work-In-Process (WIP) limits The max number of work items that can be in a stage at any moment Typically, the work-in-process limits are drawn on the board at the top of each column (or across a span of columns) Pull is signaled if the number of cards in a column is less than the indicated limit Why WIP is important? To deliver new value (e.g. feature) quickly, limit the amount of work done at one time Context switching costs 20% productivity 19

21 Setting the WIP limits WIP limits for work tasks should be set as an average number of items per person, developer pair, or small, collaborative team Typically, the limit should be in the range of one to three items per person, pair, or team Do not waste time in trying to determine the perfect WIP limit; simply pick a number based on best guess, and make progress Adjust the WIP limit empirically if necessary There is no magic formula for your choice. You can select a number and then observe whether it is working well. If not, adjust it up or down 21

22 Kanban card conventions Use text or color to communicate the type of work Write other necessary information on the card, e.g. work description tasks assigned team member due date tracking number with digital Kanban board attachments possible 22

23 Web based Kanban boards Product offer has grown rapidly in last years In your project, use the free Trello tool: 23

24 Writing user stories

25 Writing a user story Template: As a <some role>, I want <something>, [so that <some value>] Describe who wants, what wants [and what for] in one sentence. Do not define any details of the implementation in the user story. Examples: As an end user I want to be able to upload my picture to my profile page, so that people can easily identify me As a knight I want to be able to ride a horse, so that I can move faster (game character) 25

26 Writing a user story Example of breaking down a story into smaller stories: Example of breaking down a story into tasks: Henrik Kniberg: Scrum and XP from the Trenches 26

What is meant by the term, Lean Software Development? Scope of this Report November 2014 This report provides a definition of Lean Software Development and explains some key characteristics. It explores

The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of a useful product solution Welcome changing requirements, even late in development Working products are delivered

Scrum vs. Kanban vs. Scrumban Prelude As Agile methodologies are becoming more popular, more companies try to adapt them. The most popular of them are Scrum and Kanban while Scrumban is mixed guideline

Agile support with Kanban some tips and tricks By Tomas Björkholm Foreword A year ago I held an Open Space at Scrum Gathering in Stockholm about Agile Support. I have since received several requests to

Lean and Agile Development With Scrum (Part 2) Lucio Davide Spano lucio.davide.spano@isti.cnr.it spano@di.unipi.it 7 May 2012 Dilbert intro Summary Sprint Review Done at the end of the Sprint Not a simple

Session # 3 Contents Systems Analysis and Design 2 1 Tiers of Software Development 10/4/2013 Information system development project Realistic behavior 3 Information system development project System Development

Lean Metrics How to measure and improve the flow of work Chris Hefley, CEO of LeanKit November 5 th, 2014 Introduction to Lean Metrics What metrics should you measure? How to track them? What effect do

1 www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Purpose with the material 2 This material describes the basics of Agile and Lean and the similarities and differences between

When agile is not enough LESS 2010 Kati Vilkki kati.vilkki@nsn.com 1 Nokia Siemens Networks When agile is not enough What does lean thinking add to agile? Combining agile and lean Change in mind-set Management

The only person who likes change is a baby with a wet diaper. Mark Twain Charan CA Atreya November - Evolutionary adoption of agile principles in traditional organizations First introduce Kanban and get

D25-2 Agile and Scrum Introduction How to Use this Download This download is an overview of a discussion Intertech has with clients on Agile/Scrum This download has an overview of Agile, an overview of

Program & Portfolio! Management using! Kanban! Introduction and Agenda Tom Wessel, Davisbase Consulting 20 years in software development. Over 7 years working with software development teams, training,

Agile Beyond The Team 1 Dilbert Agile 2 What Does Your Organization Value? Projects over Teams? Do new teams spools up for new projects? On-Time/On-Budget Delivery over Zero Maintenance Products Deliver

Agile Notetaker & Scrum Reference Designed by Axosoft, the creators of OnTime the #1 selling scrum software. Scrum Diagram: Team Roles: roduct Owner: Is responsible for what goes into the product backlog

Scrum and Kanban 101 www.bebetterleader.com @jfiodorova What are your expectations What are the differences between Agile and Traditional? What do you know about Agile Two approaches to control any process:

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

Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process

From Agile by Design. Full book available for purchase here. Contents Introduction xiii About the Author xix Chapter 1 Adjusting to a Customer-Centric Landscape 1 It s a Whole New World 1 From Customer-Aware

Development Testing for Agile Environments November 2011 The Pressure Is On More than ever before, companies are being asked to do things faster. They need to get products to market faster to remain competitive

Getting Started with Kanban Paul Klipp kanbanery 2 Contents 3/ Getting Started with Kanban 4/ What is Kanban? 7/ Using Kanban Does kanban apply to me? How can it help me? What will I have to change? 10/

Alternative Development Methodologies The Software Development Process described in the course notes and lecture is a generalized process that been in use for decades. Over this time, scholars in the IT

Using a Lean and Kanban Approach in Agile Development Jeff Patton AgileProductDesign.com jpatton@acm.org In this short talk we ll cover: 1. What is a Kanban System and how does it apply to software development?

Kanban what is it and why should I care? Abstract Landon Reese Kathy Iberle Kanban is gaining popularity in the software development world. It deserves to be considered as a means to manage software development.

Agile Training Portfolio Why agile? The question can also be: Why learn fast? Why adapt to new experiences and learnings quickly and easily? Well, the Dodo was not very agile and we all know how that ended.

What is Agile: Agile is a way of developing software and other soft products focused on flexibility and adapting to changing user or customer requirements to maximise value. In many circumstances the end

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015 Dr. Patrick McConnell July 9, 2015 1 First, an old joke.. I can t identify an original source for this cartoon. As best as I can tell, the art

Sample Exam ISTQB Agile Foundation Questions Exam Prepared By Released August 2016 1 #1 Which of the following is the correct pairing according to the Agile Manifesto statement of values? a. Individuals

1 PMI Agile Certified Practitioner (PMI-ACP) workshop course details. We are unique and specialists in Agile! Your workshop trainer by passion and is a senior Agile Coach who coached many teams and Kanban

Creating a High Maturity Agile Implementation Creating a High Maturity Agile Implementation www.qaiglobal.com 1 Copyright Notice 2015. Unless otherwise noted, these materials and the presentation of them

Agile Architecture Agile architecture is a set of values and practices that support the active evolution of the design and architecture of a system, concurrent with the implementation of new business functionality.