Software Development Methodologies



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

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

Introduction to Agile Software Development Process. Software Development Life Cycles

Software Development Life Cycle (SDLC)

Software processes that are:

A Capability Maturity Model (CMM)

History of Agile Methods

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

Agile Development Overview

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

D25-2. Agile and Scrum Introduction

How to manage agile development? Rose Pruyne Jack Reed

Agile Scrum Workshop

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

Agile Projects 7. Agile Project Management 21

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

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Project Management in Software: Origin of Agile

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

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

Models of Software Development

How To Plan A Project

Agile Software Development

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Quality Assurance in an Agile Environment

When is Agile the Best Project Management Method? Lana Tylka

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

Introduction to Agile and Scrum

Agile and Secure: Can We Be Both?

CSE 435 Software Engineering. Sept 16, 2015

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

Software Life Cycles and Configuration Management

Software Requirements and Specification

Introduction to Software Engineering: Overview and Methodologies

Processes in Software Development. Presented by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

CS4507 Advanced Software Engineering

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Software Engineering I (02161)

Agile So)ware Development

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

CMMI - The AGILE Way By Hitesh Sanghavi

Comparing Agile Software Processes Based on the Software Development Project Requirements

Alternative Development Methodologies

Issues in Internet Design and Development

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Agile project management: A magic bullet?

CSSE 372 Software Project Management: More Agile Project Management

EPL603 Topics in Software Engineering

Laboratório de Desenvolvimento de Software

AGILE vs. WATERFALL METHODOLOGIES

Software Engineering

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

Agile and lean methods for managing application development process

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Introduction to Agile Software Development

Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007

Agile Software Development compliant to Safety Standards?

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

Agile and the role of the business analyst

The Agile Project Manager

Large Scale Systems Design G52LSS

Development. Lecture 3

Hamid Faridani March 2011

Scrum QA Assessment. John Scarborough VP System Engineering STeP-IN Summit January 2006

Software development processes Life-cycle Models

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

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

Introduction to Agile Scrum

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

Agile Software Development

Agile Methodologies and Its Processes

Agile Software Development

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Quality Assurance Software Development Processes

Agile Information Management Development

Agile Testing and Extreme Programming

Lean QA: The Agile Way. Chris Lawson, Quality Manager

Software Development with Agile Methods

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

The Software Life Cycle. CSE 308: Software Engineering

The Agile Manifesto is based on 12 principles:

Software Development Process

How Product Management Must Change To Enable the Agile Enterprise

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

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Scrum. in five minutes

SOFTWARE PROCESS MODELS

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

"Bezpieczny Projekt"

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

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Mastering the Iteration: An Agile White Paper

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

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

How To Understand The Limitations Of An Agile Software Development

Transcription:

Software Development Methodologies Jonathan Hoyle Eastman Kodak Thursday, June 2, 2005

Overview Predictive Methodologies Waterfall Other Predictive Methodologies Agile Methodologies Extreme Programming (XP) Other Agile Methodologies Pros & Cons World Trade Center Project

Predictive Methodologies A reaction to Cowboy Programming A planned development life cycle Using practices which favor a well-defined outcome at each stage Plan-driven Tends to be Document-based Should include all phases of product development: Engineering, QA, Documentation, etc. Come to be identified with Waterfall methodology

Waterfall Methodology First proposed by Winston W. Royce in 1970 Traditional approach still most dominant Can be iterative (Royce encouraged this) Motivation: institute a controlled process incorporate risk management incorporate proper design principles estimation & progress tracking More robustly defined by CMM / CMMI

Waterfall Process Orderly sequence of distinct phases or stages Each phase is well-defined, following: Analysis (Specify) Design Coding Testing Tasks can be pre-planned Problems analyzed and resolved well in advance Milestones and deliverables clearly defined

Waterfall Model Flow

Other Predictive Methodologies Spiral Methodology (iterative Waterfall) SSADM Clean Room Design Rational Unified Process (RUP) by Rational Software

Agile Methodologies Welcomes change in requirements, even late into the development cycle Reaction to thick or heavyweight methodologies The motivation is to create a process by which software development can handle change without sacrificing good programming principles Create software iteratively, adding features as you go, rather than wait until the end for a working app Voice of customer part of the process

Agile Methodology Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiations Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Extreme Programming (XP) The most well known of Agile methodologies Created by Kent Beck in 1996 A growing community of software developers Best known for contributions in these areas: Testing (Test first philosophy) Design (Simplicity & Refactoring) Coding (Paired programming) Iterations (User stories, small fast releases)

XP: Testing Test First Philosophy Before implementing a feature or fixing a bug, a unit test is written first Verify the test fails (since no code is written) Now write the code to get the test to pass All unit tests must pass before checking in If any code causes unit tests to fail, those changes are backed out via source control All code must be associated with some unit test

XP: Design & Coding All production code is Pair Programmed Pairs swapped on a regular basis No code ownership All code must conform to agreed upon standards Design: The simplest thing that can possibly work. Refactor whenever possible (continuous design) Little to no comments in the code No functionality is added early Optimization saved for last

XP: Iterations Frequent small releases (iterations) Features broken down as user stories Stories get estimated by engineers and customer determines which stories go in that iteration Stories that are too big must be broken down Daily stand up meetings with all hands Retrospective after each iteration (no management) Fix XP when it breaks (change what doesn t work) NO OVERTIME

XP: World Trade Center Project When Gene Codes Corp. was contracted to create the forensic DNA identification software to identify the victims of the World Trade Center, XP was the methodology chosen to create this software. One of the most successful XP projects My personal experience with this is explained later.

Other Agile Methodologies: Scrum A wrapper around current processes Management prioritizes feature list 30 day sprint for development & QA At the end of each sprint, engineers demo the software showing changes since previous sprint A releasable version with each monthly cycle 15 minute daily team meeting: What did you do since last time? Any obstacles? etc. Discuss current backlog for this sprint Load balance work amongst team, if needs be

Scrum

Other Agile Methodologies: DSDM Management delivers prioritized list of requirements Prototype is built using MoSCoW principle: MUST have this SHOULD have this, if at all possible COULD have this, if it doesn t affect anything else WON T have this, but will in the future Each refinement is strictly time-boxed (dropping lowest priorities as time or money runs out) At the end of a time-box, management reviews, modifies requirements, creates new priorities, etc. Lather, rinse and repeat

DSDM

Other Agile Methodologies: Crystal Differing levels of agility (opacity): Crystal Clear, Crystal Yellow, Crystal Orange, Crystal Red Larger teams use less agility Software delivered incrementally (2-3 months) Automated regression testing Direct user involvement Team must hold pre- and post-increment workshops Mid-increment evaluation for course-correction

Crystal

Agile Pros & Cons Works well with: Volatile changes in requirements Iterative releases Consistent small team of developers Doesn t work well with: Large or distributed development teams Multiple project environment Inflexible corporate culture Heavily pre-designed project A pre-scheduled timeline covering a lengthy period