agile software development an alternate approach umar k. munroe mscs candidate union college...

38
Agile Software Agile Software Development Development An Alternate Approach An Alternate Approach Umar K. Munroe Umar K. Munroe MSCS Candidate MSCS Candidate Union College Union College 1/9/2004 1/9/2004

Upload: logan-dean

Post on 27-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Agile Software Agile Software DevelopmentDevelopment

An Alternate ApproachAn Alternate Approach

Umar K. MunroeUmar K. MunroeMSCS CandidateMSCS Candidate

Union CollegeUnion College

1/9/20041/9/2004

Page 2: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Topics of DiscussionTopics of Discussion

Why an alternate approachWhy an alternate approach Overview of Agile Software Overview of Agile Software

DevelopmentDevelopment Agile ProcessesAgile Processes Limitations of Existing Agile Limitations of Existing Agile

ProcessesProcesses Adoption & Future in IndustryAdoption & Future in Industry

Page 3: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Why an alternate software Why an alternate software development approach?development approach?

Traditional Approaches Traditional Approaches Slow & Slow & RigidRigid Highly structuredHighly structured Detailed process scriptsDetailed process scripts Required Artifacts (i.e. documents)Required Artifacts (i.e. documents)

Page 4: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Why an alternate software Why an alternate software development approach?development approach?

Internet & mobile technology increase Internet & mobile technology increase demand for software development todemand for software development to to be faster to be faster more responsive to changemore responsive to change

Traditional methods aren’t exactly Traditional methods aren’t exactly working wellworking well 13,522 IT projects (Standish Group, 2002)13,522 IT projects (Standish Group, 2002)

34% on-time, on-budget, sufficient functionality34% on-time, on-budget, sufficient functionality 51% late, over-budget, less functionality51% late, over-budget, less functionality 15% fail15% fail

Page 5: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Agile Software DevelopmentAgile Software Development

Quick developmentQuick development Responsive to changing Responsive to changing

requirementsrequirements Simple, straightforward processSimple, straightforward process Frequent customer involvement and Frequent customer involvement and

feedbackfeedback Guide developmentGuide development

Iterative, incremental developmentIterative, incremental development Provides flexibility, responsivenessProvides flexibility, responsiveness

Page 6: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Agile AllianceAgile Alliance

In 2001, software industry experts In 2001, software industry experts formed the Agile Allianceformed the Agile Alliance

Goals:Goals: Outline values and principles of agile Outline values and principles of agile

software developmentsoftware development Promote agile software development in Promote agile software development in

industry industry http://http://www.agilealliance.orgwww.agilealliance.org

Page 7: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Agile ManifestoAgile Manifesto

Page 8: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Value #1: Individuals and Value #1: Individuals and interactions interactions over process and over process and

toolstools ““A good process will not save the A good process will not save the

project from failure if the team project from failure if the team doesn’t have strong players, but a doesn’t have strong players, but a bad process can make even the bad process can make even the strongest of players ineffective.” strongest of players ineffective.” Robert Robert C. MartinC. Martin

people and their relationships most people and their relationships most important to a successful projectimportant to a successful project

Page 9: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Value #1: Individuals and Value #1: Individuals and interactions interactions over process and over process and

toolstools TeamTeam

motivated motivated good programmers (not necessarily good programmers (not necessarily

most talented)most talented) excellent communication skills excellent communication skills

Tools and environment built around Tools and environment built around team, not vice versateam, not vice versa

Page 10: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Value #2: Working software over Value #2: Working software over comprehensive comprehensive

documentation documentation Documentation produced only when Documentation produced only when

necessarynecessary Short – one or two dozen pages at most Short – one or two dozen pages at most

Less timeLess time Salient – describing the overall design rationale Salient – describing the overall design rationale

and only high level structures in the system and only high level structures in the system Details likely to changeDetails likely to change

Primary goal is working softwarePrimary goal is working software Demonstrated to customer frequentlyDemonstrated to customer frequently Measure of progressMeasure of progress

Page 11: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Value #3: Customer collaboration Value #3: Customer collaboration over over contract negotiation contract negotiation

"A contract that specifies the "A contract that specifies the requirements, schedule, and cost of a requirements, schedule, and cost of a project is fundamentally flawed." project is fundamentally flawed." Robert C. Robert C.

MartinMartin

Contracts govern the working Contracts govern the working relationship between developers and relationship between developers and customercustomer

Customer is intimately involved Customer is intimately involved Guide developmentGuide development

Page 12: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Value #4: Responding to change Value #4: Responding to change over over following the plan following the plan

Change is expectedChange is expected

Planning Strategy (iterative)Planning Strategy (iterative) a detailed plan over the next 2 weeksa detailed plan over the next 2 weeks a very rough plan for the next 3 monthsa very rough plan for the next 3 months an extremely crude plan beyond 3 an extremely crude plan beyond 3

