software development lifecycle (sdlc) models & agile methods

Similar documents
sdlc lecture'1:' so,ware'development'lifecycle' (sdlc)'models'&'agile'methods' sdlc'(2)' sdlc' how did that happen?

MIS Systems & Infrastructure Lifecycle Management 1. Week 10 March 24, 2016

Lean IT Opex in the Clouds August 16, 2017 Sudhagar Raghavan

Software Engineering. M Umair.

Agile QA s Revolutionary Impact on Project Management

Agile Software Development in a Regulated Environment. Natalie Custer

ONE! TEAM! 2010, Nick Athanassiadis. All rights reserved.!

Agile Program Development. Agile Manifesto 9/3/2013. What is Agile Development? 12 Principles of Agile Development 1 of 4

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

User-centered System Design. Agile

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

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Software Development Life Cycle

Agile Development Processes. CSCE Lecture 3-08/31/2017

Applying Agile Principles to Project Management. Tyler Monson PMP, CSM Hiren D. Vashi PMP, PMI-ACP, CSM, CSP

Certified Scrum Developer Program Introduction presented by. Copyright Davisbase LLC

An Overview of Software Process

Achieving Resiliency with Agile Methods

Being Agile at a Small Agency How to Apply Agile Principles in a Not-So-Iterative Environment

Software Development Methodologies

04. Agile Development

FIT2101 Software Engineering Process and Management

Let s Talk About Being Agile

Certified Scrum Product Owner Course. Pre-Course Reading and Exercises

Are we Agile Yet? Agile is NOT a Destination

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

Using Agile Software Development to Create an Operational Testing Tool

Agile/Lean & Safety: Perfect Match or Impossible Combination?

Agile Essentials Track: Business Services

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Agile Thinking. Petri Heiramo. Agile Coach, CST

Agile Projects 7. Agile Project Management 21

Continuous integration for BI

Agile & Lean / Kanban

AGILE methodology- Scrum

Software Development: Theory and Exercises

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

Introduction to Disciplined Agile Delivery

Processes and Life- Cycles. Kristian Sandahl

The Systems Development Lifecycle

Function Point Analysis and Agile Methodology

Agile Mindset (1/17/2019 for the Ocean State PMI)

Step 1. Empty your cup...

From Theory to Data Product

Processes and Life- Cycles. Kristian Sandahl

Back to Basics Restoring Order to Software Development

AGILE SOLUTIONS. Agile Basics

SCEA 2010 EST06. Estimating Issues Associated with Agile Development. Bob Hunt Vice President, Services Galorath Incorporated

Fondamentaux de l agilité

AGILE DATA ARCHITECTURE CHEAPER, FASTER, BETTER AGILE DATA ARCHITECTURE SPRINTS: AGILE -VS- JAD 11/10/14. Agile! Full time co-location

Russell Pannone February 10, 2009

The Software Life Cycle

Mike Vincent. mvasoftware.net

HELP!!! THE SCRUM MASTER IS THE IMPEDIMENT!

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

Why agile? Principles and Values to Change our Perspective of the World SOFIA WOLOSCHIN ICA-ACC, CSM, PMI-ACP, PMP

EVERYTHING YOU VE HEARD ABOUT AGILE DEVELOPMENT IS WRONG

Scaling Agile. Theory and Practice. Bob

INTRO TO AGILE PRESENTED BY. Copyright Davisbase LLC

Beyond the Manifesto

Dr J Paul Gibson, Dept. INF, TSP, Evry, France

Software Engineering

A Literature Review on Agile Model Methodology in software Development

Agile Culture Transformations from the Trenches

Agile Software Development

Application of Agile Delivery Methodologies. Bryan Copeland Energy Corridor Brown Bag Event August 31, 2016

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Five Changes that Project Managers Must Make in an Agile World

A philosophy first and methodology second

Scrum er ikke en religion

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

BETTER BUYING POWER THROUGH THE USE OF AGILE ACQUISITION STRATEGIES

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

