cs3100 software project management agile approaches
TRANSCRIPT
CS3100Software Project Management
Agile Approaches
CS3100 Software Project Management Slide 2
Learning Objectives
1. Reflect on Traditional Approaches and their effectiveness in delivering successful projects?
2. Consider Alternative ways of running projects.
3. Understand XP as an example Agile methodology
CS3100 Software Project Management Slide 3
A Short History of Methodology
In the old days Small systems Adhoc development (No methodologies) Dijkstra (1968)
GOTO Statement Considered Harmful
Then (80s-90s) Large systems BIG methodologies Design up-front Long test-cycles (unpredictable & expensive)
CS3100 Software Project Management Slide 4
Justification for Methodologies
Late change is costly
Requirements
Analysis
Design
Implem
entation
Testing
Production
Cost
CS3100 Software Project Management Slide 5
Make changes early
Lots of up-front planning
Nail down requirements early
Waterfall mentality
CS3100 Software Project Management Slide 6
But does this stop change?
Does a client’s business stop changing?
What if the user wants changes?
How do we deal with this?
CS3100 Software Project Management Slide 7
More Modern View
Customer requirements change Accept it Be Adaptive
Lightweight (Agile) methodologies Late 90s brought the Agile Alliance
CS3100 Software Project Management Slide 8
Agile Alliance Manifesto
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
CS3100 Software Project Management Slide 9
eXtreme Programming
- XP is an Agile Methodology
- A set of Core Principles
- Based on Four Values
- If principles are good then:
apply them in their extreme form!
CS3100 Software Project Management Slide 10
Values
1. Communication
2. Simplicity
3. Feedback
4. Courage
CS3100 Software Project Management Slide 11
- Regular Stand-up meetings
- Customer always available
Communication
CS3100 Software Project Management Slide 12
Simplicity
- Do only what is needed now
- Add functionality only as needed
- Don’t assume what is needed later
CS3100 Software Project Management Slide 13
Feedback
- From tests
- From customer
- From testers
- Feedback drives the process
CS3100 Software Project Management Slide 14
Courage
- Do what needs doing
- Throw stuff away
- Try alternatives
CS3100 Software Project Management Slide 15
XP Process
User Stories
Release
PlanningIteration
bugs
iterate
based on J Donvan Wells 2000www.extremeprogramming.org
Small
Releases
approvalAcceptance
Tests
CS3100 Software Project Management Slide 16
Planning Process Summarised
- User Stories written by customer
- Developers estimate (1-3 weeks)
- Stories scheduled in release plan
- Customer accepts finished story Use acceptance tests to verify stories
- Customer is always available
Monitor project velocity and re-plan!
CS3100 Software Project Management Slide 17
XP Roles
1. Customer
2. Programmer
3. Coach
4. Tracker
5. Tester
6. Doomsayer
CS3100 Software Project Management Slide 18
XP Practices1. The Planning Process2. Frequent, Small Releases3. System Metaphor4. Simple Design5. Test Driven Development6. Refactoring7. Pair Programming8. Collective Code Ownership9. Continuous Integration10. Sustainable Pace11. On-site Customer12. Coding Standard
CS3100 Software Project Management Slide 19
Other Agile Flavours
- Lean Development
Based on lean manufacturing
http://www.poppendieck.com/
- SCRUM
Highly Iterative
http://www.controlchaos.com/