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

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

Certified Scrum Master

Let s Talk About Being Agile

Agile, a software development model or a religion? Pablo Garcia Munos Knowit AB

Scrum er ikke en religion

We are agile but... Gitte Ottosen

Agile Methodologies. Introduction ISSSR 2013/2014

Extreme programming XP 5

Presented by Kiefer Consulting, Inc. 10/31/2016 1

From Adoption to Transition

Build Agile Knowledge - Participate in a sprint!

Agile Software Development Agreements: Navigating the Complex Contracting Issues

Agile BI: Accounting for progress. Tom Breur Data Vault Automation Utrecht, 6 Oktober 2011

Patrick Masson Chief Technology Officer University of Massachusetts Office of the President, UMassOnline

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

KF5008 Program Design & Development. Introduction to the Module

Lightweight Tools for Agile Methods

Agile Business Analysis - Resurgence. Dorothy Tudor - TCC

User-centered System Design. Agile

AGILE AND AGILE TESTING KAIZANIA 9 DECEMBER Lionel Bisschoff / Arrie van der Dussen. Kaizania 2009

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

Chicago PMO Roundtable March 2015

Guideline for Sizing Agile Projects with COSMIC

Agile Methods. Introduction to Agile Methods by Pietari Kettunen

Agility and Scrum: And Responsibility. Jim Coplien Gertrud&Cope

Agile Software Development in a Regulated Environment. Natalie Custer

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

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

Software Development Methodologies

Lecture 29: Agile Design and Extreme Programming

Questioning Extreme Programming

04. Agile Development

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

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

The Agile Performance Holarchy

AGILE METHODS AND DATA WAREHOUSING:

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

Intro: Agile over lunch. April 2007 Joe Little

Intro: Agile over lunch. April 2007 Joe Little

A Literature Review on Agile Model Methodology in software Development

How to make Agile "work" in Business Intelligence projects. Tom Breur VP Data Analytics, Cengage Learning San Diego, 19 April 2016, 11:15-12:00

Russell Pannone February 10, 2009

CS314 Software Engineering Project Management

20 October /21/2011 1

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

TOCICO CONFERENCE 2004

Agile Manifesto & XP

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Agile & Lean / Kanban

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

Extreme Programming, an agile software development process

Step 1. Empty your cup...

INDEX. Numerics 1970s - iterative practice s - iterative practice 85

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Agile Essentials Track: Business Services

Agile Culture Transformations from the Trenches

Intersection of Agile and Change Management: Agenda

Agile Projects 7. Agile Project Management 21

Agile QA s Revolutionary Impact on Project Management

Certified Scrum Developer Program Introduction presented by. Copyright Davisbase LLC

AGILE SOLUTIONS. Agile Basics

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

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

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

CS 5704: Software Engineering

Keywords: Scrum framework, agile software development, change management, iterative development.

Introduction to Extreme Programming

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

Ian Koenig Quality IS Projects, Inc. Philippines Chapter Project Management Institute June 8 th 2010

INTRO TO AGILE PRESENTED BY. Copyright Davisbase LLC

COMP 6481 Fall 2006 System Requirement Specifications

Software Development Life Cycle

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

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

Achieving Resiliency with Agile Methods

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

Agile Thinking. Petri Heiramo. Agile Coach, CST

A philosophy first and methodology second

HELP!!! THE SCRUM MASTER IS THE IMPEDIMENT!

CS 4387/5387 SOFTWARE V&V LECTURE 6 TEST-DRIVEN DEVELOPMENT

Comparing Scrum And CMMI

Function Point Analysis and Agile Methodology


FIT2101 Software Engineering Process and Management

AGILE MYTH BUSTERS- THAT S NOT AGILITY!

Agile Certified Professional

Scaling Agile. Theory and Practice. Bob

Fondamentaux de l agilité

Managing Requirements in an Agile World: Avoiding the Round Peg/Square Hole Dilemma

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

Software Engineering. M Umair.

Back to Basics Restoring Order to Software Development

A SANTEON COMPANY. KEY CONCEPTS OF AGILE Ahmed Sidky, Ph.D. (aka Dr. Agile)

EVERYTHING YOU VE HEARD ABOUT AGILE DEVELOPMENT IS WRONG

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

Scrum Intro What s in it for me?

Moonzoo Kim. KAIST cs350 Intro. to SE Spring

Project Management in Practice Agile Agile 101 Introduction to Agile

Are we Agile Yet? Agile is NOT a Destination

Agile Methods. Course "Softwareprozesse" Lutz Prechelt Freie Universität Berlin, Institut für Informatik

Transcription:

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

History of Agile Methods Particularly in 1990s, some developers reacted against traditional heavyweight software development processes. New methods were being developed and tested, e.g. Extreme Programming, SCRUM, Feature-driven development Generally termed light processes Representatives from several of these methods got together in Utah in 2001 Settled on term Agile as a way to describe these methods Called themselves the Agile Alliance Developed a manifesto and a statement of principles Focuses on common themes in these alternative methodologies

Manifesto for Agile Software Development 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. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice.

12 Principles behind the Agile Manifesto 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale

12 Principles behind the Agile Manifesto 4. Business people and developers must work together daily throughout the project 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation

12 Principles behind the Agile Manifesto 7. Working software is the primary measure of progress 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely 9. Continuous attention to technical excellence and good design enhances agility

12 Principles behind the Agile Manifesto 10. Simplicity--the art of maximizing the amount of work NOT done--is essential 11. The best architectures, requirements, and designs emerge from self-organizing teams 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

