Introduction to Agile Software Development



Similar documents
Introduction to Agile Software Development. EECS 690 Agile Software Development

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

Agile Development Overview

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

How To Understand The Limitations Of An Agile Software Development

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

Agile Project Management By Mark C. Layton

Software Processes. Agile Methods

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

COMP 354 Introduction to Software Engineering

Agile Projects 7. Agile Project Management 21

Manifesto for Agile Software Development

Agile Software Development

Agile Software Development in the Large

SCEA 2010 EST06. Estimating Issues Associated with Agile. Bob Hunt. Galorath Incorporated

History of Agile Methods

Agile Software Development

Agile Project Management with Scrum

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

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

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

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

Introduction to Agile and Scrum

Software Development with Agile Methods

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

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Agile QA s Revolutionary Impact on Project Management

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015. Dr. Patrick McConnell

Agile Beyond The Team 1

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

A Review of Agile Software Development Methodologies

Development. Lecture 3

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

Agile Development with C#

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Agile Project Management

Software Requirements and Specification

LEAN AGILE POCKET GUIDE

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

Agile on huge banking mainframe legacy systems. Is it possible?

Software processes that are:

werteorientierte Unternehmenskultur

CSE 435 Software Engineering. Sept 16, 2015

Comparing Plan-Driven and Agile Project Approaches

How to manage agile development? Rose Pruyne Jack Reed

Plan-Driven Methodologies

Agile Software Engineering Practice to Improve Project Success

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

Agile Inspired Risk Mitigation Techniques for Software Development Projects

Software Process and Models

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

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Moonzoo Kim CS Division of EECS Dept. KAIST

Advanced Software Engineering. Software Development Processes

Agile, TSP SM, CMMI pick one, pick two, pick all three!

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

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

Agile Software Development. Mohsen Afsharchi

Comparing Agile Software Processes Based on the Software Development Project Requirements

CSSE 372 Software Project Management: Managing Agile Projects

Agile Processes and Distributed Projects: Dream or Nightmare?

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

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

Agile Software Development: Novel Approaches For Software Engineering

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

AGILE BUSINESS INTELLIGENCE

Role of Agile Methodology in Software Development

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

ITSM Agile Intro Feb 5, 2015

Software Development Life Cycle (SDLC)

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

Agile Scrum Training. Nice to meet you. Erik Philippus. Erik Philippus (1951)

Gothenburg 2015 Jan Marek com CA Technologies Introducing Agile development methodologies to Session S601 mainframe development teams

Introduction to Agile Software Development Process. Software Development Life Cycles

Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc.

Agile and Secure: Can We Be Both?

Neglecting Agile Principles and Practices: A Case Study

Comparison between Agile and Traditional software development methodologies

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

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

"Bezpieczny Projekt"

Agile Project Management

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

How To Plan A Project

Agile Project Management: Adapting project behaviors to the software development environment

Introduction to extreme Programming (XP)

Creating a High Maturity Agile Implementation

Akhil Kumar 1, Bindu Goel 2

Hamid Faridani March 2011

Software Development Methodologies

Transcription:

Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP) Plan-driven software development Agile software development 2 1

Process Methodology Myths Agile Methods cowboys and hackers undisciplined low quality Plan Driven Methods process worship document laden excessive discipline It s not that black and white. The process spectrum spans a range of gray. 3 Important Concepts Plan-Driven Process Improvement Process Capability Organizational Maturity Process Group Risk Management Verification (building the product right) Validation (building the right product) System Architecture Agile Embrace Change Frequent Delivery Simple Design Refactoring Pair Programming Retrospective Tacit Knowledge Test-Driven Development (TDD) 4 2

Plan-Driven Approach Characteristics Systematic engineering approach Completeness of documentation Thorough verification - traceability Traditionally waterfall, but more incremental and evolutionary processes are the norm. Examples Cleanroom (mathematically driven) PSP/TSP (Humphrey, SEI) SW-CMM (process improvement framework) 5 Agile Approach Characteristics Short, iterative cycles Incremental delivery Evolutionary work artifacts (test,design,code) Active customer involvement Dynamic application domains (requirements) Examples extreme Programming (XP) (Beck) Crystal family (Cockburn) Scrum (Schwaber) Feature-Driven Development (Coad) 6 3

The Process Methodology Spectrum More Agile Less Agile Scrum Crystal Lean XP Feature Driven Design DSDM Plan Driven Methodologies Hackers Agile Methodologies RUP PSP Inch- Pebble TSP SW- CMM Cleanroom from Balancing Agility & Discipline (Boehm & Turner) 7 What Is Agile Software Development? In the late 1990's several methodologies began to get increasing public attention. All emphasized: close collaboration between the programmer team and business experts face-to-face communication (as more efficient than written documentation) frequent delivery of new deployable business value tight, self-organizing teams ways to craft the code and the team such that the inevitable requirements churn was not a crisis. 2001 : Workshop in Snowbird, Utah, Practitioners of these methodologies met to figure out just what it was they had in common. They picked the word "agile" for an umbrella term and crafted the Manifesto for Agile Software Development, 8 4

