f8 tutorial maurer melnik v3 - university of calgary in...
TRANSCRIPT
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!!!
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
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
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”
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
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
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
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
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
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
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…
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
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
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
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
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
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
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
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”
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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.
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
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.
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%)
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
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.”
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
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]
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)
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
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?
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
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.
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
63
Tutorial F8 Agile Methods: Moving Towards the Mainstream of Software Industry © 2006 Frank Maurer & Grigori Melnik 197