Agile

advertisement
Agile
Processes
• Waterfall
• Traditional
• With prototyping
• Sprial
• Agile
•
•
•
•
1
Dynamic Systems Development Method (DSDM)
Scrum
Crystal
eXtreme Programming (XP)
Waterfall
Spiral
Agile
Emphasizes:
-Simplicity
-Traceability
-Risk management
-Exploring alternatives
-Flexibility
-Immediacy
Weakness:
Requirement/design
mistakes can be costly
Exploring alternatives
can be costly
Continual rework
can be costly
Style:
-Highly controlled
-High ceremony
-Moderately controlled
-Moderate ceremony
-Rapid & organic
-Low ceremony
Some definitions
-“traceability”: relationships between requirements and system elements are documented
-“immediacy”: getting some sort of working system to the customer as fast as possible
-“rework”: redesigning the architecture and/or refactoring the program code
-“controlled”: conformance to process is highly valued, even if it slows a project down
-“ceremony”: how much analysis, documentation, and planning is involved
2
When to choose what
• Waterfall: good for smaller systems where requirements can
be fully understood before design and implementation
• Spiral: good for larger systems with vague requirements and
many alternatives for designing and coding
• Agile: good for systems where you can rapidly create
something very small but useful and then expand from there
3
Agile Manifesto
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
4
Agile Processes
evaluate & control risk
Customer provides
short requirements
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
Implement
System and acceptance tests
5
Iterations
• Purpose
• Iterative gives you a few “oh drat”s instead of one OMG at the end.
• Timing
• Scrum: 1 month
• XP: 1-2 weeks
• Grouping
• Iterations can be grouped into releases
• Not ever iteration results in a new release
• Sub-dividing
• Each iteration has “micro-iterations”
6
Principles of DSDM (Dynamic Systems Development Method)
• Active user involvement is imperative
• The team must be empowered to make decisions
• Fitness for business purpose is the essential criterion for
accepting deliverables
• Requirements are specified at a high level
• Focus on frequent delivery of products
7
Principles of DSDM (cont..)
• Iterative and incremental development necessary to converge
on a solution
• All changes during development are reversible
• Testing is integrated throughout life cycle
• Collaboration and cooperation is essential
8
Key Practices of DSDM
• Ambassador users and facilitated workshops
• Users on-call and users en-masse (respectively)
• Stages of iterations:
•
•
•
•
•
9
Pre-project exploratory phase (kick around ideas)
Feasibility study (explore if ideas are doable)
Business study (explore if ideas worth doing)
Model, design, implement (a “timebox” of work)
Post-project phase (what went well and what didn’t?)
Principles of XP (Extreme Programming)
• Communication- It’s good to talk with customer and between
developers
• Simplicity- Keep it simple and grow the system (and models)
when required
• Feedback- Let users provide feedback early and often
• Courage- Speak the truth, with respect
10
Practices of XP
•
•
•
•
•
•
•
11
Whole team
Metaphor
The planning game
Simple design
Small releases
Customer tests
Pair programming
•
•
•
•
•
•
Test-driven development
Design improvement
Collective code ownership
Continuous integration
Sustainable pace
Coding standards
Practices of XP
• Whole team- Customer is part of team
• Metaphor- Design around a coherent idea
• The planning game- Be realistic re: meeting customer needs
• Simple design- Simple models, architecture, code
12
Practices of XP
• Small releases- Meet customer needs in small increments
• Customer tests- Customer participates in testing
• Pair programming- All code written with “co-pilot”
• Test-driven development- Write tests first, then code
13
Practices of XP
• Design improvement- Refactor only as needed
• Collective code ownership- Anyone can modify any code
• Continuous integration- Regularly check if system on track
• Sustainable pace- No all-nighters, no superheroes
• Coding standards- Pick a format, use it, move on
14
Agile Processes
evaluate & control risk
Customer provides
short requirements
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
Implement
System and acceptance tests
15
Agile Processes
evaluate & control risk
Prioritize
requirements
and plan
Customer provides
short requirements
collect user
stories
Operation
Write/run/modify
unit tests
Implement
System and acceptance tests
16
Agile Processes
estimate
effort
evaluate & control risk
Customer provides
short requirements
Operation
divide
stories into
tasks
Prioritize
requirements
and plan
Write/run/modify
unit tests
Implement
System and acceptance tests
17
Agile Processes
evaluate & control risk
Customer provides
short requirements
customer
selects
stories
allocate work
among team
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
Implement
System and acceptance tests
18
Agile Processes
evaluate & control risk
Prioritize
requirements
and plan
Customer provides
short requirements
Write/run/modify
unit tests
Operation
write unit
tests
System and acceptance tests
19
Implement
Agile Processes
evaluate & control risk
Customer provides
short requirements
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
Implement
System and acceptance tests
20
write and
refactor code
Agile Processes
evaluate & control risk
Customer provides
short requirements
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
Implement
System and acceptance tests
21
customer
tests system
Agile Processes
evaluate & control risk
Customer provides
short requirements
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
customer
uses system
Implement
System and acceptance tests
22
Agile Processes
estimate
effort
evaluate & control risk
Customer provides
short requirements
divide
stories into
tasks
collect user
stories
customer
selects
stories
allocate work
among team
Operation
Prioritize
requirements
and plan
Write/run/modify
unit tests
write unit
tests
customer
uses system
System and acceptance tests
23
customer
tests system
Implement
write and
refactor code
Concerns About XP
• Constant refactoring can be expensive
• Pair programming can take extra effort
• XP is not very standardized
• Programmers don’t always specialize
24
Lessons from DSDM and XP
• Learn from:
• Users (DSDM)
• Customers (XP)
• Design based on:
• Business value (DSDM)
• Customer direction (XP)
• Requirements should be:
• High-level (DSDM)
• Succinct (XP)
25
Next Steps..
• HW #4 (Design) due Friday!!
• Vision statement peer review next Tuesday!!
• Bring hard copy of rough draft
• Don’t forget your midterm!!
• Due 11/25
26
Download