f8 tutorial maurer melnik v3 - university of calgary in...

63
1 28th International Conference on Software Engineering Agile Methods: Moving Towards the Mainstream of Software Industry Frank Maurer, University of Calgary, Canada Grigori Melnik, University of Calgary, Canada Tutorial F8 Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 2 What we will do today Overview of agile methods Knowledge sharing in agile teams Exercise Agile project management Agile approach to quality Empirical evidence on agile approaches Adoption of agile methods Questions are always welcome!!!

Upload: others

Post on 09-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

1

28th International Conference on Software Engineering

Agile Methods: Moving Towards the Mainstream of Software Industry

Frank Maurer, University of Calgary, CanadaGrigori Melnik, University of Calgary, Canada

Tutorial F8

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 2

What we will do today

Overview of agile methods

Knowledge sharing in agile teamsExercise

Agile project management

Agile approach to quality

Empirical evidence on agile approaches

Adoption of agile methods

Questions are always welcome!!!

Page 2: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

2

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 3

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 4

Overview

Why agile methods?

Principles of agile methods

A 10,000 meter view on agile methods

Page 3: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

3

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 5

Software Processes

What do you need to do for successfully developing software systems?

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 6

Waterfall Model (Linear, Sequential)

http://en.wikipedia.org/wiki/Waterfall_model

Page 4: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

4

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 7

Taylorism

Frederick Taylor

"The Principles of Scientific Management" (1911)Hierarchical leadership Fixed, not fluid Split locations for manufacturing and office work Work became specialized with divisional labor Product/outcome focused –not customer focused Manufacturing-like repeatable process

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 8

Tayloristic Methods?

We avoid using:“traditional” methodologies

since traditions change“plan-driven”

since agile methods are also plan-driven“heavy-weight”

since it implies that agile methods are “light-weight”, which may add a negative connotation

“task-based”since this points to the side effect of a method, rather than the cause

“rigorous”

We prefer “Tayloristic”

Page 5: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

5

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 9

Why Agile Methods?

CHAOS Report, Standish Group

66% of projects failed or are challenged in 2002Large projects are failing more often than small projects Only 52% of features make it into product

http://www.standishgroup.com/sample_research/chaos_1994_1.phphttp://www.standishgroup.com/sample_research/PDFpages/chaos1998.pdf

16%

27%

26%

28%

34%

31%

40%

28%

23%

15%

53%

33%

46%

49%

51%

1994

1996

1998

2000

2002

Succeded Failed Challenged

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 10

Page 6: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

6

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 11

Business perspective – the hype

Better software quality

More predictable deliveries

Higher customer satisfaction

Higher development productivity

Lower software costs

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 12

Business perspective – the opposition

It’s just hacking

Refactoring and emerging design is costly - upfront work will save money

Oral documentation is an oxymoron

Design after first testing

Software is never done costs ballooning

Why should I pay two developers/consultants to do the job of one

Where is the big picture?

Users don’t know what they need

We always did this – but in a waterfall kind of way

Page 7: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

7

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 13

Overview

Why agile methods?

Principles of agile methods

A 10,000 meter view on agile methods

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 14

Four Project Variables

CostCHAOS Report, Standish Group, 1994-1998

ScopeFeature creep Requirements churn

Time“Adding people to a late project just makes it later”

Brooks, Mythical Man Month

QualityDisasters and software bugshttp://wwwzenger.informatik.tu-muenchen.de/persons/huckle/bugse.htmlhttp://www.mtholyoke.edu/~rzdalea/cs100/software_disasters/sd.htmhttp://www.csl.sri.com/users/neumann/illustrative.html

Page 8: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

8

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 15

http://agilemanifesto.org/

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

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 16

Agile Methods

Focus on business value

Focus on delivering software not documentation

Human centric: customer, developers

Page 9: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

9

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 17

Business value

What is business value?

How to measure business value?

How to decide that a project is a success?

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 18

Agile Core Strategies

Iterative and Incremental Development

Adaptive Project Management

Collaborative, "whole team approach"

Common shared vision and goals

Page 10: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

10

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 19

Agile Practices

Knowledge sharing (“verbal documentation”, co-location)

Fast feedback (on-site customer, continuous integration, short iterations, retrospectives)

Emphasis on testing!!!!!!!!!

Emerging (simple) design & refactoring

Pairing

Business contracts

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 20

Agile versus tayloristic methods

Agile methodsHuman-centric Tacit knowledge sharingCode-centricReplace documentation by face-to-face communicationGeneralistsPlan and correctCustomer-focused

Tayloristic methods Process-centricExplicit knowledgeDocumentation-centric

Role specializationPlan and controlContract-focused

Page 11: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

11

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 21

Learn To See & Eliminate Waste

7 wastes of manufacturing:

InventoryExtra ProcessingOverproductionWaitingMotionDefects

