Agile development. Pedro Cabalar. Departamento de Computación Facultad de Informá;ca University of Corunna, SPAIN

Similar documents
Agile Software Development. Mohsen Afsharchi

So#ware Development Methodologies Project Management Phases Agile Methodology Agile Manifesto Roles. Team Roles and Responsibili?

Developing the Agile Mindset for Organiza7onal Agility. Shannon Ewan Managing

Introduction to Agile Software Development

Agile Development Overview

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

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

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

Software Development with Agile Methods

Agile Project Management By Mark C. Layton

Agile and Secure: Can We Be Both?

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Software Development Life Cycle (SDLC)

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

Agile with XP and Scrum

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

How to manage agile development? Rose Pruyne Jack Reed

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Software Requirements and Specification

Quality Assurance Software Development Processes

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

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

How To Understand The Limitations Of An Agile Software Development

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2

IT Governance in Organizations Experiencing Decentralization. Jelena Zdravkovic

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

SOFTWARE PROCESS MODELS

Introduction to Agile Software Development Process. Software Development Life Cycles

Stakeholder Communication in Software Project Management. Modelling of Communication Features

A Capability Maturity Model (CMM)

Business Analysis Standardization A Strategic Mandate. John E. Parker CVO, Enfocus Solu7ons Inc.

Agile Software Development in the Large

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

CSSE 372 Software Project Management: More Agile Project Management

Software Development Methodology Development Process Aress

Manifesto for Agile Software Development

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Agile Scrum Training. Nice to meet you. Erik Philippus. Erik Philippus (1951)

Agile Projects 7. Agile Project Management 21

Agile project management: A magic bullet?

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

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

Extreme Programming, an agile software development process

AGILE vs. WATERFALL METHODOLOGIES

Agile Security. Tilmann Haak, XING AG,

Introduction to Agile and Scrum

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

ITSM Agile Intro Feb 5, 2015

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Software processes that are:

Introduction to Agile Software Development. EECS 690 Agile Software Development

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

Agile Processes and Distributed Projects: Dream or Nightmare?

PMBOK? You Can Have Both! June 10, Presented by:

When is Agile the Best Project Management Method? Lana Tylka

Role of Agile Methodology in Software Development

Moonzoo Kim CS Division of EECS Dept. KAIST

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Introduction to the PMI Agile Certification: PMI-ACP SM

Agile Metrics. It s Not All That Complicated

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

Agile Software Development

Mission. To provide higher technological educa5on with quality, preparing. competent professionals, with sound founda5ons in science, technology

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

CS4507 Advanced Software Engineering

Neglecting Agile Principles and Practices: A Case Study

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

