Title: Agile Methodologies
1Agile Methodologies
INTERNA UPORABA
Matja Pancur, FRI
Maj 2003
2Agenda
- About methodologies (definitions, agile
manifesto, meta-model, scope, conceptual terms) - Methodology design principles and consequences
- Common design errors
- Recommendations for documentation
- Agile sweet spots
- On-the-fly methodology construciton and tuning
- Agile methodologies (XP, Crystal, FDD, ASD,
Scrum, ...) - Hybrid methodologies
- Questions discussion
3Definitions
- methodology series of related methods or
techniques - process - Who is doing What, When and How in
building a software product - Big M methodologies
- little m methodologies
4Definitions
- agile methodologies vs. heavyweight
methodologies (heavy, traditional,
monumental) - Agile Manifesto
- no Unified Agile Methodology
Typical customer interaction
5Agile Manifesto
Individuals and interactions
process and tools
over
comprehensive documentation
over
Working software
contract negotiation
over
Customer collaboration
following a plan
Responding to change
over
6Methodology Meta-model key elements
7Scope
8Conceptual Terms
- size S ( of control elements)
- density D (amount of precision and the tightness
of tolerance)
Weight W W S D
9More Conceptual Terms
- Problem size
- Project size
- System criticality
- Precision
- Accuracy
- Relevance
- Tolarance
- Visibility
- Scale
- Stability
10Agenda
- About methodologies (definitions, agile
manifesto, meta-model, scope, conceptual terms) - Methodology design principles and consequences
- Common design errors
- Recommendations for documentation
- Agile sweet spots
- On-the-fly methodology construciton and tuning
- Agile methodologies (XP, Crystal, FDD, ASD,
Scrum, ...) - Hybrid methodologies
- Questions discussion
11Methodology Design Principles
interactive, face-to-face communication
Cheapest fastest channel for exch. info.
?
1
2 ppl at whiteboard
... on videoconference
... on phone
... on email
videotape
audiotape
paper
12Methodology Design Principles
small increase in meth. weight
?
2
large increase in cost
3
?
heavier methodologies
larger teams
13large team
small team
14Methodology Design Principles
?
4
greater density
greater criticality
- Criticality Defects cause loss of...
- comfort
- discretionary money
- essential money
- life
15Methodology Design Principles
increasing feedback and communication
reduce the need for intermediate deliverables
?
5
efficiency is expendable
only in nonbottleneck activities
6
?
- do whatever you can to speed up the work at
bottleneck activity - ppl at nonbottleneck activ. can work
inefficiently without affecting the overall speed
16Methodology Design Principles
discipline, skill and understanding
process, formality and documentation
7
counter
17Methodology Design Principles
- Last but not least
- methodology constructor (author)
- project priorities
18Consequences of the Principles
- Adding ppl to a project is costly
- Team size increases in large jumps
- Teams should be improved, not enlarged
19Consequences of the Principles
- Diff. methodologies are needed for diff. projects
repeatability
Life
()
Essential
traceability
money
Criticality
(N)
(defects cause loss of ...)
productivity
Money
D40
D100
D200
D500
D1000
(D)
productivity and
Comfort
U6
U20
U40
U100
U200
U500
U1000
tolerance
(U)
1-6
7-20
21-40
41-100
101-200
201-500
501-1000
Nr. of ppl (- 20)
20Consequences of the Principles
- Lighter methodologies are better, until they run
out of steam
21Agenda
- About methodologies (definitions, agile
manifesto, meta-model, scope, conceptual terms) - Methodology design principles and consequences
- Common design errors
- Recommendations for documentation
- Agile sweet spots
- On-the-fly methodology construciton and tuning
- Agile methodologies (XP, Crystal, FDD, ASD,
Scrum, ...) - Comparison (CMM, FDD, ASD, Crystal)
- Hybrid methodologies
- Questions discussion
22Common Design Errors(in a methodology
construction)
- One size fits all
- Intolerant
- Heavy (heavier is safer)
- Embellishment (ought to and should)
- Untried
23Recommendations for Documentation
- Doc. activities deffered as long as possible,
then made as small as possible - Barelly sufficient
- ideal quantity
- varies by time and place within a project
24Recommendations for Documentation
- Dont ask for...
- requirements to be perfect
- design documents to be up-to-date with code
- proj. plan to match the state of the proj.
- ... instead ...
- req. gatherers capture just enough to communicate
with designers
25Recommendations for Documentation
- If designers are all experts and sitting close by
each other... - ...dispense with design doc. beyond witheboard
sketches - BUT
- other ppl will need more design documentation!
- suggestion run doc. generation as a parallel
and resource-competing thread
26Agenda
- About methodologies (definitions, agile
manifesto, meta-model, scope, conceptual terms) - Methodology design principles and consequences
- Common design errors
- Recommendations for documentation
- Agile sweet spots
- On-the-fly methodology construciton and tuning
- Agile methodologies (XP, Crystal, FDD, ASD,
Scrum, ...) - Hybrid methodologies
- Questions discussion
27Agile Sweet Spots
- 2 to 8 ppl in one room
- on-site usage experts
- one-month increments
- fully automated regression tests
- experienced developers
28On-the-fly methodology construciton and tuning
a distinct sequence of activities with an
established plan and evaluation criteria,
resulting in an executable release
Iteration
- Right now
- At the start of the project
- In the middle of the first increment
- Between each increments
- In the middle of subsequent increments
? only if increments gt 3 weeks
29Agenda
- About methodologies (definitions, agile
manifesto, meta-model, scope, conceptual terms) - Methodology design principles and consequences
- Common design errors
- Recommendations for documentation
- Agile sweet spots
- On-the-fly methodology construciton and tuning
- Agile methodologies (XP, Crystal, FDD, ASD,
Scrum, ...) - Hybrid methodologies
- Questions discussion
30Agile methodologies
- XP (eXtreme Programming)
- ASD (Adaptive Software Development)
- FDD (Feature Driven Development)
- Crystal
- ...
short iterations, active client,
unpredictable/changing requirements,
people-centric
31XP
- XP is a lightweight methodology for small to
medium sized teams developing software in the
face of vague or rapidly changing requirements.
Kent Beck, XP explained - Why is it Extreme?
- Because it takes good practices to extreme levels
32XP Values
- Communication
- Adopt practices that encourage talking and
listening - Simplicity
- What is the simplest thing that could possibly
work (DTSTTCPW) - Continuously simplify and improve the design
through refactoring
33XP Values
- Feedback
- Write test cases before production code
- Develop in small releases,
- And even smaller iterations.
- And even smaller tasks.
- And even smaller tests.
- Courage
- Go at top speed
34SW Processes
Source Michele Marchesi, XP-Cern-2002.ppt, 2002
35XP Basic Principles
- Rapid feedback
- Assume simplicity
- Incremental change
- Embracing change
- Quality work
- Teach learning
- Small initial investment
- Play to win
- Concrete experiments
- Open, honest communication
- Work with instincts
- Accepted responsibility
- Local adaptation
- Travel light
- Honest measurement
36XP Practices
- The Planning Game
- Small Releases
- Metaphor
- Simple design
- Testing
- Refactoring
- Pair programming
- Collective ownership
- Continuous integration
- 40-hour week
- On-site customer
- Coding standards
37 XP Practices
38XP Project
39XP Release Planning
40XP Iteration
41XP Development
42XP Collective Code Ownership
43XP Roles
- Programmer - pairing, testing, coding, designing,
estimating - courageous. - Customer - provide user stories tests
- Tester - implement functional tests
- Tracker - log progress
- Coach - teach to learn
- Consultant - optional specialist
- Big Boss - confident
44A typical day of a programmer
45Agenda
- About methodologies (definitions, agile
manifesto, meta-model, scope, conceptual terms) - Methodology design principles and consequences
- Common design errors
- Recommendations for documentation
- Agile sweet spots
- On-the-fly methodology construciton and tuning
- Agile methodologies (XP, Crystal, FDD, ASD,
Scrum, ...) - Hybrid methodologies
- Questions discussion
46Hybrid Methodologies
- dX minimal RUP
- XUP (eXtreme Unified Process)
- XUP XP RUP MSF
47Conclusion
- Agile methodologies
- Unpredictable and/or changing requirements
- Responsible and motivated developers
- Adaptive client
- Agile sweet spots
- Heavy, traditional meth.
- Large groups (gt20 ppl?)
- Fixed scope contract
- Predictable requirements and problem domain
48Resources
- Agile methodologies
- Alistair Cockburn, Agile Software Development,
Addison Wesley Professional, 2001 - Matja Pancur, Analiza in dolocanje primernosti
uporabe lahkih metodologij razvoja informacijskih
sistemov, M.Sc. thesis, Faculty of Computer and
Information Science, UL, Ljubljana, 2001 (in
Slovene) - XP
- Kent Beck Extreme Programming Explained Embrace
change, Addison-Wesley, 1999 - William C. Wake, Extreme Programming Explored,
Addison-Wesley, 2001 - The XP Series _at_ Addison-Wesley (XP Examined, XP
Installed, XP in Practice, XP Applied, Planning
XP) - www.extremeprogramming.org, www.xpdeveloper.com,
www.xprogramming.com, www.egroups.com/group/extrem
eprogramming, http//c2.com/cgi/wiki?ExtremeProgra
mmingRoadmap
49Resources
- FDD
- Peter Coad, Eric Lefebvre, Jeff DeLuca Java
modeling in Color with UML Enterprise Components
and Process, Chapter 6 Feature-Driven
Development, Prentice Hall, 1999 - http//www.togethersoft.com/jmcu/chapter6.pdf
- Coad Letter, Process Feature Driven Development
and Extreme Programming, editor Steve Palmer,
Nr.70, 7/2000 - ASD
- James A. Highsmith, Adaptive Software
Development A Collaborative Approach to Managing
Complex Systems, Dorset House, 2000 - Dirk Riehle A Comparison of the Value Systems of
Adaptive Software Development and Extreme
Programming How Methodologies May Learn from
Each Other, Proceedings of the First
International Conference on Extreme Programming
and Flexible Processes in Software Engineering
(XP 2000), 2000
50Resources
- Crystal
- Alistair Cockburn Crystal Methodologies
- http//www.crystalmethodologies.org
- CMM XP
- Ron Jeffries Extreme Programming and the
Capability Maturity Model, XP Magazine, 2000,
http//xprogramming.com/xpmag/xp_and_cmm.htm - Mark Paulk XP from a CMM Perspective, IEEE
Computer Society Dynabook, Extreme Programming,
2000 http//computer.org/seweb/dynabook/PaulkCom.h
tm - Hybrid methodologies
- Peter Merel XUP XP RUP MSF, verzija 1.1
beta, Scalable Systems LLC, 2000,
http//home.san.rr.com/merel/XUP.doc - Grady Booch, Robert C. Martin, James Newkirk The
Process, Preliminary Chapter 4, Object Oriented
Analysis and Design with Applications, 3. ed.,
Addison Wesley Longman, book draft
http//www.objectmentor.com/publications/RUPvsXP.p
df
51Questions discussion