months months

Minimize time wasted planning too far Minimize time wasted planning too far into the futureinto the future

Page 13: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Agile ProcessesAgile Processes

Typically,Typically, Less structuredLess structured Practices and rulesPractices and rules

Selected Agile ProcessesSelected Agile Processes eXtreme Programming (XP)eXtreme Programming (XP) ScrumScrum Dynamic Systems Development Method Dynamic Systems Development Method

(DSDM)(DSDM)

Page 14: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

eXtreme Programming (XP)eXtreme Programming (XP)

Most famous and documented agile Most famous and documented agile processprocess

Rules & practicesRules & practices Developed by Kent Beck mid 1990’sDeveloped by Kent Beck mid 1990’s More info:More info:

http://http://www.extremeprogramming.orgwww.extremeprogramming.org

Page 15: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

XP: Concepts/PracticesXP: Concepts/Practices

Customer Team MemberCustomer Team Member Highly accessible (on-site)Highly accessible (on-site)

User Stories over detailed User Stories over detailed requirementsrequirements Describe functionalityDescribe functionality Reduces unnecessary upfront restrictionsReduces unnecessary upfront restrictions

Simple DesignSimple Design Quick, easy, sufficientQuick, easy, sufficient

Page 16: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

XP: Concepts/PracticesXP: Concepts/Practices Test Driven DevelopmentTest Driven Development

Tests written first, code written to make Tests written first, code written to make tests passtests pass

AutomatedAutomated

Acceptance TestsAcceptance Tests Verify user storiesVerify user stories Written before implementationWritten before implementation

Short CyclesShort Cycles 2-3 month releases2-3 month releases 2 week Iterations2 week Iterations

Page 17: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

XP: Concepts/PracticesXP: Concepts/Practices

Pair Programming (2 people, 1 Pair Programming (2 people, 1 computer)computer) Generate production codeGenerate production code Transfer KnowledgeTransfer Knowledge Better Quality Better Quality Faster development Faster development

Collective OwnershipCollective Ownership Team knowledgeable in all aspects of Team knowledgeable in all aspects of

projectproject

Open WorkspaceOpen Workspace Easy access for conversationEasy access for conversation Limits team sizeLimits team size (<10 people)(<10 people)

Page 18: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

XP: Concepts/PracticesXP: Concepts/Practices

Continuous IntegrationContinuous Integration

RefactoringRefactoring tiny transformations to improve the tiny transformations to improve the

structure of the code without changing its structure of the code without changing its behaviorbehavior

continuous continuous

MetaphorMetaphor Provides “big picture” of the systemProvides “big picture” of the system

Page 19: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

XP: Concepts/PracticesXP: Concepts/Practices

Sustainable PaceSustainable Pace 40 hr week40 hr week

Planning GamePlanning Game Plan made at the start of each iteration Plan made at the start of each iteration

and releaseand release Customer decides which user stories to Customer decides which user stories to

implement nextimplement next

Page 21: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

ScrumScrum Management approach using existing Management approach using existing

processes and practices processes and practices

empirical approach based in control empirical approach based in control systems theory systems theory

Developed (mid 90’s) & maintained by Developed (mid 90’s) & maintained by Advanced Development Methods (ADM, Advanced Development Methods (ADM, Inc) Inc) http://www.controlchaos.comhttp://www.controlchaos.com

Training and certification availableTraining and certification available

Page 22: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Scrum: Key Concepts/PracticesScrum: Key Concepts/Practices

Product BacklogProduct Backlog Defines everything needed in the final productDefines everything needed in the final product Goals, ResourcesGoals, Resources Constantly updated Constantly updated

Sprint (Cycles)Sprint (Cycles) ~30 days~30 days Production of an executable product incrementProduction of an executable product increment Requirements relatively frozen during SprintRequirements relatively frozen during Sprint

Page 23: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Scrum: Key Concepts/PracticesScrum: Key Concepts/Practices

Sprint Planning MeetingSprint Planning Meeting Goals and functionality of sprintGoals and functionality of sprint Decide an implementation approachDecide an implementation approach

Sprint BacklogSprint Backlog Items specific to the Sprint from the Items specific to the Sprint from the

Product BacklogProduct Backlog

Small teams (5 to 9 people)Small teams (5 to 9 people)

Page 24: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Scrum: Key Concepts/PracticesScrum: Key Concepts/Practices

Daily Scrum MeetingDaily Scrum Meeting ~15 minutes~15 minutes 3 questions addressed by each team 3 questions addressed by each team

membermember What did you do since the last meeting?What did you do since the last meeting? Any obstacles or issues?Any obstacles or issues? What will you do before the next meeting?What will you do before the next meeting?

Sprint Review MeetingSprint Review Meeting Demonstrate implemented functionalityDemonstrate implemented functionality Make decisions as to the next sprintMake decisions as to the next sprint