7 wastes of software development:

Partially Done WorkExtra ProcessesExtra FeaturesWaitingMotionDefects

Agile practices seek to eliminate waste

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 22

Overview

Why agile methods?

Principles of agile methods

A 10,000 meter view on agile methodsExtreme programmingScrumLean developmentFDDAgile modelingCrystalAdaptive software developmentDSDM…

Page 12: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

12

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 23

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 24

Extreme Programming

Page 13: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

13

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 25

Some Basic Facts

Producing code is required to deliver a system

Dollars spent on analysis and design are wasted if the system is never used

Business requirements have to be the drivers for software development

Requirements change

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 26

Extreme Programming (1/e)

Ken Beck. Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999, p. 70

Page 14: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

14

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 28

Kent Beck, Cynthia Andres. Extreme Programming Explained: Embrace Change, 2/e, Addison-Wesley: 2004, p. 36

Practices (2/e)

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 29

Scrum

Page 15: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

15

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 31

Scrum Flow (Sutherland, Schwaber and Beedle)

Ken Schwaber, Agile Project Management with Scrum, Microsoft Press: 2004.

Scrum: 15 min daily meetingsTeam members respond to basics:-What did you do since last Scrum?-Do you have any obstacles?-What will you do before next meeting?

Features assigned to Sprint

Sprint: 30 days

Potentially Shippable Functionality

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 32

Lean Development

Eliminate wasteValue stream mapping

Amplify learning by feedback and frequent synchronization

Deliver as fast as possible

Empowerment: Self-determination, motivation, leadership, expertise

Page 16: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

16

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 37

Crystal Structure

Number of people involved

Cri

tical

ity(d

efec

ts c

ause

loss

of..

.)

Comfort(C)

Essentialmoney

(E)

Life(L)

. . . . . . . . . Prioritized for Legal Liability

1 - 6 - 20 - 40 - 100 - 200 - 500 - 1,000

C6 C20 C40 C100 C200 C500 C1000

D6 D20 D40 D100 D200 D50 D1000

E6 E20 E40 E100 E200 E500 E1000

L6 L20 L40 L100 L200 L500 L1000

C6 C20 C40 C100 C200 C500 C1000

D6 D20 D40 D100 D200 D50 D1000

E6 E20 E40 E100 E200 E500 E1000

L6 L20 L40 L100 L200 L500 L1000

Prioritized for Productivity & Tolerance

Discretionarymoney

(D)

small utilities

medium-sized productivity tool

banking system

large military system

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 43

DSDM Process

Feasibility

Business Study

Functional Model

Review Prototype

Identify FunctionalPrototype

Agree schedule

CreateFunctionalPrototype

Implementation

User approval and user guidelines

Train users

Implement

Review business

Design and BuildIteration

Create Design Prototype

ReviewDesign Prototype

Identify Design prototype

AgreeSchedule

Feasibility

Business Study

Review Prototype

Identify FunctionalPrototype

Agree schedule

CreateFunctionalPrototype

User approval and user guidelines

Train users

Implement

Review business

Create Design Prototype

ReviewDesign Prototype

Identify Design prototype

AgreeSchedule Design and Build

Iteration

Functional Model Implementation

Page 17: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

17

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 44

Agile Software Processes: Highlights

Increase responsiveness of software teamsChanging requirementsStrong customer involvement

Reduce overhead to speed up development

Focus on people, collaboration, communication

Deliverable: potentially shippable product functionality

Source-code centric

Low overhead tools

Empowering developers and clients

Time-boxed iterations (2 weeks – 4 months)

Fast feedback

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 45

Page 18: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

18

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 46

Knowledge Sharing Exercise

Split up into teams of approx. 6-8 people

Each team splits itself up into analysts, messengers, developersAnalysts: describe requirements on paperMessengers: carry notes from analysts to developers and back – are not allowed to communicate in any way with other groupsDevelopers implement specification

Task: specify an example drawing so that the developers can reproduce it

Messages: only text in usual left-to-right multi-line format, no drawings

Process:Self-organize (5 mins)Execute task (20 mins)Debrief (15 mins)

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 50

10% Communication Error

Tayloristic way:

⇒ (90%)6 = 53% info gets to developer

Agile way:

⇒ 90% info gets to developer

Page 19: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

19

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 51

Knowledge Sharing: Tayloristic Way

Knowledge-as-object

Focus on explicit knowledge and externalization of knowledge in documents or repositories

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 52

Knowledge Sharing via Documentation

Tayloristic way:

“document what you do” and “do what have been documented”

Page 20: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

20

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 53

Documentation: The Tayloristic Way

Ideally:

capturing knowledge gained in the activities of a software project lifecycle

ensuring product and process conformance to prior plans

supporting quality improvement initiatives

satisfying legal regulations

In reality:

often stays outdated

