25
1 Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu ([email protected]) Universidade Nova de Lisboa (http://www.unl.pt) QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR) © Fernando Brito e Abreu 2 18-06-2007 Abstract Anorexia versus Bulimia Overview of heavy-weight methodologies Origins of light-weight methodologies  The “Agile Manifesto” ¡ Agility example: XP ¡ The dark side of the light ¢ Planned (RUP) vs Agile (XP) £ When to be agile?

Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

1

Heavy vs Light Methodologies:

Bulimic or Anorexic?

Fernando Brito e Abreu ([email protected])Universidade Nova de Lisboa (http://www.unl.pt)QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR)

© Fernando Brito e Abreu 218-06-2007

AbstractAnorexia versus BulimiaOverview of heavy-weight methodologiesOrigins of light-weight methodologiesThe “Agile Manifesto”Agility example: XPThe dark side of the light Planned (RUP) vs Agile (XP)When to be agile?

Page 2: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

2

© Fernando Brito e Abreu 318-06-2007

Anorexia versus Bulimia

Anorexic (thin) project / Light-weight / AgileProject run unconstrainedTotal freedom for artists ☺Unpredictable deliverables

Bulimic (fat) project / Heavy-weight / PlannedHighly constrained project

e.g. following DoD Mil. Std 2167AHigh organizing overheads Very well defined deliverables ☺

© Fernando Brito e Abreu 418-06-2007

Examples …

Thin? Anorexic?Fat? Bulimic?

Extreme Programming (XP), Scrum, Feature-Driven Development (FDD), Adaptive Software Process, Crystal Light Methodologies, Dynamic Systems Development Method (DSDM), Lean Development

CMM, ISO9000-3, ISO12207, PSP, TSP, ISO15504 (SPICE), RUP, CMMi, …

Light-weight methodologiesHeavy-weight methodologies

Agile software developmentPlan-driven methodologies

Page 3: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

3

© Fernando Brito e Abreu 518-06-2007

Overview of heavy-weight methodologies

Processes and toolsComprehensive documentationContract negotiationFollowing a plan

“On projects with more than 250 people, methodology will have almost no impact on success or failure – politics will dominate.”

Jim Highsmith

© Fernando Brito e Abreu 618-06-2007

CMM - Capability Maturity Model

Quality management Process measurement and analysis

Initial (1)

Repeatable (2)Software configuration management

Software quality assurance Software subcontract management

Software project tracking and oversight Software project planning

Requirements management

Defined (3) Peer reviews

Intergroup coordination Software product engineering

Integrated software management Training program

Organization process definition Organization process focus

Managed (4)

Process change management Technology change management

Defect prevention

Optimizing (5)

Software quality management Quantitative process management

See details on thismodel on anotherslides collection!

Page 4: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

4

© Fernando Brito e Abreu 718-06-2007

CMMI - CMM Integrated

to Perform

Maturity Levels

Generic Practices

Generic Goals

Process Area 2

Common Features

Process Area 1 Process Area n

AbilityImplementation

Verifyingto Perform

Commitment DirectingImplementation

Specific Goals

Implementation

Specific Practices

to Perform

Maturity Levels

Generic Practices

Generic Goals

Process Area 2

Common Features

Process Area 1 Process Area n

AbilityImplementation

Verifyingto Perform

Commitment DirectingImplementation

Specific Goals

Implementation

Specific Practices

See details on this model onanother slides collection!

© Fernando Brito e Abreu 818-06-2007

ISO/IEC 15504

Measurement Framework•Capability Levels•Process Attributes•Rating Scale

Process Entities (process areas) +Indicators per Process Entity

ISO15504-5Process

AssessmentModel

ENG.1 CUS.2 ORG.3 .. n

Capability Dimension

Process Dimension

Capability S

cale

543210

See details on thismodel on anotherslides collection!

Page 5: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

5

© Fernando Brito e Abreu 918-06-2007

Rational Unified Process (RUP)Some history …

Rational Approach Objectory Process 3.81995

IBM - Rational Unified Process v2003

2003

Rational Objectory Process 4.01996 OMT approach UML 0.5

OOSE

Rational Unified Process 5.01998

Performance TestingBusiness EngineeringData Engineering

Objectory UI DesignChange & Configuration Management

UML 1.2

Rational Objectory Process 4.11997 Requirements

CollegeSQA ProcessUML 1.0

© Fernando Brito e Abreu 1018-06-2007

Analysis Model

Specified by

Deployment Model

Distributed by

Design Model

Realized by

Implementation Model

Implemented by

XOK

XOK

XOK

Test Model

Verified by

Use-Case Model

Rational Unified Process (RUP)Model-based development

Page 6: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

6

© Fernando Brito e Abreu 1118-06-2007

(What)

(Who) (How)

Rational Unified Process (RUP)Who, What, How, When

(When)Workflow

© Fernando Brito e Abreu 1218-06-2007

Origins of light-weight methodologies

Project Start

Final Result

Planned Result

Page 7: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

7

© Fernando Brito e Abreu 1318-06-2007

Origins of light-weight methodologiesAgility

The ability to both create and respond to change in order to profit in a turbulent business environment

Companies need to determine the amount of agility they need to be competitive

Chaordic (ex: agile view)Exhibiting properties of both chaos and order

The blend of chaos and order inherent in the external environment and in people themselves, argues against the prevailing wisdom about predictability and planningThings get done because people adapt, not because they slavishly follow processes

An agile view is a chaordic view

© Fernando Brito e Abreu 1418-06-2007

The Agile Manifesto subscribersAlistair CockburnAndrew HuntArie van BennekumBrian MarickDave Thomas James GrenningJeff SutherlandJim Highsmith

Jon Kern Ken SchwaberKent Beck Martin FowlerMike BeedleRobert C. Martin Ron JeffriesSteve MellorWard Cunningham

Page 8: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

8

© Fernando Brito e Abreu 1518-06-2007

The 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 toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value on the items on the right,we value the items on the left more.”

[Feb 2001]

© Fernando Brito e Abreu 1618-06-2007

Individuals and interactionsover processes and tools

Promote teambuilding and mutual trust

Build projects around motivated individuals

Give team members the environment and support they need, and trust them to get the job done

Adopt a barely sufficient methodology“the conventions we agree to”Processes are described in manuals; practices are what happen in reality

Page 9: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

9

© Fernando Brito e Abreu 1718-06-2007

Working softwareover comprehensive documentation

Our highest priority is to satisfy the customer through early and frequent delivery of valuable software

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter time scale

Working software/product is the primary measure of progress

© Fernando Brito e Abreu 1818-06-2007

Customer collaborationover contract negotiation

Set an open tone with the customer(s) organization(s)

Adopt collaborative values and principles

Business people and developers work together daily throughout the project

Page 10: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

10

© Fernando Brito e Abreu 1918-06-2007

Responding to changeover following a plan

Being agile means accepting that outcomes are not predictable and that processes are not repeatable

Welcome changing requirements, even late in development

Agile processes harness change for the customer’s competitive advantage

Agility is about adaptability rather than predictability

Case Study:Extreme Programming (XP)

Page 11: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

11

© Fernando Brito e Abreu 2118-06-2007

XP principles and planningBasic principles

Very short cyclesIntense feedbackNetworked communication

Planning practicesUser storiesRelease planningIteration planningOn site customer

© Fernando Brito e Abreu 2218-06-2007

XP – Schedule …

Page 12: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

12

© Fernando Brito e Abreu 2318-06-2007

XP product build philosophyPrinciples

Build the complete product, all the timeOne button builds everything, including

Product executablesInstallation materialsTest harness and test componentsGenerated documentation

BenefitsEasy to manageEasy to add new team membersIntegrates well with testing environment

© Fernando Brito e Abreu 2418-06-2007

Agility example: XP

Page 13: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

13

© Fernando Brito e Abreu 2518-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

© Fernando Brito e Abreu 2618-06-2007

Pair programmingMethod:

Two programmers sit at one workstationEach programmer take turns “driving”Short lived pairs to avoid “vices”

Benefits:Avoids loosing focus and drifting awayTransmits knowledge to the teamTrains newbies

Page 14: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

14

© Fernando Brito e Abreu 2718-06-2007

Pair programming research findingsPairs use no more man-hours than singlesPairs create fewer defectsPairs create fewer lines of codePairs enjoy their work more

Source: Laurie Williamshttp://collaboration.csc.ncsu.edu/laurie/

© Fernando Brito e Abreu 2818-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

Page 15: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

15

© Fernando Brito e Abreu 2918-06-2007

Test-first designaka Test-Driven Development (TDD)Principles

All code must have tests, with the test created firstUnit tests are executed during the automated buildWhen a bug is found, new tests are created All unit tests must pass before code can be released

BenefitsProvides constant visibility into areas of the system at riskThe result is rapid progress and a system that always works better than it did the previous versionWe end up with a rich suite of regression tests!

© Fernando Brito e Abreu 3018-06-2007

Test first designProgress in tiny (5 min) cycles

Write a test caseWrite the code that passes itRepeat until program does what you want

Use a unit testing frameworke.g. Junit (www.junit.org) uses a green bar sign to mean that the code has passed all tests

Page 16: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

16

© Fernando Brito e Abreu 3118-06-2007

Example1st step: Write the testspublic void testCreateFuelingStationVisit() {Date date = new Date();double fuel = 2.0; // 2 gallons.double cost = 1.87*2; // Price = $1.87 per gallonint mileage = 1000; // odometer reading.double delta = 0.0001; //fp tolerance

FuelingStationVisit v = new FuelingStationVisit(date, fuel, cost, mileage);

assertEquals(date, v.getDate());assertEquals(1.87*2, v.getCost(), delta);assertEquals(2, v.getFuel(), delta);assertEquals(1000, v.getMileage());assertEquals(1.87, v.getPrice(), delta);

}

© Fernando Brito e Abreu 3218-06-2007

public class FuelingStationVisit { public FuelingStationVisit(Date date, double fuel,

double cost, int mileage){itsDate = date;itsFuel = fuel;itsCost = cost;itsMileage = mileage;

}

public Date getDate() {return itsDate;}public double getFuel() {return itsFuel;}public double getCost() {return itsCost;}public double getPrice() {return itsCost/itsFuel;}public int getMileage() {return itsMileage;}

}

3rd step: Run the tests!

Example2nd step: Write the code

Page 17: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

17

© Fernando Brito e Abreu 3318-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

© Fernando Brito e Abreu 3418-06-2007

RefactoringAfter getting something to work we refactor

Refactoring mustprogress incrementally in tiny stepsimprove internal code structure, namely by reducing its complexitynot alter the external behavior of the software components (this is guaranteed by running all the tests

Refactoring techniquesredistribute classes, variables and methods in order to facilitate future adaptations and extensionsremove all duplicationsmake the code as expressive as possible (e.g. forcing naming conventions)make the code as simple as possible

Page 18: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

18

© Fernando Brito e Abreu 3518-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

© Fernando Brito e Abreu 3618-06-2007

Continuous integrationDaily builds are for wimps

Build, end to end, at every check inCheck in frequently

Build and test time must be very fastPut resources on speeding build timePut resources on speeding test time

Wimp: A person who lacks confidence, is irresolute

Page 19: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

19

© Fernando Brito e Abreu 3718-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

© Fernando Brito e Abreu 3818-06-2007

Collective ownershipAnyone can improve any part of the code at any time

No one acts as the gatekeeper for any part of the codeThis includes schemas…and libraries…and everything else that’s different

Page 20: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

20

© Fernando Brito e Abreu 3918-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

© Fernando Brito e Abreu 4018-06-2007

Coding standardGroup of conventions that everyone agrees toEmerges over timeContinuously evolvesThe team rules

Page 21: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

21

© Fernando Brito e Abreu 4118-06-2007

XP programming practicesPair programmingTest-first designRefactoringContinuous integrationCollective ownershipCoding standard40 hour week

© Fernando Brito e Abreu 4218-06-2007

40 hour weekYou can’t do your best when you are tiredWhen you don’t do your best, you make messesMesses slow everyone downSo you must be restedOccasionally, you may work one week of moderate overtime

Page 22: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

22

© Fernando Brito e Abreu 4318-06-2007

© Fernando Brito e Abreu 4418-06-2007

The dark side of the light ...“XP Considered Harmful ... for Reliable SW Development”

[Gerold Keefer, 2002]

The embrace change value ...The practice of refactoring ...The simplicity value ...The practice of pair programming ...

...

Page 23: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

23

© Fernando Brito e Abreu 4518-06-2007

Planned (RUP) vs Agile (XP)

Business Modeling

Req. Management

Analysis & Design

Implementation

Test

Deployment

CCM

Project Management

Environment

Coding

Testing

Listening

Designing

RUP XP

© Fernando Brito e Abreu 4618-06-2007

Configuration Mgmt

Management

Environment

Business Modeling

Requirements

Analysis and Design

Implementation

Test

Deployment

Preliminary Iteration(s)

Iter.#1

PhasesProcess Disciplines

Iterations

Supporting Disciplines

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Elaboration TransitionInception Construction

XP-Window

Planned (RUP) vs Agile (XP)

Page 24: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

24

© Fernando Brito e Abreu 4718-06-2007

When to be agile?Problems characterized by change, speed, and turbulence are best solved by agility.

Accelerated time schedule combined with significant risk and uncertainty that generate constant change during the project

Is your project more like drilling for oil or like managing a production line?

Oil exploration projects need agile processesProduction-line projects are often well-served by rigorous methodologies

© Fernando Brito e Abreu 4818-06-2007

When to be agile?Important questions

How close are the views and values expressed in the Agile Manifesto to:

your customer’s views and values?your project’s views and values?your organization’s views and values?your personal views and values?

If the answer if not positive for all of this questions, then there is a high failure probability for agility

Page 25: Heavy vs Light Methodologies: Bulimic or Anorexic? · 2007. 6. 26. · Analysis Model Specified by Deployment Model Distributed by Design Model Realized by Implementation Model Implemented

25

© Fernando Brito e Abreu 4918-06-2007

References[Acton2002] Agile Software Development, Dottie Acton, Lockheed Martin Mission Systems[Ambler????] Agile Modeling: Effective Practices for Extreme Programming and the Unified

Process, Scott Ambler[Beck2000] Extreme Programming Explained: Embrace Change, Kent Beck, Addison

Wesley[Charette????] Foundations of Lean Development: The Lean Development Manager’s Guide,

Vol 2, Robert Charette[Cockburn2002]Agile Software Development, Alistair Cockburn, Pearson Education, Inc,

Boston, MA[Fowler2000] Refactoring: Improving the Design of Existing Code, Martin Fowler et al.,

Addison-Wesley[Highsmith2000] Adaptive Software Development: a Collaborative Approach to Managing

Complex Systems, Jim Highsmith, Dorset House Publishing, New York[Highsmith2002] Agile Software Development Ecosystems, Jim Highsmith[Jeffries????] Extreme Programming Installed, Ron Jeffries & Ann Anderson, Addison-

Wesley[Kruchten2000] The Rational Unified Process: an Introduction, 2nd Edition, Philippe Kruchten,

Addison-Wesley[McCabe2003] Agile Development, Rich McCabe[Palmer????] A Practical Guide to Feature-Driven Development, Stephen Palmer & John

Felsing[Rising2000] The Scrum Software Development Process for Small Teams, Rising, L. & N.

S. Janoff, IEEE Software[Schwaber2002] Agile Software Development with Scrum, Ken Schwaber & Mike Beedle,

Prentice-Hall