TANGIBLE STRATEGIES FOR ALIGNING YOUR PROCESSES WITH AGILE

Agile at Scale -Beyond SAFe. John B Hudson, B.Sc., PMP, ACP, CSM, SPC

8 th of April 2015 Bucharest, Romania Vlad Gabriel Sorin Agile PM/Scrum Master

Agile Certified Professional

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

Agile for Hardware Development

Agile Development and Modern Computing Environments

Software Life Cycles and Configuration Management

Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Software Engineering Part 2

AHGILE A N D B O O K

Agile Manifesto Principles

Project Management in Practice Agile Agile 101 Introduction to Agile

Extreme Programming, an agile software development process

Explore Comparative Analysis Software Development Life Cycle Models

Challenges of Applying Conventional Software System Safety to Agile Software Development Programs

AGILE MYTH BUSTERS- THAT S NOT AGILITY!

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Agile for Hardware Development

Agile Software Construction. This Course. Course information. Course Contents. Daisy: Software Engineering Agile Methods

The Stability States of Scrum: 2 Keys to Building High Performing Teams

Public Procurement Beyond Defined Scope: A Primer on the Opportunities and Challenges of Modular/Agile Procurement

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

We are agile but... Gitte Ottosen

CS314 Software Engineering Project Management

Are we measuring the right thing?

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

Transcription:

software development lifecycle (sdlc) models & agile methods

sdlc how did that happen? by analogy with civil engineering, where you design first, then do construction in software, there is no construction it s all design used to be called coding

sdlc (2)

sdlc (3) what is a software development process? what is the lifecycle of a software project? will talk about agile later. first, we ll talk about disciplined or is it traditional? or is it sturdy? or is it planned? or is it

tend to talk about sdlc in terms of a dichotomy agile vs. well um not agile or, planned vs. con8nuous others tend to (incorrectly) think that the deployment method implies the process saas == agile installed == tradi8onal sdlc (4) think more in terms applying the process on an individual feature, or an aggregate

example feature workflow

goal of sdlc what s the goal of a good sdlc? passes all the tests (external quality aaributes) good design/architecture (internal) good user experience (quality in use) process quality (can process help ensure product quality)

waterfall Requirements Design Construc8on Integra8on Debugging Installa8on Maintenance move from one phase to the next only when its preceding phase is completed and perfected. first mentioned by Royce in 1970 as an example of a flawed, nonworking model for software development. US department of defence projects attempted to entrench this model by requiring their contractors to produce the waterfall deliverables and then to formally accept them to a certain schedule (US military standard DoD-2167) there was a unwieldy process for going back and amending previous deliverables

waterfall (2) problems static view of requirements ignores volatility lack of user involvement once specification is written unrealistic separation of specification from design doesn t easily accommodate prototyping, reuse, etc.

more problems waterfall (3) often tracked with Gantt charts! printed and taped up on the wall out of date immediately difficult to move tasks between developers must assign all tasks before star8ng! start wri8ng in changes disaster mess!

Bohem s cost of change Software Engineering Economics Barry Boehm, 1981 data from waterfall- based projects in 1970s at IBM acknowledged architecture- breaker flawed assump8ons small project 1:4, large project 1:100 also known as sowware rot

v- model

rapid prototyping prototyping used for: understanding requirements for the user interface determining feasibility of a proposed design problems: users treat the prototype as the solu8on (or boss thinks it s done!) prototype is only a par8al specifica8on

phased lifecycles

spiral model

inception establish scope build business case stakeholder buy- in elaboration iden8fy & manage risks work out architecture focus on high risk items construction iterate & build opera8onal version develop docs & training material transition fine- tune resolve config, install & usability issues raaonal unified process

raaonal unified process (2) framework created by Rational, acquired by IBM in 2003 four phases: incep8on: business planning, requirements gather elabora8on: mi8gate risks, use cases, dev. plan, architecture, prototypes construc8on: development, unit tests, QA transi8on: user acceptance tes8ng, training