good documentation but no clean, working software does not have a business value

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 54

Knowledge Sharing: Tayloristic Way

Experience Factoryresponsible for intra-team learning

Retrospectives

Page 21: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

21

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 55

Build It and They'll Come Fallacy

Warehouse like approaches fail

Experience factories become experience cemeteries

Little interest and lack of contributions

Common remedy – introduce an incentive systema Dove bara bonus grade (participation grade)"give to get" schemes …

Main problem: people focus on collecting and storing knowledge instead of on reusing it.

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 56

The Case of the Missing "IF"

IF it is very difficult and expensive to gather, understand, and modify requirements, THEN

IF once software is written, it is very difficult to change, THEN

IF a substantial number of our software testers are very inexperienced, THEN

IF we are concerned that we will forget test cases because of their number & complexity, THEN

IF we are concerned about possible interactions between system components, THEN

do stuffIF you know what you are doing, THEN

we must establish formal requirements contracts with our stakeholders

we must establish detailed documentation, precisely describing the system requirements in all their splendid detail

we must document every test case in excruciating detail

we must document every test case in excruciating detail

we must test all combinations of all components

Page 22: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

22

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 57

Documentation: The Agile Way

Promote “lean and mean” documentation:externalized to user stories (XP), models (FDD, AM)

made public collectively owned

self-documenting designseasy-to-read acceptance testsself-describing codeself-describing unit testscoding standards and guidelines (both industry-wide and internal)Scrum: “work-in-progress” the only type (except for special docs for marketing, auditors, and user docs)just-in-time, just-enough, just-because

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 59

Continuous Knowledge Sharing

daily stand-up meetings (scrums)

pairing

pair-rotation

collective code ownership

on-site customer

retrospectives (during +post mortem) e.g.post-sprint meetings in Scrum,reflection workshops in Crystal,post-iteration phases in DSDM

Wiki – open collaboration, open editing, exchange of ideas

Page 23: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

23

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 60

Knowledge Sharing: Highlights

Effective knowledge sharing is imperative to succeed

The higher the level of abstraction, uncertainty and/or equivocality,the "richer" medium is needed

Conversations are the "richest"!

Long knowledge transfer chains result in filtered/distorted messages

Tayloristic methods:Focus on explicit knowledge and externalisation of knowledge in documents or repositories

Agile methods:Leverage tacit knowledge through socialisation (communication + collaboration)

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 61

Page 24: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

24

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 65

Four Project Variables

Cost CHAOS Reports, Standish Group, 1994-2002

ScopeFeature creep Requirements churn

Time“Adding people to a late project just makes it later”

Brooks, Mythical Man Month

QualityDisasters and software bugs

http://www.mtholyoke.edu/~rzdalea/cs100/software_disasters/sd.htm

http://www.csl.sri.com/users/neumann/illustrative.html

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 68

Agile Project Management

Iterative & time boxed

Project scope not fixed at beginningreactive to changing business needs

Business value focused to keep customers happy

Team effort

Page 25: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

25

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 69

Time Boxes

Never slip a date change scope

Sometimes external deadlines are HARD

AdvantagesIncreased motivation

Successful delivery keeps developers and customers happyFaster feedbackCreates a constant project heartbeatDeadlines create pressure (counters: work fills time available)

Advantages of flexible datesRelease only when required scope is completedOverly optimistic deadlines are made more realistic

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 72

Project Vision

Vision =Statement of what the business will look like once the new system is implemented.

Used to establish a project budget

Established by product ownerProvides/finds funding for projects

Vision includesAnticipated benefits for businessAssessment criteria for management to evaluate progress and conformance to vision

Management oversight needed

Page 26: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

26

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 73

A Matter of Trust: Business Contracts

Fixed scope/fixed price contractsTrust by contractAttempts to move technical risk to development sideContract requires documentation

imposes processOpposing sides of table

How are fixed prices derived by development organization?Time and expenses contracts: Fixed budget/variable scope/early termination

Trust by feedback and involvementCollaborative environmentChanges easyIssues:

No time limit on projectNo guaranteed functionality

Honest effort estimate

Risk multiplier(Insurance premium)

How urgently do I need the contract?

Cost ofchange requests

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 79

Main Entry: ter·mi·nol·o·gy

Pronunciation: "t&r-m&-'nä-l&-jE

Function: noun

Inflected Form(s): plural -gies

Etymology: Medieval Latin terminus term, expression (from Latin,

boundary, limit) + English -o- + -logy

1 : the technical or special terms used in a business, art, science, or

special subject

2 : nomenclature as a field of study

Main Entry: ter·mi·nol·o·gy

Pronunciation: "t&r-m&-'nä-l&-jE

Function: noun

Inflected Form(s): plural -gies

Etymology: Medieval Latin terminus term, expression (from Latin,

boundary, limit) + English -o- + -logy

