Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)



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

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

COMP 354 Introduction to Software Engineering

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software development lifecycle

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

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

A Comparison between Five Models of Software Engineering

Agile Projects 7. Agile Project Management 21

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Today: Software Development Models (cont)

How To Model Software Development Life Cycle Models

The most suitable system methodology for the proposed system is drawn out.

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

CS4507 Advanced Software Engineering

Software Development Life Cycle (SDLC)

Software Development Life Cycle

Unit I. Introduction

CPSC 491 Lecture Notes Fall 2013

How To Understand The Software Process

Software Development Process

Classical Software Life Cycle Models

SOFTWARE PROCESS MODELS

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

(Refer Slide Time: 01:52)

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

ASSESSMENT OF SOFTWARE PROCESS MODELS

Software Engineering. What is a system?

A Capability Maturity Model (CMM)

How To Understand The Limitations Of An Agile Software Development

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

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

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

What is a life cycle model?

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

Elite: A New Component-Based Software Development Model

This Wednesday. last *me: Product idea proposal. SoKware Development Lifecycle. What is complex? How complex is sokware? 1/25/15

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

LECTURE 1. SYSTEMS DEVELOPMENT

Software Life Cycle Models

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

A Comparison Between Five Models Of Software Engineering

An Assessment between Software Development Life Cycle Models of Software Engineering

last +me: Product idea proposal SoJware Development Lifecycle What is complex? How complex is sojware? How complex is sojware? How complex is sojware?

CSCI-485: Software Design

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Chapter 3 Methodology

Development Methodologies

Agile vs. Waterfall. Why not both. Arnold Okkenburg PMP

Managing TM1 Projects

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

Agile and lean methods for managing application development process

Comparing Plan-Driven and Agile Project Approaches

Agile and lean methods for managing application development process

Requirements Analysis (RA): An Analytical Approach for Selecting a Software Process Models ABSTRACT

Software Process for QA

Lecture 21 March 7, 2013

Software Project Models

Software Development Life Cycle & Process Models

The Spiral development model is a risk-driven process model generator. It

Advanced Software Engineering. Software Development Processes

Chapter 3 Technology adapted

System development lifecycle waterfall model

Prepared by: Ahmed Abdelmalik Mohammed Ahmed Ali Ann Joseph Duaa Jasim. Submitted to T.Mona

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

CSE 435 Software Engineering. Sept 16, 2015

Software Engineering

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Lifecycle Models: Waterfall / Spiral / EVO

Alternative Development Methodologies

Software Development Life Cycle Models- Comparison, Consequences

Oracle Unified Method (OUM)

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Object-Oriented and Classical Software Engineering

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Chakra Vs Spiral Model - A Practical Approach

Software Development Processes. Software Life-Cycle Models

Foundations of software engineering

Software Process Models. Xin Feng

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Outline. Definitions. Course schedule

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Introduction to Software Engineering

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Software Development Methodologies

Weaving the Software Development Process Between Requirements and Architectures

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

White Paper IT Methodology Overview & Context

Redesigned Framework and Approach for IT Project Management

Making Sense of. Agile Project Management. Traditional. Project Management. 1/19/ Breakthrough Solutions, Inc. 1

Lecture 3 Software Development Processes

A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Transcription:

Lifecycle Planning Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart) Version 1.4 David Root, 2005, all rights reserved 1

Topics Who am I to be talking to you? Lifecycle Defined Benefits of lifecycle models Cover eleven different models Benefits and disadvantages Choosing an appropriate model Filling in a comparison table between the models We have a lot to cover, it will go fast Version 1.4 David Root, 2005, all rights reserved 2

My Background (my I love me slides) Teaching at CMU for 7 years 3 yrs Leadership/ethics 4 yrs SE Retired U.S. Navy Officer Aviator Top Gun graduate Projects Version 1.4 David Root, 2005, all rights reserved 3

Background Degrees in CS (Berkeley), Education (Chapman) and IT (CMU) Currently Full time Lecturer Associate Director of DE Academic interest in distributed learning agile processes Other interests Motorcycles, flying, Tennis, retiring. Version 1.4 David Root, 2005, all rights reserved 4

Lifecycle Defined Note: You must define terms Every software-development effort goes through a lifecycle, which consists of all the activities between the time that version 1.0 of a system begins life as a gleam in someone s eye and the time that version 6.74b finally takes its last breath on the last customers machine. Steve McConnell, Rapid Development, 1996 Version 1.4 David Root, 2005, all rights reserved 5

The goal is often not to achieve what you said you would do at the beginning of the project, but to achieve the maximum possible within the time and resources available. Roger Sherman, Microsoft, 1995 Version 1.4 David Root, 2005, all rights reserved 6

What is a Life Cycle? Websters (1892): The series of stages in form and functional activity through which an organism passes between successive recurrences of a specified primary stage. Reifer (1997): (product) Period of time that begins when a software product is conceived and ends when the product is retired from use. Version 1.4 David Root, 2005, all rights reserved 7

