Tuesday, October 25. Announcements

Similar documents
The Software Life Cycle

Processes and Life- Cycles. Kristian Sandahl

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

Software Engineering

The Software Life Cycle

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

Agile Software Development

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Software Engineering Lecture 5 Agile Software Development

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Chapter 3 Software Process Model

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

AGILE BASICS. All slides copyright Philip Japikse

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

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

Chapter 3 Agile Software Development

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

RIGHTNOW A C E

ignoring agile, size and frequency, sales, , 280

Agile 101. Brent Hurley Chief Problem Solver Gira Solutions. Values, Principles

Agile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007

A New Divide & Conquer Software Process Model

Management by Consensus

Introduction to Agile and Scrum

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

SOFTWARE DEVELOPMENT. Process, Models, Methods, Diagrams Software Development Life Cyles. Part - V

Introduction to Agile/Extreme Programming

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

Agile Essentials Track: Business Services

Agile Methods. Background

4. Agile Methods. Prof. Dr. Dirk Riehle, M.B.A. Friedrich Alexander-University Erlangen-Nürnberg. Version of

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

Agile Delivery Framework (ADF)

PMI Agile Certified Practitioner (PMI-ACP) Duration: 48 Hours

The software process

SWE 211 Software Processes

SCRUM - LESSONS FROM THE TRENCHES

Rational Unified Process

Agile Software Development

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

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

Web Application Development Process

Agile Software Development

Agile Practices in Regulated Railway Software Development

CMPT 275 Software Engineering

Chapter 01 - The Process The Process Application Process ACP Qualifications Scheduling Your Exam Rescheduling/Cancelling Fees

AGILE SOLUTIONS. Agile Basics

Software Life Cycle. Main Topics. Introduction

BA25-Managing the Agile Product Development Life Cycle

03. Perspective Process Models

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

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

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

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Agile Development Methodologies:

Two Branches of Software Engineering

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.

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

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

Agile Scrum Process Checklist

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

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

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

The Product Manager and the Product Development Process. Martin Cagan Silicon Valley Product Group

EXtreme Programming explained: embrace change by Kent Beck, Addison Wesley, September 1999.

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Systems Modernization Strategies August 2017

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

WELCOME TO INTRO TO AGILE PROJECT MANAGEMENT AUBREY KAIGLER, PMP, ITIL. Please configure your audio: Meeting Audio Setup Wizard

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Chapter 1 Systems Development in an Organization Context

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

RUP and XP Part II: Valuing Differences

PRINCE Update. Changes to the manual. AXELOS.com. April 2017 PUBLIC

1. Organizational information (company and business unit): 2. How large is the organization (number of employees)? !25 8.7%

Change Agile. Ben Linders, André Heijstek. veranderproject.nl

Presented by Only Agile. What is Agile?

This course will explore how your projects can easily and successfully make the transition to an effective Agile environment.

Agile Methodology. Tech Focus. Agile Methodology: Characteristics. Techspace Home Tech Focus Case Study Trend Watch Thought Post

approach to successful project

Debunking Agile Myths

Software Engineering Modern Approaches

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

Owning An Agile Project: PO Training Day 2

SCRUM - compact The agile software development methodology

Scrum Team Roles and Functions

An Introduction to Scrum

Extreme Programming, an agile software development process

10/12/ Copyright 2012, Oracle and/or its affiliates. All rights reserved. Oracle Unified Method (OUM) Overview

Preparation Guide. EXIN Agile Scrum Foundation

Agile Software Development

Using the Rational Unified Process for Small Projects: Expanding Upon extreme Programming

Agile Easy Read Snippets - Book 1. Agile Snippets. David Geoffrey Litten Agile Primer

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

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

Extreme programming XP 5

The Top Thrill Dragster

Transcription:

Tuesday, October 25 Announcements Crowdsourcing the Midterm http://www.drsusansim.org/teaching/inf111/pligg Homework 5 Skip lab portion Use anything you want to draw the diagrams for the take home portion

Software Process Models Software Process A Software Process Model is a simplified representation of the software process, presented from a specific perspective. General and abstract Software Process is a set of activities whose goal is the development or evolution of software Specific and enacted Like the difference between class and object/instance

Dimensions of Variation Phased or iterative Plan-based or incremental Continuous testing or late testing Feedback Risk management Waterfall Model Diagram Steve Easterbrook, University of Toronto