1 : the technical or special terms used in a business, art, science, or

special subject

2 : nomenclature as a field of study

Some Terminology

Project planning, iteration planning, planning game (XP), sprint planning (Scrum)

Story card/index card (XP), backlog entry (Scrum), feature/feature set (FDD)

Customer, goal donor/user, gold owner/client, product owner, scrum master

Spike

Page 27: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

27

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 80

Agile Project Planning

Project vision the really big picture

Release planning strategic pictureChooses a few months worth of user stories/featuresDate and scopeCan be changedCreates product backlog

Iteration planning tactical pictureFew weeksSet of stories prioritized by customerCreates sprint backlogDefine set of tasks for each storyTask granularity: 1-3 work days estimation accuracy

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 81

Managing a Release

Value Driven Releases

Business value = f(cost, time, functionality, quality)

80% of the business value can be derived from 20% of the functionality

Linear development: Christmas wish lists

Iterative development: prioritized wish list

Page 28: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

28

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 82

Minimum Marketable Features

Components with intrinsic marketable value

Creates business value byCompetitive differentiationRevenue generationCost SavingBrand projectionEnhanced loyalty

M. Denne, J. Cleland-Huang: Software by Numbers, Prentise-Hall, 2004

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 84

Scrum Flow (Sutherland, Schwaber and Beedle)

Ken Schwaber, Agile Project Management with Scrum, Microsoft Press: 2004.

Scrum: 15 min daily meetingsTeam members respond to basics:-What did you do since last Scrum?-Do you have any obstacles?-What will you do before next meeting?

Features assigned to Sprint

Sprint: 30 days

Potentially Shippable Functionality

Page 29: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

29

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 85

Agile Requirements Definition

User stories/Backlog EntriesFeature requests

On index cards Short descriptions of a featureIn customer language, no techno babbleProvide value to customerIndependent of each otherTestable Small decompose large stories

Estimated by developers:best case, most likely, worst case

Collect story cards and prioritize them

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 86

When is a User Story Done?

All unit tests pass

All acceptance test pass

The customer accepts it

All refactorings are done

Page 30: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

30

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 87

Who Decides ?

Business decisionsScope: which “user stories” should be developedPriority of storiesComposition of releasesRelease dates

Technical decisionsTime estimates for features/storiesElaborate consequences of business decisionsTeam organization and processScheduling

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 89

Estimation in XP

Ideal Engineering Time (IET, Gummy Bears, Effort, …) No interruption“Complexity” or “size” of taskEstimate adds the hours of a pair:2 developers, 3h each ⇒ IET=6h

Based on experiences from the pastTeam effort

Optimism winsTeam usually does not overrule the estimate of programmers responsible for a task

Issue: Effort estimates done by developers might lead to slack

Estimatesare not

commitments

Page 31: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

31

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 93

Scrum Study (Mann/Maurer)

2 year longitudinal case study

Researcher embedded in development team

Overall results:Reduced overtimeIncreasedcustomersatisfaction

Average Percent Overtime Worked By Team

-20.00

0.00

20.00

40.00

60.00

80.00

100.00

01-0

5-20

03

02-0

9-20

03

03-1

6-20

03

04-2

0-20

03

05-2

5-20

03

06-2

9-20

03

08-0

3-20

03

09-0

7-20

03

10-1

2-20

03

11-1

6-20

03

12-2

1-20

03

01-2

5-20

04

02-2

9-20

04

04-0

4-20

04

05-0

9-20

04

06-1

3-20

04

07-1

8-20

04

08-2

2-20

04

09-2

6-20

04

10-3

1-20

04

12-0

5-20

04

01-0

9-20

05

02-1

3-20

05

Week

% H

ours

Ove

rtim

e

Scrum Introduced

New Windows App Release

Website Release

Windows App 1 support and Windows App 2

Development

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 95

Daily Scrums (Stand-up Meetings)

Daily 15 minute status meeting

Same place and time every day

Meeting room

Chickens and pigs

Three questions;What have you done since last meeting?What will you do before next meeting?What is in your way?

Impediments and

Decisions

Based on Ken Schwaber’s Certified Scrum Master course

Page 32: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

32

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 98

Reporting: Tracking Progress & Metrics

Two questionsHow many hours/days have you worked?How many more does it take?

Project metricsActual time worked on a task Work burndown graph

Per iteration#Backlog project

#Bugs#Stories completed#Acceptance tests defined and passing#Unit testsTest coverage…

Which one is more important}

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 99

Project Tracking: Work Burndown Charts

Likely Backlog Trend

0

500

1000

1500

2000

2500

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Ti me

No one home

0

500

1000

1500

2000

2500

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31

No one home

Underestimating

0

500

1000

1500

2000

2500

3000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31

Underestimating

Overestimating

0

200

400

600

800