Individuals and Interactions over Processes and Tools People make biggest impact on success Process and environment help, but will not create success Strong individuals not enough without good team interaction Individuals may be stronger based on their ability to work on a team (i.e., synergy) Tools can help, but bigger and more sophisticated tools can hinder more than help Simpler tools can be better

Working Software over Comprehensive Documentation Documentation important, but too much is worse than too little Long time to produce, keep in sync with code Keep documents short and salient Focus effort on producing code, not descriptions of it Code should document itself (this does not eliminate the need for commenting!!!) Knowledge of code kept within the team Produce no document unless its need is immediate and significant

Customer Collaboration over Contract Negotiation Not reasonable to specify what s needed and then have no more contact until final product delivered Get regular customer feedback Use contracts to specify customer interaction rather than requirements, schedule, and cost

Responding to Change over Following a Plan Environment, requirements, and estimates of work required will change over course of large project Planning out a whole project doesn t hold up Changes in shape, not just in time Keep planning realistic Know tasks for next couple of weeks Rough idea of requirements to work on next few months Vague sense of what needs to be done over year

Extreme Programming (XP) One of the earliest and most well-known agile methods Developed in 1990s Kent Beck, 1996 Chrysler Comprehensive Compensation Project Published book in 1999

Extreme Programming Practices 1. On-Site Customer Customer is actively involved with development process Customer gives User Stories Short, informal stories describing features Keep on story cards 2. Planning Together Developers and customers together plan project Developers give cost estimates to stories and a budget of how much they can accomplish Can use abstract accounting mechanism Later compare to actual cost, to improve estimates over time Customer prioritizes stories to fit within budget

Extreme Programming Practices 3. Metaphor Come up with metaphor that describes how the whole project will fit together The picture in a jigsaw puzzle Provides framework for discussing project in team Tools and materials often provide good metaphors 4. Small Releases Time between releases drastically reduced A few weeks/months Multiple iterations Can have intermediate iterations between bigger releases

Extreme Programming Practices 5. Testing Test-first programming Unit testing frequently by developers Acceptance tests defined by customers 6. Simple Design Principles discussed in earlier lectures Design should be quick, not elaborate Pick the simplest thing that could possibly work Resist adding stuff not ready yet

Extreme Programming Practices 7. Refactoring Code gets worse with feature adds, bug fixes Rewrite small sections of code regularly Rerun all unit tests to know nothing broken Means you should have designed comprehensive tests 8. Pair Programming Will be discussed later in the course 9. Collective Ownership Anyone can edit anything Errors are the fault of the whole team

Extreme Programming Practices 10. Continuous Integration Commit changes frequently (several times a day) Verify against entire test suite! (Regression Testing) 11. Coding Standards Enables effective teamwork 12. Sustainable Pace No overtime - Only exceptions in final week Good estimation skills for budgeting will help ensure reasonable times Time less likely to be wasted in pairs, bullpen rooms Plan time each day for administrative work (<1 hour), breaks

SCRUM Idea first appeared in a business journal in 1986 (applied to product development management). Used in software development and presented in 1995 paper. Term is based on rugby term Small cross-functional teams

SCRUM Practices Product (and release) backlog A list of the features to be implemented in the project (subdivided to next release), ordered by priority Product backlog list of all features Release backlog list of features in the next release Can adjust over time as needed, based on feedback A product manager is responsible for maintaining

Remaining Features SCRUM Practices Burn-down chart Make best estimate of time to complete what is currently in the backlog Plot the time on a chart By studying chart, understand how team functions Ensure burndown to 0 at completion date 600 By adjusting what s in the backlog By adjusting the completion date 500 400 300 Estimated Remaining Features Actual Remaining Features 200 100 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Days into the Project

SCRUM Practices The sprint The sprint is a ~1 month period after which some product is delivered Features are assigned from the product backlog to a sprint backlog Features divided into smaller tasks for sprint backlog Feature list is fixed for sprint Planning meeting Tasks can be assigned to team members Team members have individual estimates of time taken per item During sprint, work through features, and keep a burn-down chart for the sprint New functionality is produced by the end of the sprint After sprint, a review meeting is held to evaluate the sprint

SCRUM Practices Scrum meeting 15 minute daily meeting All team members show up Quickly mention what they did since last Scrum, any obstacles encountered, and what they will do next Some team member volunteers or is appointed to be the Scrum Master - in charge of Scrum meeting, and responsible for seeing that issues raised get addressed Customers, management encouraged to observe

SCRUM Practices 24 hours Release Backlog Sprint Backlog Begin Sprint Sprint Plan 30 days Scrum Meeting End Sprint Product Backlog Sprint Retrospective New Functionality

Other Agile Methods Crystal Feature-driven development (FDD) Adaptive software development (ASD) Dynamic System Development Method (DSDM)

Drawbacks and Challenges of Agile Methods Undefined goals Feature creep Never-ending project with overruns Need clear, single, invested customer Some customers are not willing to work together All-or-nothing adoption of techniques Some parts work only if lots of other aspects used Team size limited (smaller teams) Out-sourcing is no longer a possibility Requires co-located teams

To Summarize Watch this Video: https://www.youtube.com/watch?v=xu0llrltyfm&t=3s

Resources Used Agile methods: www.agilealliance.org Agile methods (especially XP): Agile Software Development, by Robert C. Martin, Prentice-Hall 2003. SCRUM: www.controlchaos.org XP: extreme Programming in Action Practical Experiences from Real World Projects, by Martin Lippert, Stefan Roock, Henning Wolf, John Wiley and Sons, 2002. http://www.agile-process.org/first.html