What is a Life Cycle? Tony Lattanze The software lifecycle is the cradle to grave existence of a software product or software intensive system includes initial development, repairs, and enhancement, and decommission Management of the entire lifecycle of a software intensive system requires a deeper knowledge than basic in-the-small development intuition and experience Version 1.4 David Root, 2005, all rights reserved 8

More on What Lifecycle models attempt to generalize the software development process into steps with associated activities and/or artifacts. They model how a project is planned, controlled, and monitored from inception to completion. Lifecycle models provide a starting point for defining what we will do. Version 1.4 David Root, 2005, all rights reserved 9

So What is a Process? (remember this for the process lectures) A process is a sequence of steps performed for a given purpose. Websters: a series of actions or operations conducing to an end. The concept of software process is rarely presented in undergraduate education. Version 1.4 David Root, 2005, all rights reserved 10

Process = Lifecycle Software process is not the same as life cycle models. process refers to the specific steps used in a specific organization to build systems indicates the specific activities that must be undertaken and artifacts that must be produced process definitions include more detail than provided lifecycle models Software processes are sometimes defined in the context of a lifecycle model. Version 1.4 David Root, 2005, all rights reserved 11

Benefits of a Lifecycle Model REPEATABLE! Streamline project Improve development speed Improve quality Improve project tracking and control Minimize overhead Minimize risk exposure Improve client relations Version 1.4 David Root, 2005, all rights reserved 12

Life Cycles Ad Hoc Classic (waterfall) Prototype Throw away and evolutionary RAD Incremental Spiral Design to Schedule Evolutionary delivery COTS This list is not all inclusive there are more. maybe Version 1.4 David Root, 2005, all rights reserved 13

Look at with respect to: Scope, time, resources, quality Stakeholders Requirements volatility Environments Business / market Cultures Moral, legal constraints And More Version 1.4 David Root, 2005, all rights reserved 14

Ad Hoc Hobbyist Legacy Code Test Code Test Becomes a mess, chuck it, start over Design (high level) Code Test Code Test.. (Reality was Code - Test Code Test Document the resulting design) Maintenance Phase: Test Code - Test Version 1.4 David Root, 2005, all rights reserved 15

Waterfall Model also called traditional First proposed in 1970 by W.W. Royce Development flows steadily through: requirements analysis, design implementation, testing, integration, and maintenance. Note: Royce advocated iterations of waterfalls adapting the results of the precedent waterfall. Version 1.4 David Root, 2005, all rights reserved 16

Waterfall Model Technology had some influence on the viability of the waterfall model. slow code, compile, and debug cycles Reflected the way that other engineering disciplines build things. Formed the basis of the earliest software process frameworks Waterfall is still used today (but no one will admit it) Version 1.4 David Root, 2005, all rights reserved 17

Waterfall (linear) (Classic) Model Intent Benefits: Product Idea Analysis Logical Sequence Highly Scalable Artifact/document driven Set milestones / review points Design Implementation Testing Product Life Version 1.4 David Root, 2005, all rights reserved 18

Waterfall Model: Reality Product Idea Analysis Design Implementation Testing Product Life Version 1.4 David Root, 2005, all rights reserved 19

Waterfall Problems Need for big specification (requirements) Inflexible Increasing use of resources? Oops Go back to a previous step Progressively more costly No results till end Possible cost of cascading bugs Importance of secondary artifacts Where appropriate? Version 1.4 David Root, 2005, all rights reserved 20

From Chris Kemerer Reality of Waterfall 1. Enthusiasm 2. Disillusionment 3. Panic & Hysteria 4. Search for the Guilty 5. Punishment of the Innocent 6. Praise & Honors for the nonparticipants David Root, 2005, all rights reserved

Throw away Prototype Proof of concept It can be done End point unknown! Goal is domain knowledge increase Disadvantages Seen as project completion But not robust Quality Version 1.4 David Root, 2005, all rights reserved 22

Evolutionary Prototype Keep something Different than incremental? The evolutionary development model can be distinguished from the prototyping model in that a final product is typically specified the product features are evolved overtime to some predetermined final state Version 1.4 David Root, 2005, all rights reserved 23

Evolutionary Prototyping Develop system concept as the project progresses Begin with the most visible aspects Prototype Rapid Development, 1996 Version 1.4 David Root, 2005, all rights reserved 24

The Rapid Prototype Model Product Idea Analysis Prototype Design Implementation Testing Product Life Version 1.4 David Root, 2005, all rights reserved 25

A Common Misuse of the Rapid Prototype Model Product Idea What does this look like? Prototype More Code Test Product Life Version 1.4 David Root, 2005, all rights reserved 26

Incremental Typical Agile Model The incremental model prescribes developing and delivering the product in planned increments. The product is designed to be delivered in increments. Each increment provides (in theory) more functionality than the previous increment. How is this different from Evolutionary? Version 1.4 David Root, 2005, all rights reserved 27