1000

1200

1400

1600

1800

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31

Overestimating

Based on Ken Schwaber’sCertified Scrum Master course

Page 33: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

33

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 105

Agile Project Management - Summary

Vision, release, iteration

Short horizon for detailed planning

Reporting needs to tie in with vision and business value

Adaptive and flexible

Team effort

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 106

Page 34: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

34

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 107

Tayloristic vs. Agile QA

Tayloristicseparate, independent test teams

process groups

inspections/reviewstest plansantagonism

Agilecross-functional teams (testers are part of development team)

still make use of independent testers

conformance to process is not a primary goalpairingautomated suitesinteraction and collaboration

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 108

Agile QA Practices

Take a good practice and turn the knob up to the extreme:

code inspections pair programming

test case reviews test-driven development

unit testing merciless, automated unit

testing & continuous integrationretrospectives

do them during and after and frequently

Page 35: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

35

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 109

Agile Quality Approach

Development Team

Customer Team+ Testers

PairProgramming

Ux Designers

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 110

A Note on Pairing

Rapid

Continuous/very frequent

Comprehensive

From all stakeholders (incl. the development team)

From code as well

Pair Programming ⊂ Pairing

Page 36: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

36

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 111

Testing – The State of the Practice in Agile Teams

Adapted from Brian Marick's/Cem Kaner's Model, www.testing.com

Ward Cunningham, Rick Mugridge,Joshua Kerievsky

Kent Beck, Erich Gamma, Ron Jeffries

James Bach, Cem Kaner, Brian Marick

Steve McGraw, Jacob Nielsen, Scott Barber/Rob Sabourin

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 112

It All Comes Down to Feedback!!!!

Rapid

Continuous/very frequent

Comprehensive

From all stakeholders (incl. the development team)

From code as well

Page 37: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

37

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 114

Testing – to the forefront of the development

Write tests before production codeUnit tests developerFeature/acceptance tests customer/QA

Strong emphasis on regression testing

Unit tests need to executeall the timeTests for completed features need to execute all the time

Acceptance tests show progress on user stories

Automate as much as possible

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 115

Acceptance (Customer) Tests

Are used to judge if the product is acceptable to the customer

Coarse grained tests of business operations (functional)

Story-based (contain expectations)

ContainHappy paths (confirmatory)Sad paths Alternate path (deviance)

Comprehensive, end-to-end

Page 38: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

38

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 116

The Value of Concrete Examples

Most customers find it difficult or impossible to express business rules and system requirements in the abstract

The following are often too abstract or too imprecise:requirements specsuse casesUML diagramsformal specs in Z, etc.

Trying to do this all upfront just makes it impossiblefew customers know completely where the true business value lies when they startthey need to evolve their understanding with feedback

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 117

The Value of Concrete Examples

The development of examples enables the customer to express and refine how a system could be used

getting clearer about the underlying business rules that exist (analysis)getting clearer about how a system can be used to provide real business value (synthesis)

Evolution and feedback are essential, at small and large scales:at the story/feature level:

develop very simple examples and refine them to add complexity to get to executable acceptance tests

at the iteration level:change and add to the existing suite(s) of acceptance tests to make the system richer

Page 39: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

39

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 118

Customers "Write" the Tests

Solidifies the meaning of user stories/features

Shows the customer that their own needs are being met

Demonstrates that actual value is coming from completed code

Customer can pair with Interaction/Ux Designers and/or Testers

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 120

Executable Acceptance Testing

FIT (Cunningham)

Test cases are specified in tables

can be specified in Excel, HTML, Wiki…

Parses tables

Generates test cases using this data

Automatically runs the test cases

Shows the result on a Web site

Page 40: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

40

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 121

How FIT Works

Customers/business analysts provide test scenarios

Developers write “fixtures” that make the tests run and eventually pass

Fixtures are refactored into calls to clean working code

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 122

Page 41: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

41

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 123

Starts With a Conversation

Warm communication

One scenario at a time

Let the user write it

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 124

Customer and Ux Designer

Page 42: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

42

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 125

Write a FIT Test

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 126

Make It Pass

Page 43: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

43

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 127

Rinse and Repeat

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 128

And So On…

Do the simplest thing possible to make it pass

Then refactor into clean code that works

Rinse and repeat

Page 44: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

44

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 129

Fixtures Mediate Between Tables and SUT

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 131

Internationalization

Full support of Unicode

Page 45: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

45

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 132

Test Table Styles

Defining business processes/workflows (state changes)DoFixture, ActionFixture

Defining calculations and constraintsColumnFixture , CalculateFixture

Defining business objects within acceptance testsSetUpFixture, ObjectFixture

Defining given and expected lists and queries within storytests

RowFixture, SetFixture, ArrayFixture, etc

Defining boards, layouts, custom table formatsTableFixture, GridFixture

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 133