Manifesto for Agile Software Development Statement of shared development values: Individuals and Interactions over process 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. 9 What traditional developers heard Statement of shared development values: Individuals and Interactions = NO process Working software = NO documentation Customer collaboration = NO contracts Responding to change = NOT following a plan 10 5

Principles behind the Agile Manifesto We follow these 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. 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. 11 Principles behind the Agile Manifesto We follow these principles (continued): 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. 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. 12 6

Traditional Approach Project follows a waterfall process (plan driven) Teams produce artifacts at each phase of the life-cycle in a sequential manner. Significant upfront design effort Implementation delayed until later stages of the project Testing deferred until coding complete Teams make final presentation to the customer Teams participate in postmortem session 13 Traditional Project Approach Planning Requirements Analysis/Design Project Plan Design Document Estimates Use Case Diagrams Schedule Interaction Diagrams Risk Mgmt Class Diagrams Require Doc GUI Prototypes Implementation Code! Inspections Test Plan Code! Test Results Post Mortem Test Demo Start End 14 7

Traditional Challenges Lightweight application/heavyweight process Document intensive (perceived) Less flexible design Big bang approach to coding/integration Testing short-shifted One-shot presentation opportunity Lack of opportunity for process improvement Prone to Analysis-Paralaysis Ready, Aim, Aim, Aim, 15 Four Project Variables Time duration of the project Quality the requirements for correctness Resources personnel, equipment, etc. Scope what is to be done; the features to be implemented Pick three, any three... 16 8

Planning The plan is nothing; the planning is everything Dwight Eisenhower Allied supreme commander during World War II 34 th President of United States (1953-61) 17 Where are the risks? Getting Readu for Agile Methods With Care, Barry Boehm IEEE Computer, 2002 18 9

Agile RE Profile Getting Readu for Agile Methods With Care, Barry Boehm IEEE Computer, 2002 19 Plan-Driven RE Profile Getting Readu for Agile Methods With Care, Barry Boehm IEEE Computer, 2002 20 10

Agile Characteristics Incremental development several releases Planning based on user stories Each iteration touches all life-cycle activities Testing unit testing for deliverables Testing acceptance tests for each release Flexible Design evolution vs. big upfront effort Reflection after each release cycle Several technical and customer focused presentation opportunities 21 Key Agile Contributions Team Skills Collaborative Development Reflections (process improvement) User Stories Requirements elicitation Planning scope & composition Evolutionary Design Opportunity to make mistakes Continuous Integration Code (small booms vs big bang) Testing Dispels notion of testing as an end of cycle activity Communication Interacting with customer / team members 22 11

Agile Software Development Agile Themes: Lightweight disciplined processes Feature / Customer Focused Small teams Short delivery cycles Popular Agile Methodologies: XP (extreme Programming) Crystal Family Adaptive Software Process Scrum 23 Characteristics of Agile Methodologies Deliver working software frequently Incremental development cycles release plan based on user stories. Evolutionary approach to design design what you need for this release cycle Test Test Test (Unit & Acceptance) Customer participation Lightweight documentation Reflect at regular intervals tune and adjust 24 12

Agile Benefits User stories drive planning and requirements in a manageable work units Customer perspective Risk management Frequent delivery of working software Process reflection opportunities Implementation refactoring Positive feedback to team Testing Focus Test early and often Change in attitude towards testing 25 Transitioning to Agile Agile is not a Silver Bullet that will cure all your development woes. It will however brightly illuminate your opportunities. Where are the opportunities for improvement in our current process? How does Agile address those issues? Trust, Transparency, Patience Individual Opportunity - Generalizing Specialists The adoption of Agile is neither completely top-down or bottom-up. It must be a balance of both with a strong level of trust and commitment between all levels of the organization 26 13

Common Issues Typical issues/obstacles that arise include: Lack of business ownership and the inability to make decisions Limited business buy-in into the concept of Agile Team communication, individual skills, and team fit Lack of trust in the team by the business Focus only on Agile development practices Agile permeates all levels of the organization 27 28 14

Methodology Distribution 29 Agile Software Development Portal: agile.csc.ncsu.edu/ Resources Agile Alliance www.agilealliance.com www.extremeprogramming.org/ Laurie Williams North Carolina State: collaboration.csc.ncsu.edu/laurie/index.html 30 15