Page 25: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Scrum: Sprint LifecycleScrum: Sprint Lifecycle

Page 26: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Dynamic Systems Development Dynamic Systems Development Method (DSDM)Method (DSDM)

framework developed in the early 1990's framework developed in the early 1990's for rapid application development (RAD)for rapid application development (RAD)

Driving Principle:Driving Principle: Time and Resources are fixedTime and Resources are fixed Functionality is flexibleFunctionality is flexible

Very popular in EuropeVery popular in Europe Maintained by the DSDM ConsortiumMaintained by the DSDM Consortium

http://http://www.dsdm.orgwww.dsdm.org

Page 27: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

DSDM: Key Concepts/PracticesDSDM: Key Concepts/Practices

MoSCoW PrioritizationMoSCoW Prioritization MMust Haves ust Haves critical to success critical to success oo SShould Haves hould Haves important but not important but not

criticalcritical CCould Haves ould Haves nice to have nice to have oo WWon't Have on't Have will not be implemented will not be implemented

Page 28: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

DSDM: Key Concepts/PracticesDSDM: Key Concepts/Practices

TimeBoxingTimeBoxing Project end date is fixedProject end date is fixed Schedule broken into fixed 2-6 week Schedule broken into fixed 2-6 week

blocks of time (time box)blocks of time (time box) Assigned requirements of varying Assigned requirements of varying

prioritiespriorities Complete highest priority within the Complete highest priority within the

time boxtime box

Page 29: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

DSDM: Key Concepts/PracticesDSDM: Key Concepts/Practices

PrototypingPrototyping Demonstrate business processDemonstrate business process Evaluate user interactionEvaluate user interaction Determine Performance/CapabilityDetermine Performance/Capability Demonstrate proof of conceptDemonstrate proof of concept

Page 30: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

DSDM: LifecycleDSDM: Lifecycle

Feasibility StudyFeasibility Study Is DSDM appropriate?Is DSDM appropriate? Outline PlanOutline Plan

Business StudyBusiness Study Analyze requirementsAnalyze requirements Recommended technical approachRecommended technical approach Plan potential prototypesPlan potential prototypes

Page 31: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

DSDM: LifecycleDSDM: Lifecycle

Functional Model IterationFunctional Model Iteration Build on requirementsBuild on requirements Prototype functionalityPrototype functionality

Design and Build IterationDesign and Build Iteration Prototype designPrototype design Refine prototypes into production Refine prototypes into production

ImplementationImplementation Transition from development to operationTransition from development to operation Provide TrainingProvide Training

Page 32: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

DSDM: LifecycleDSDM: Lifecycle

Page 33: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Other Agile ProcessesOther Agile Processes

Feature Driven Development (FDD)Feature Driven Development (FDD) Framework with featuresFramework with features

Crystal MethodologiesCrystal Methodologies Processes based on size and criticalityProcesses based on size and criticality

Adaptive Systems Development Adaptive Systems Development (ASD)(ASD) Large, complex systemsLarge, complex systems

Page 34: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Limitations of Existing Agile Limitations of Existing Agile ProcessesProcesses

Limited support for large & distributed Limited support for large & distributed development teamsdevelopment teams Communication breakdownsCommunication breakdowns

Limited support for code reusabilityLimited support for code reusability Project specificProject specific

Limited support for large, complex softwareLimited support for large, complex software May require significant up front design and May require significant up front design and

planningplanning Incremental delivery may not be valuableIncremental delivery may not be valuable UnprovenUnproven

Page 35: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Agile AdoptionAgile Adoption

Adoption is slow but appears Adoption is slow but appears increasingincreasing

In March 2002, the Giga Group In March 2002, the Giga Group estimatedestimated ~10% of corporate IT groups are using ~10% of corporate IT groups are using

agile processesagile processes 2/3 are exploring use for future projects2/3 are exploring use for future projects

Page 36: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Future of Agile Software Future of Agile Software DevelopmentDevelopment

Processes still evolvingProcesses still evolvingi.e.) XP with Scrum i.e.) XP with Scrum

Won’t eliminate traditional Won’t eliminate traditional approachesapproaches Traditional approaches still valuableTraditional approaches still valuable

Here to stay? The new standard?Here to stay? The new standard? Only time will tell…Only time will tell…

Page 37: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Summary: Agile Software Summary: Agile Software DevelopmentDevelopment

Quick and Responsive developmentQuick and Responsive development Iterative, incrementalIterative, incremental Ample Customer Involvement Ample Customer Involvement

Different Processes availableDifferent Processes available

Alternative to Traditional MethodsAlternative to Traditional Methods

Page 38: Agile Software Development An Alternate Approach Umar K. Munroe MSCS Candidate Union College 1/9/2004

Questions / Comments ?Questions / Comments ?