Good Acceptance Test

The story is motivating. A stakeholder with influence would push to fix a program that failed this test.

The story is credible. It not only could happen in the real world; stakeholders would believe that something like it probably will happen.

The story involves a complex use of the program or a complex environment or a complex set of data.

The test results are easy to evaluate. This is valuable for all tests, but is especially important for scenarios because they are complex.

Page 46: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

46

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 134

Unit (Programmer) Tests

Some executable acceptance testing leads to…

Unit testingmore granularlower leveltesting of units (classes, methods)automated (xUnit)

"Whenever you are tempted to type something into a print statement or a debugger expression, write it as a test instead.“ --Martin Fowler

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 135

Unit Test Guidelines (Michael Feathers)

A test is not a unit test if:It talks to the databaseIt communicates across the networkIt touches the file systemIt can't run correctly at the same time as any of your other unit testsYou have to do special things to your environment (such as editing config files) to run it.

Tests that do these things aren't bad. Often they are worth writing, and they can be written in a unit test harness. However, it is important to be able to separate them from true unit tests so that we can keep a set of tests that we can run fast whenever we make our changes.

Page 47: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

47

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 136

Test-First Design (Test-Driven Development)Test-First Design (Test-Driven Development)

start here

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 137

Rules of Engagement

Test everything that can possibly break

Tests come firstmust fail at first as you don’t have any code yet

All tests run at 100% all the time

Eliminate duplication

Page 48: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

48

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 138

TDD and Courage

TDD is a way of managing this-is-a-hard-problem-and-I-can’t-see-the-end-from-the-beginning fearduring programming

BenefitsThinking before doingAutomatically compares specification with implementationAutomated regression testing supportedEnables refactoring

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 139

Implications of TDD

You must design organically, with running code providing feedback between decisions

You must write your own tests, since you can’t wait twenty times a day for someone else to write a test

Your development environment must provide rapid response to small changes

Your designs must consist of many highly cohesive, loosely coupled components, just to make testing easy

Page 49: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

49

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 140

TDD and Test Organizations

Unit tests – natural by-product of TDD useful enough to keep running as long as the system is runningdon’t replace the other types of testing (performance, stress, usability…)

If the defect density of test-driven code is low enough, then the role of professional testing changes:

“adult supervision” becomes an amplifier for communication

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 141

Testers Outside of Development Team

Provide additional value (not driven by delivery but quality)

Specialized servicessecurity testing, usability testing, performance testing etc.

Independent Validation & Verification when required by legal bodies, standards etc.

Page 50: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

50

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 142

Resources

fit.c2.com

junit.org

fitnesse.org

Mugridge, R., Cunningham W. Fit for Developing Software : Framework for Integrated Tests, 2005.

agile-testing discussion group on yahoo.com

Brian Marick's testing.com

James Bach's satisfice.com

Ron Jeffires xprogramming.com

Other frameworks:Acceptance : Exactor, TextTest, Ruby/WatirSpecialized unti: JWebUnit, Sellenium

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 143

Page 51: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

51

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 144

The Issue …

Do agile methods work because of their engineering and management practices or because the people who introduce them are simply very good developers ?

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 148

Agility in General – Hard Data Anyone?

Too much of the Agile Practice is based on assumptionand opinion

Little hard empirical dataMinimal focus on data collectionData that does exist is passed on by “oral tradition”Data that does exist is often incomplete or taintedHigh-profile consultants provide anecdotal evidence

This makes it difficult to know what works, which in turn makes it difficult to adopt new methodologies.

Page 52: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

52

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 149

Existing Studies

Only individual practices:pair programmingdistributed pair programmingtest-driven developmentacceptance testing

Problems with external validity: use students as subjects

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 150

Cost of pair programming

Williams, Laurie, Kessler, Robert R., Cunningham, Ward, and Jeffries, Ron, Strengthening the Case for Pair-Programming, IEEE Software, July/Aug 2000 .

University study with 41 studentsHigher quality code

Test cases passed individuals: 73.4%-78.1%Test cases passed pairs: 86.4%-94.4%

Pairs completed assignments 40-50% faster(average 15% higher costs)Pair programming preferred by students (85%)

Page 53: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

53

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 152

Studies of TDD

Effect on productivity and quality

Controversial results:Müller/Tichy, 2001 – positive effect Müller/Hagner, 2002 – no significant effectMaximilien/Williams, 2003 – positive effectErdogmus et al, 2003 – no significant direct effect

But…TDD, at worst, increases the amount of test assets produced with no negative impact on productivity.

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 160

A Cross-Program Investigation of Students' Perceptions of Agile Methods (Melnik/Maurer)

GOAL: to determine the perceptions of a broad student body on agile practices

Online questionnairevoluntarily and anonymously

Total numbers of respondents: 240

out of 693 invited, 35% response ratio