Incremental Model (what blocks are missing?) Analysis Design Code Test Analysis Design Code Test Analysis Design Code Test These are sequences of what? Version 1.4 David Root, 2005, all rights reserved 28

Incremental / Agile methods Customer centric customer expectation management Deliver every increment Develop the product with tight customer involvement Use customer needs to drive priorities for the project Similar in many aspects to rapid prototyping Use small team integration to handle many project issues Scrum and XP are primary examples Version 1.4 David Root, 2005, all rights reserved 29

Agile Advantages Highly Flexible volatile requirements Works on what is important for the customer Primary artifact is Code Short increments reduce failure impact Use teaming controls to improve quality Version 1.4 David Root, 2005, all rights reserved 30

Disadvantages Team co-location required - maybe Scope is looked at in short cycles What can be done in a week Drive towards product only focus Maintenance issues Documentation Legal, safety of life Design on the fly Scalability Version 1.4 David Root, 2005, all rights reserved 31

Rapid Application Development (RAD) Incremental 60-90 days per release Information Systems 4 th Generation Techniques Business Modeling Data Modeling Process Modeling Application Generation Testing & Turnover Version 1.4 David Root, 2005, all rights reserved 32

Spiral Model The spiral model First defined by Barry Boehm combines elements of: evolutionary, incremental, and prototyping models First model to explain why iteration matters How iteration could be used effectively the term spiral refers successive iterations outward from a central starting point. Version 1.4 David Root, 2005, all rights reserved 33

Spiral Model Customer communication Planning Risk analysis Note Project entry point axis Engineering Customer evaluation Construction & release Product maintenance projects Product enhancement projects New product development projects Concept development projects Roger S. Pressman s Software Engineering, a Practitioners Approach Version 1.4 David Root, 2005, all rights reserved 34

Spiral Model The goal is to identify risk and focus on it early. In theory, risk is reduced in outer spirals as the product becomes more refined. Cost/time increases reduce risk Each spiral starts with design goals ends with the client reviewing the progress thus far and future direction was originally prescribed to last up to 2 years Flexible Version 1.4 David Root, 2005, all rights reserved 35

Possible Applications High risk projects Poorly understood requirements Poorly understood architecture Potential performance problems Problems in the underlying technology Combine with other lifecycle models Terminate with waterfall or other lifecycle Incorporate other lifecycle models as iterations Version 1.4 David Root, 2005, all rights reserved 36

Design-to-Schedule Prioritize features Unsure if final release will be reached Rapid Development, 1996

Design-to-Schedule Benefits Ensure product release for a particular date Most important features completed first Useful for project parts not on the critical path Version 1.4 David Root, 2005, all rights reserved 38

Design-to-Schedule Disadvantages Wasted effort specifying unfinished stages Could complete one or more stages if time was not wasted specifying several unfinished stages Version 1.4 David Root, 2005, all rights reserved 39

Evolutionary Delivery Similar to Evolutionary Prototyping Refine version based upon customer feedback Emphasizes core of the system Version 1.4 David Root, 2005, all rights reserved 40

Evolutionary Delivery Rapid Development, 1996

Evolutionary Delivery Benefits Can accommodate customer requests Allows a degree of midcourse changes Provides tangible results Disadvantages Requires careful planning May lead to Code-and-Fix development Use for Exceptionally time-sensitive projects Version 1.4 David Root, 2005, all rights reserved 42

Cycle Commercial Off-the-Shelf Software Identify Possible ones Check Library Use (if they exist) Build new ones (if they don t Put new ones in Library But: Software rarely matches ideal software Design concessions Cost concessions Schedule concessions Version 1.4 David Root, 2005, all rights reserved 43

Choosing: Criteria to consider Requirements understood? Volatile? Scope of project External constraints? Need for design / architecture Quality Future revisions? How much risk can you accept Schedule / Resource constraints Version 1.4 David Root, 2005, all rights reserved 44

Choosing An Appropriate Lifecycle (cont.) Need to provide visible progress to customers Need to provide visible progress to management How sophisticated (complicated) is the model Version 1.4 David Root, 2005, all rights reserved 45

Strengths & Weaknesses Rapid Development, 1996

Strengths & Weaknesses - 2 Rapid Development, 1996

Strength and Weakness - 3 Lifecycle model Agile methods Poorly understood requirements Poorly understood Architecture Produces highly reliable system Produce system with large growth Manage Risks Can be schedule constrained Has Low overhead Allows midcourse corrections Customer visibility Management visibility Mgmt or developer sophistication Good Poor Fair Fair Good Good Good Good Excellent Fair Poor

Common Errors in Choosing Tailoring project to fit lifecycle Looking for a recipe NO! Tailor lifecycle Imbedded lifecycles Supermarket approach Pick and choose? It must be repeatable! Version 1.4 David Root, 2005, all rights reserved 49

Questions? Version 1.4 David Root, 2005, all rights reserved 50