agile methods

agile pure waterfall cowboy coding refers to a group of software development methodologies created as a reaction against the heavily regulated, regimented, micro-managed use of the waterfall model ( pure waterfall ). developed in the mid-1990 s as lightweight methods. most popular ones to survive are: scrum 1995 extreme programming (XP) - 1996 agile term was first used in 2001.

http://agilemanifesto.org/ agile 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 negotiation 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

12 agile principles our highest priority is to satisfy the customer through early and continuous delivery of valuable software. welcome changing requirements, even late in development. agile processes harness change for the customer's competitive advantage. deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. business people and developers must work together daily throughout the project.

12 agile principles (2) build projects around motivated individuals. give them the environment and support they need, and trust them to get the job done. the most efficient and effective method of conveying information to and within a development team is face-to-face conversation. working software is the primary measure of progress. agile processes promote sustainable development. the sponsors, developers, and users should be able to maintain a constant pace indefinitely.

12 agile principles (3) continuous attention to technical excellence and good design enhances agility. simplicity the art of maximizing the amount of work not done is essential. the best architectures, requirements, and designs emerge from self-organizing teams. at regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

extreme Programming (XP) XP = extreme Programming (Beck 1999) frequent releases in short development cycles manage by features ( user story / use cases ) release planning / itera8on planning continuous integration pair programming (continuous code review) unit testing of all code avoiding programming of features until they are actually needed simplicity and clarity in code frequent communication (customers and coders) expecting changes in the customer's requirements as time passes and the problem is better understood coding standard collective code ownership sustainable pace

XP alternate

XP alternate (2)

scrum (Schwaber & Beedle 2001) product owner, team, scrum master sprints 2-4 weeks stories are described and sized in units or points scrum team commits to number of points they can do in next sprint product owner picks stories accordingly product owner tests stories and gives feedback after each sprint

scrum fable in 2011 this fable was removed from the scrum process pigs (commiaed): project owner, scrum master, development team chickens (involved): customers, execu8ve management rooster: struts around offering unrequested, uninformed & unhelpful opinions analogy is breakfast bacon & eggs

personal experience feature-driven development is not in question. almost nobody believes in pure waterfall wriaen reqs/specs/design for en#re release waterfall wriaen requirements/spec/design per feature when necessary waterfall advocated where necessary in agile continuous integration, keeping the code in good shape at all times & automated architectural regression testing? yes! full unit tests? usually impractical pair programming? sometimes, maybe frequent communications? yes! involving stakeholders? yes (if they will a/end!) simple design with constant re-factoring? yes, mostly but too extreme to never design for the future.

personal experience (2) commit only to next sprint? not practical use of points as opposed to a time unit? no everyone outside of development will not trust it coding standards and collective code ownership? yes eliminate final test phase? not practical reduce it with code/test itera8ons within the coding phase use working software as the primary measure of progress? yes, for the most part for big- bang releases, I advocate: feature demos during the development process. independent func8on tes8ng during the coding phase. reflect on release plan when a feature is done by above def n. relentlessly plan and manage to dcut (= feature complete)

personal experience (3) welcome changing requirements? can t avoid but within a planning framework. cannot welcome all changes without considering the impact on the end- dates. sustainable development? yes but unrealis8c without careful planning the best architectures, requirements, and designs emerge from self-organizing teams? not convinced beware: it s easy to proudly claim agile but actually be doing cowboy development!

which process is the best? all processes have their pros and cons, but only in the context of a given project. does con8nuous deployment make sense for the next version of microsow office? what process is best for an x- ray machine? space shuale avionics hal/s developed specifically for shuale completely independently developed primary and backup systems! curiosity rover sowware, installed in flight! and then upgraded on mars! again, depends on the nature of the project

summary do these things, and you are doing well! infrastructure source code control reproducible builds defect/feature tracking automated regression testing control Agile Horizon Planning feature specifications architectural control refinement effort tracking business planning process control