Professional Documents
Culture Documents
Software Development
Life Cycle (SDLC)
CDT413 – Advanced Software Traditional SDLC’s
Engineering
Iterative and incremental SDLC’s
Agile SDLC’s
V-model
Iterative and Incremental
Spiral Model
Rational Unified Process (RUP)
… Traditional SDLC’s
Agile
eXtreme Programming (XP)
Scrum
Crystal Clear
SDLC
…
1
2012-05-21
• Coding – transform
algorithms into software
2
2012-05-21
Incremental Model
Incremental Model Strengths Weaknesses
Develop high risk or major functions first Requires good planning and design
Each release delivers an operational product Requires early definition of a complete and fully
Customer can response to each build functional system to allow for the definition of
Lowers initial delivery costs increments
Initial product delivery is faster
Customers gets important functionality early Well defined module interfaces are required (some
Requirements can be changed for following will be developed long before others)
increments Total cost of the complete system is not lower
3
2012-05-21
4
2012-05-21
5
2012-05-21
Part 3 development
Lighter weight
Less documentation
Less formal process
6
2012-05-21
7
2012-05-21
8
2012-05-21
1. Whole Team (On- site 8. Refactoring (Design Everyone sits together in one room
customer) Improvement)
A real customer sits with the development team
2. Small releases 9. Collective code ownership
May be a customer proxy when a real customer isn’t
3. The Planning Game 10. Coding standard
available
4. Simple design 11.Continuous integration
The customer
5. Pair programming 12. Metaphor
Writes stories
6. Test Driven Development 13. Sustainable Pace
Business value functionalities
7. Customer Tests
Analogous to uses cases or requirements
Writes acceptance tests
Plan only as far in advance as you can see Release and Iteration Planning
Adjust the plan as necessary Customer is (main) part of the process
Each release is as small as possible to actually deliver Separation between technical and business decisions
something of value Business decisions
Typically 1-3 weeks Scope
Priority
Do not need to deploy
9
2012-05-21
Partner
Upcoming stories could be cancelled or lowered in priority
Watches the forest, not the trees
You Aren’t Gonna Need It (YAGNI) principle
Thinks about missing tests, integration issues, etc.
Do the simplest thing that can possibly work Programming is far more than typing
Pairs constantly shift
Write the unit tests first, then write the code While programmers are programming:
“Any program feature without an automated test Customer writes an acceptance test for each story
simply doesn’t exist.” Ideally, a tester is available to automate the test
—Kent Beck
10
2012-05-21
11
2012-05-21
Post-its on a
whiteboard
12
2012-05-21
Three questions:
1. What did you do yesterday
2. What will you do today?
3. What obstacles are in your way?
13