Over 3 years6 academic semesters7 courses

GOAL: to determine the perceptions of a broad student body on agile practices

Online questionnairevoluntarily and anonymously

Total numbers of respondents: 240

out of 693 invited, 35% response ratio

Over 3 years6 academic semesters7 courses

35%240693Total, All Programs

94%1718Fall 2003

73%811Fall 2002

75%912Winter 2002

GRAD (4 +2 years)

67%1624Winter 2004

61%2033Fall 2003

31%1962Winter 2003

35%1955Fall 2002

SENIOR (4 years)

13%18142Winter 2004

14%25175Winter 2003JUNIOR (2 years)

65%1117Winter 2004

96%2223Fall 2003

56%1018Fall 2002

55%1222Winter 2002

POSTDIPL (2+2 years)

23%940Fall 2003

61%2541Fall 2001,Winter 2002DIPL

(2 years)

Response rate

# of respon-dents

# of nvita-tionssent outSemester(s)Academic

program

Page 54: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

54

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 161

Questions Asked

Did the students enjoy agile practices?

What worked for them?

What problems did they encounter?

Whether they would use agile practices in the future (if allowed)?

What were their impressions of individual practices?

How did XP improve their learning?

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 162

Using XP Improves Productivity of Small Teams

2 7 8

46

26

0

90

14

2

7

8

51

6

19

12

1

21

0

0

20

40

60

80

100

120

140

Disagree Disagree Agree Agree

Strongly Somewhat Neutral Somewhat Strongly

SAIT UofC Junior Undergrads UofC Senior Undergrads UofC Grads

80%“I believe that XP helps get more work done in less time and is very effective for small groups as it allows for the group members not to get stuck for extended periods of time.”

Page 55: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

55

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 163

Using XP Improves Quality of Code

0 19

4633

39

1

11

1

8 12

43

9

18

12

10

22

0

20

40

60

80

100

120

140

Disagree Disagree Agree Agree

Strongly Somewhat Neutral Somewhat Strongly

SAIT UofC Junior Undergards UofC Senior Undergrads UofC Grads

78%

“Quality is built into the process (not a supporting concept but a core concept).”

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 169

Employee Satisfaction Study (Melnik/Maurer)

Research question: Do agile methods lead to higher job satisfaction rates in software development teams than the average satisfaction in IT industry?

across different age groups and compensation levels

Discover relationships between selected job satisfiers and the overall jobs satisfaction

Comparative analysis

Page 56: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

56

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 170

Comparative Analysis of Job Satisfaction (Melnik/Maurer)

Web-based survey (459 complete, 286 partial responses)

Some questions verbatim identical with Computerworld survey (936 responses)

Overall job satisfaction by groups

11.0%

7.6%

25.0%

29.8%

8.5%

11.0%

21.4%

35.0%

31.3%

53.2%

18.0%

9.9%

29.4%

0.9%

IT General(supplementarystudy)

Non-agile (main study)

Agile

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 171

Job satisfiers

Strong positive correlationlevel of agile experienceability to influence decisions that affect youopportunity to work on interesting projectsrelationships with users

Statistically significantworkload satisfactionopportunity for advancementability to influence day-to-day company’s success

Satisfiers (as per Table 2) Opportu-

nity for advance-

ment

Ability to influence decisions that affect

you

Ability to influence day-

to-day company success

Opportu-nity to work

on interesting

projects

Salary Connection between pay &

performance

Job security

Work-load

Relations with

IT peers

Relations with users/ customers

χ2 79.92 103.24 84.05 99.18 45.28 63.96 64.34 67.42 59.43 88.82 rhos 0.22 0.32 0.28 0.32 0.06 0.17 0.06 0.23 0.26 0.31 rel. moderate moderate moderate moderate none weak very weak moderate weak moderate

[N=481, df=36, p<0.0001, Chi-square & Spearman’s correlation test]

Page 57: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

57

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 185

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 186

Diffusion of Innovation (Rogers; Moore)

Page 58: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

58

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 187

Adoption Status (Forrester Report, Nov 2005)

Agile software development processes are in use at 14%of North American and European enterprises.

Another 19% of enterprises are either interested in adopting agile or already planning to do so

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 188

Adoption Status (Methods & Tools newsletter, May 2005)

At what stage is the agile approach (XP,Scrum, FDD, ...) adoption at your location?

Not aware 26%Not using 16%Investigating 14%Analysed and rejected 3%Pilot projects 4%Partial implementation (adoption of some agile practices) 17%Partial deployment (some projects are using this approach) 12%Deployed (all new projects are using this approach) 8%

http://www.methodsandtools.com/dynpoll/oldpoll.php?Agile

Page 59: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

59

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 189

Who Does Agile Today?

ABB

Bayerische Landesbank

BMW Financial Services

Boeing

Borland