Waterfall Model Points in Favor Some things must occur before others in the process, it makes sense to have code before test, requirements before design etc. It works as a model because it s essentially true Points Against No project or design has ever proceeded this way Very difficult to lock down details before proceeding to next step Evolutionary Model Diagram Steve Easterbrook, University of Toronto

Evolutionary Model Points in Favor Accommodates throw-away prototyping Allows for lessons from each version to be incorporated into the next Points Against Hard to plan for versions beyond the first Lessons may be learned too late Process is not visible Systems are often poorly structured Special tools and techniques may be required Spiral Model Diagram Steve Easterbrook, University of Toronto

Spiral Model Points in Favor Incorporates prototyping and risk analysis Points Against Cannot cope with unforeseen changes (e.g. new business objectives) Not clear how to analyze risk Question What is the difference between iterative and incremental?

Thursday, October 28 Rational Unified Process RUP is a software (development design) process that is: Use case-driven Architecture-centric Iterative and incremental

Rational Unified Process UP Phases Inception Approximate vision, business case, scope, vague estimates Elaboration Refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates Construction Iterative implementation of lower risk and easier elements, preparation for deployment Transition Beta tests, deployment

Agile Methods Currently, very popular in industry Agile means being able to move quickly Mentally quick and resourceful Develop software iteratively and incrementally Manage risk by managing scope Strong customer focus Continuous feedback Between developers, managers, and customers Can not plan for all possible changes, instead embrace change Commonly Used Agile Methods SCRUM Emphasis is on managing the project Extreme Programming (XP) Guides development and management Others Lean Crystal

Agile is not entirely new Iterative and incremental process models have existed for a long time Spiral model by Barry Boehm (1985) Evolutionary software development Mentioned by Fred Brooks in No Silver Bullet (1987) Frequent deliveries and feedback EVO by Tom Gilb (1985)

Current Differences Popularity Initiated by software developers Now taken up by executives New Techniques and Tools Test-driven development Refactoring User stories Growing Community with Shared Terminology Infrastructure Coaches, training, certification, courses, conferences Current Reasons for Popularity Effectiveness Results Compatibility with web applications Cool factor

Extreme Programming (XP) Four Values Communication, simplicity, feedback, and courage The Principles Concrete applications of the principles Rapid feedback; assume simplicity; incremental change; embracing change; quality work Four Basic Activities Coding, testing, listening, and designing Twelve Practices Extreme Practices If code reviews are good, we ll review all the time (pair programming). If testing is good, everybody will test all the time (unit testing). If design is good, we ll make it part of everybody s daily business (refactoring). If simplicity is good, we ll always leave the system with the simplest design that supports the functionality (the simplest thing that could possibly work). If architecture is important, everybody will work defining and refining the architecture all the time (metaphor). If integration testing is important, then we ll integrate and test several times a day (continuous integration). If short iterations are good, we ll make the iterations really, really short seconds and minutes and hours, not weeks and months and years (the Planning Game).

Twelve Key Practices of XP Programmer Practices Management Practices Simple Design Test-driven development Refactoring Pair programming Collective code ownership Continuous integration Coding standards Planning Game Small releases 40-hour week Customer Practices On-site customer Metaphor Scrum Derived from the rugby term scrum Despite appearances, is a organized test of strength and skill Work is done in sprints (iterations) that form releases Key Roles: Scrum Master and Product Owner (On- Site Customer) Key Practices: Daily stand-up meeting, time-boxing, and burn-down chart

Scrum Schematic

Steps in the Scrum Process Product Owner identifies backlog task items (User Stories) Releases are planned Scrum team estimates the cost of user stories Product Owner prioritizes user stories A sprint begins with a Sprint Planning Meeting User Stories are broken down into tasks with time estimates Anyone doing work is involved, including testers, system administrators, documentation writers Every day begins with a daily stand-up meeting A sprint ends with a Sprint Review Meeting Scrum Master A project management role Chairs the meetings Tracks progress Maintains burn down chart Work allocation is based on historical performance Number of story points per release Number of hours per sprint

Task Board Burn Down Chart

Misconceptions About Agile Myth: Agile is undisciplined Fact: Agile is disciplined, but not in a traditional way Myth: Agile is not suitable for large teams Fact: Agile can be used on large teams, but requires a more overhead than plan-based approaches Myth: Agile is not suitable for geographicallydistributed teams Fact: Agile does work in these settings, if you have the discipline, infrastructure, and organizational support. Myth: Agile means no documentation Fact: You can use as much or as little documentation as you need on agile. Myth: Agile means no architecture Myth: Agile means no planning