CS 5150 So(ware Engineering Steps in the So(ware Development Process

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Strategies for Medical Device So2ware Development Presented By Anthony Giles of Blackwood Embedded Solu;ons And a Case Study by Francis Amoah of Creo

CSSE 372 Software Project Management: Managing Agile Projects

"Bezpieczny Projekt"

Effec%ve AX 2012 Upgrade Project Planning and Microso< Sure Step. Arbela Technologies

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

How To Understand The Software Process

Software Design Models, Tools & Processes *

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Software Processes. Agile Methods

LEAN AGILE POCKET GUIDE

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

3C05: Unified Software Development Process

Imad Alsadeq, Qatar, May 2013 OPM3, MSP, PMP, PMOC, PMI-RMP, MCP

RUP for Software Development Projects

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

Agile and the role of the business analyst

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

Introduction to Agile Scrum

Agile Software Development

Business Analysis Center of Excellence The Cornerstone of Business Transformation

Applying Agile Methods in Rapidly Changing Environments

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Kanban. A Toyota s manufacturing system for Software Development CERN EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH. Eloy Reguero Fuentes

How To Plan A Project

Transcription:

Agile development Pedro Cabalar Departamento de Computación Facultad de Informá;ca University of Corunna, SPAIN

Agile Development Main bibliographic source: Agile & Itera,ve Development A Manager s Guide, Craig Larman, Addison- Wesley, 2004.

Manufacturing vs Development Compare these 2 building tasks: 1. Building mobile phones on an assembly line Unanmbiguous specifica;ons Reliable es;ma;on of tasks and scheduling 2. Building a custom house Ini;ally, the owners are not exactly sure of what they want They may clarify their mind as they see the design, the costs, ;me, etc.

Manufacturing vs Development Predictable Manufacturing New Product Development We can: first complete specifica;ons and then build Cost and effort can be reliably es;mated at the beginning We can iden;fy, define and schedule all the ac;vi;es (PERT, GanZ, etc ) Unpredictable change is rare and unexpected Difficult to create unchanging specs from the beginning Es;ma;ons are only possible awer some empirical data increasingly available We need adapta;ve steps driven by build- feedback cycles Crea;ve adapta;on to change is the norm

SoWware development SoWware construc;on mostly fits in the case of new product development However, SW development methodolody was originally focused on a mass manufacturing problem

Classical waterfall methods Analysis Design Implementa;on Verifica;on Maintainment

Itera;ve & Evolu;onary Itera;ve development: the overall lifecycle is composed of several itera;ons in sequence. Build for some requirements feedback Build for some requirements feedback Build for some requirements Release to customers

Itera;ons Each itera;on generates an itera;on release: release = stable, integrated and tested system, collec;ng all the SW across the teams Most releases are internal. The final itera;on release is the complete product released externally Recommended dura;on: 1-6 weeks per itera;on Incremental development: in each itera;on the system is tuned, but it also grows with new features

Itera;ve planning Itera;ve planning: what to do in the next itera;on? Risk- driven: riskiest features first Client- driven: the client decides the most valuable feature to build next Advantage: the client steers the project using the latest insight, not just an ini;al specula;on

Itera;ve planning What to do if we cannot meet the end date for an itera;on? Three solu;ons: 1. Slip the end date 2. Work more hours 3. Reduce the scope 1. NO. Timeboxing: the end date cannot be changed! 2. NO. Respect: do not add pressure due to bad planning 3. YES! Reduce the scope: lower priority features moved to the wish list

Evolu;onary requirements Embrace change but not chaos: changes occur from itera;on to itera;on A point of stability is needed: during an itera,on, no changes from external stakeholders Requirements workshop at each itera;on: used to expand or refine requirements.

Evolu;onary requirements Requirement analysis is evolu;onary, but not unbounded. Usually, 90% of requirements are obtained in the first 3 or 4 itera;ons. Example: 90% 90% Requirements SoWware 50% 20% 2% 30% 5% 8% 10% 20% Itera;on 1 Itera;on 2 Itera;on 3 Itera;on 4 Itera;on 5

Evolu;onary requirements Evolu;onary no early requirements First itera;ons encourage clarifying things like: top ten high level requirements Architectural influen;al factors (load, usability, interna;onaliza;on, )

Bad moment for es;ma;ons Adapta;ve planning Ini;al phase has high uncertainty. Difficult to make a good planning or cost es;ma;on. Defer expecta;on for good es;mates un;l a few itera;ons (10-20% of the project) 4 x 2 x The cone of uncertainty x x/2 x/4 Iter1 Iter2 Iter3 Iter4 Iter5 Iter6 Less uncertainty, more feedback here x = Effort/cost or schedule final value x

Adapta;ve planning Some;mes contracts are split into two phases 4 x 2 x x x x/2 x/4 Iter1 Iter2 Iter3 Iter4 Iter5 Iter6 Phase 1: Bidding for Phase 2: Fixed ;me, phase 2 (Price fixed during bidding) fixed price 10% of SW but most high level reqs.

Delivery Delivery = is an itera;on release put in produc;on (marketplace) Promote and schedule incremental deliveries, with expanding capabili;es. Example: plan deliveries each 6 months Promote evolu;onary deliveries: use feedback from users of installed products.

Itera;ve & Evolu;onary methods Itera;ve methods Evo (Evolu;onary project management) (1960s) Itera;ons of 1-2 weeks Evolu;onary delivery at each itera;on Adapta;ve client/value- driven planning Numeric measures for progress and quality

Itera;ve & Evolu;onary methods Itera;ve methods UP (Unified Process) /RUP (Ra;onal UP) (mid 1990s) Short ;meboxed itera;ons Elabora;on phase: early itera;ons fix the high- risk & high- value elements that are core for architecture Construc;on phase itera;ons build the remainder We can use up to 50 ar;facts or workproducts (vision, use- case model, risk list, etc) classified by disciplines (requirements, design, project management, implementa;on, etc).

Itera;ve & Evolu;onary methods Agile methods They were conceived in the 1990 s. Some well- known examples are: Dynamic Systems Devel. Method, DSDM (1994) Scrum (1995) Crystal Clear (1996) Extreme Programming, XP (1996) Feature Driven Development, FDD (1997)

Classifica;on of methods Strict waterfall (sequen;al) Few docs, few steps Scrum Cycles Ceremony Many docs, formal steps UP XP Many short itera;ons (5 days) Evo

Classifica;on of methods Cockburn scale used to show adequacy of methods with respect to cri;cality and staff Cri;cality (defects cause loss of ) Life (L) Essen;al Money (E) Discre;onary Money (D) Comfort (C) Number of people 1-6 20 40 100 L6 L20 L40 L100 E6 E20 E40 E100 D6 D20 D40 D100 C6 C20 C40 C100...

Classifica;on of methods An example: method measuring for an L100 project has nothing to do with a C6 project. Cri;cality (defects cause loss of ) Life (L) Essen;al Money (E) Discre;onary Money (D) Comfort (C) Number of people 1-6 20 40 100 L6 L20 L40 L100 E6 E20 E40 E100 D6 D20 D40 D100 C6 C20 C40 C100...

Agile methods Let s go agile!

Agile methods They share Short ;meboxed itera;ons Embrace change: agility, rapid and flexible response to change Adapta;ve, evolu;onary refinement of plans Although conceived in the 1990s, they receive the name of ``agile methods in 2001. A group of 17 developers meet at the Rocky Mountains, Utah and publish the Agile Manifesto It contains the following 12 principles

The Agile Manifesto 1. Customer sa;sfac;on = highest priority Keypoint: early and con;nuous delivery of valuable SW 2. Welcome changing requirements even in late development Greater customer s compe;;ve advantage 3. Deliver working SW frequently Weeks bezer than months!

The Agile Manifesto 4. Business people <- - > developers daily coopera;on 5. Build projects around mo;vated individuals Give them environment and support, then trust them to get the job done 6. The best form of communica;on is face- to- face conversa;on Documenta;on is relegated to a 2nd level

The Agile Manifesto 7. The primary measure of progress is working sowware 8. Promote sustainable development Be able to maintain a constant pace (like running a marathon) 9. Con;nuous azen;on to technical excellence and good design

The Agile Manifesto 10. Simplicity the art of maximizing the amount of work not done is essen;al 11. The best architectures, requirements and designs emerge from self- organizing teams 12. At regular intervals, the team readjusts and tunes to become more effec;ve

Agile Prac;ces I. Individuals and interac;ons over process and tools People is the most important ingredient of success A ``strong player need not be an ace programmer, but an average one that works well with others First, build a good team, then let them configure their environment and tools

Agile Prac;ces II. Working sowware over comprehensive documenta;on Documen;ng sowware is essen;al, but too much is worse than too lizle Too much docs = effort to sync with the code, or they become big lies that lead to confusion A document needs to be short and salient: Short = <30 pages, salient = overall design and highest- level structures

Agile Prac;ces III. Customer collabora;on over contract nego;a;on A closed contract is an early source of failure Requirements, schedule, costs usually become obsolote before the project is completed Involve customer feedback on a regular, frequent basis The best contracts govern the way in which customers and developers will work together

Agile Prac;ces IV. Response to change over following a plan SW projects cannot be planned for far future: changing environment, requirements, es;ma;ons, Plans degrade with ;me: PERT, GanZ diagrams change not only in dura;ons but also in structure Solu;on: make flexible plans, detailed for next 2 weeks, rough for the next 3 months, and crude beyond that