Capital One

Caterpillar

CP Rail

Credit Swiss Life,

Daimler Chrysler

First Union National Bank

Ford Motor Company

Great West Life

IBM

Lloyds Bank Insurance

Microsoft

Petro Canada

Primavera

Transcanada Pipelines

UBS

+

hundreds of small/medium size companies

hundreds of consultants

dozens of user groups

...

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 190

Have Agile Methods Crossed the Chasm Yet?

Page 60: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

60

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 191

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 192

Take-Away PointsAgile practices are not new

An alternative to Tayloristic"Design, Analyze, Implement, Litigate"

Agile is a cultural transformation, attending to principles over practices

No silver bullet

Human-based methodologies

Embrace change

Cross-functional teams avoiding waste

Empowerment of customer and developersAgile start with minimum process and introduce more as needed; Tayloristic start with maximum and you need to cut back to scaledown

Page 61: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

61

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 193

Where to Find InformationAddison Wesley

XP seriesAgile software development series

North America: XP Universe/Agile Universe/Agile conference serieswww.agile2006.org

Europe: XP conference serieswww.xp2006.org

Canadian Agile Network www.agilenetwork.ca

Agile Alliance www.agilealliance.org

Scrum Alliance www.scrumalliance.org

Addison WesleyXP seriesAgile software development series

North America: XP Universe/Agile Universe/Agile conference serieswww.agile2006.org

Europe: XP conference serieswww.xp2006.org

Canadian Agile Network www.agilenetwork.ca

Agile Alliance www.agilealliance.org

Scrum Alliance www.scrumalliance.org

DSDM Consortium www.dsdm.org

Don Wells: www.extremeprogramming.org

Martin Fowler: www.martinfowler.com

Ken Schwaber: www.controlchaos.com

Alistair Cockburn: crystalmethodologies.org

Ron Jeffries: www.xprogramming.org

Mary Poppendieck: www.poppendieck.com

Scott Ambler:www.extreme-modeling.com

Mailing lists at Yahoo and other places

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 194

References

Scott Amber: Agile Modeling: Effective Practices for Extreme Programming and the Unified Process, Wiley 2002. David Astels et al: A Practical Guide to eXtreme Programming, Prentise Hall, 2002. Kent Beck: Extreme Programming Explained - Embrace Change, Addison Wesley 2000. Kent Beck, Martin Fowler: Planning Extreme Programming, Addison Wesley 2000. Mike Beedle, Ken Schwaber: Agile Software Development with SCRUM, Prentice Hall 2001.Barry Boehm, Richard Turner: Balancing Agility and Discipline: A Guide for the Perplexed, Addison-Wesley, 2003.Peter Coad et al: Java Modeling Color with UML, Prentice Hall 1999. Alistair Cockburn: Agile Software Development, Addison Wesley, 2002. Larry L. Constantine: The Peopleware Papers - Notes on the Human Side of Software, Prentice Hall 2001. Michael A. Cusumano, Richard W. Selby: Microsoft Secrets: How the World's Most Powerful Software Company Creates Technology, Shapes Markets, and Manages People, The Free Press, 1995.Tom Demarco: Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency, Broadway Books 2001. Tom Demarco, Timothy Lister: Peopleware : Productive Projects and Teams, 2nd Ed., Dorset House 1999. James A. Highsmith III: Agile Software Development Ecosystems, Addison-Wesley, 2002. James A. Highsmith III: Adaptive Software Development: A Collaborative Approach to Managing Complex Systems, Dorset House Publishing 2000. Jim Highsmith: Agile Project Management: Creating Innovative Products, Addison-Wesley, 2003.Richard Hightower, Nicholas Lesiecki: Java Tools for Extreme Programming, Wiley 2002. Pete McBreen: Questioning Extreme Programming, Addison Wesley 2002. Pete McBreen: Software Craftsmanship - The New Imperative, Addison Wesley 2002. James Newkirk, Robert C. Martin: Extreme Programming in Practise, Addison Wesley 2001. Mary Poppendieck, Tom Poppendieck: Lean Software Development: An Agile Toolkit, Addison-Wesley, 2003.Ken Schwaber: Agile Project Management With Scrum, Microsoft Press, 2004Jennifer Stapleton: DSDM Dynamic Systems Development Method, Addison Wesley 1997. Laurie Williams, Robert Kessler: Pair Programming Illuminated, Addison Wesley, 2002.

Page 62: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

62

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 195

Discussion

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 196

Thank You!

Frank [email protected]

Grigori [email protected]

http://ebe.cpsc.ucalgary.ca/ebe

Page 63: F8 tutorial Maurer Melnik v3 - University of Calgary in ...ase.cpsc.ucalgary.ca/uploads/Publications/F8_tutorial_ Maurer_Melni… · 1 28th International Conference on Software Engineering

63

Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 197