2. 4 June 2012 Agile Development 2
Agile Development: OverviewAgile Development: Overview
Agile Development: Overview
– What is it?
– History
– Agile Manifest
– Criticism
Feature-Driven Development (FDD)
SCRUM
Extreme Programming
Comparative
Social abilities in group work: My own perception
Bibliography and sources
3. 4 June 2012 Agile Development 3
What is it?
“Agile software development is a group of software
development methods based on iterative and
incremental development, where requirements and
solutions evolve through collaboration between self-
organizing, cross-functional teams.”
Wikipedia.org
8. 4 June 2012 Agile Development 8
Agile Manifest
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
http://agilemanifesto.org/
9. 4 June 2012 Agile Development 9
Criticism
Developer-centric rather than user-centric
– Mike Gualtieri answered : “Developers are not coders
but experience creators”
Doesn't focus on product design
Inefficient in large organizations
Too extreme, better mix approach
10. 4 June 2012 Agile Development 10
Feature-Driven Development (FDD )
Overview
Develop Overall Model
Build Feature List
Plan by feature
Design by feature
Build by feature
11. 4 June 2012 Agile Development 11
Feature-Driven Development (FDD ) 1
12. 4 June 2012 Agile Development 12
Feature-Driven Development (FDD ) 2
13. 4 June 2012 Agile Development 13
Feature-Driven Development (FDD ) 3
14. 4 June 2012 Agile Development 14
Feature-Driven Development (FDD ) 4
15. 4 June 2012 Agile Development 15
Feature-Driven Development (FDD ): Percentage time
16. 4 June 2012 Agile Development 16
Scrum: Overview focus on definitions
Requirements
Has to be
Finished in
8 hours
Requirements
For time-boxed
User story:
As a <user type>
I want to
<do some action>
so that <desired result>
17. 4 June 2012 Agile Development 17
Scrum: Roles and meetings
Roles
– Scrum Master: Servant leadership
– Product owner: Represent stakeholder
– Development team: Self-organize.
Meetings
– Daily Scrum:
● Every morning the first step.
● 15 minutes
● What you did/are you doing? Any blocks?
– Backlog grooming: Improving backlog
● Team decide how many peer week
● No longer than hour
18. 4 June 2012 Agile Development 18
Scrum: Meetings
Meetings
– Scrum of scrums:
● After Daily scrum
● Focus on overlap areas and integration
● One voice per group.
● What your team did/are doing? Any block?
– Sprint planning meeting
● At beginning of the sprint
● Prepare Sprint Backlog
● 8 hour
– 1st 4 hours: Product owner + team: prioritizing
backlog
– 2nd 4 hours: Team only
19. 4 June 2012 Agile Development 19
Scrum: Meetings
Meetings
– Sprint review meeting
● At the end of sprint
● Four hour time limit
● Review work done and not done
● Present work to stakeholders
– Sprint retrospective
● What went well/wrong during the sprint?
● How can we improved?
20. 4 June 2012 Agile Development 20
SCRUM: Overview focus on meetings
Backlog groomingDaily Scrum
Scrum of scrums
Sprint Planning Sprint review
Sprint retrospective
21. 4 June 2012 Agile Development 21
Extreme Programming
22. 4 June 2012 Agile Development 22
Extreme Programming: Activities and Values
Activities
Coding
Testing
Listening
Designing
Values
Communication: Frequent verbal communication and
feedback
Simplicity: YAGNI :You ain't gonna need it
Feedback
From system: Unit test
From customers: Acceptance test by customers and testers
Respect
23. 4 June 2012 Agile Development 23
Extreme Programming: Practices
Fine scale feedback
Pair programming
Planning game
Test Driven Development
Whole team: Continuous contact with customer
Continuous process
Continuous integrations: Uploading every pair of hours
Design improvement: Multiple maintenance implies refactor
Small releases
24. 4 June 2012 Agile Development 24
Extreme Programming: Practices
Fine scale feedback
Pair programming
Planning game
Test Driven Development
Whole team: Continuous contact with customer
Continuous process
Continuous integrations: Uploading every pair of hours
Design improvement: Multiple maintenance implies refactor
Small releases
25. 4 June 2012 Agile Development 25
Extreme Programming: Planning Game
Release planning
Focus on model the problem.
Customers and developers are involved
Iteration Planning
Organize for implementation
Only developers are involved
Planning Game
Release Planning Iteration Planning
Exploration
Phase
Commitment Phase
Steering
Phase
Exploration
Phase
Commitment
Phase
Steering
Phase
Sort
by
value
Sort
by
risk
Set
velocity
26. 4 June 2012 Agile Development 26
Extreme Programming
Planning Game: Release planning
Release planning by customers and developers.
Exploration Phase:
Commitment Phase
Risk: Completeness(0-2), Volatility (0-2), Complexity (0-2)
Steering Phase: Review to guide
Planning Game
Release Planning
Exploration phase Commitment phase Steering phase
Write story
Estimate story
Split story
Sort
by
value
Sort by risk:
Completeness 0-2
Volatility 0-2
Complexity 0-2
Set
velocity
Review to guide:
Change:
Priorities
Estimations
27. 4 June 2012 Agile Development 27
Extreme Programming
Planning Game: Iteration planning
Planning Game
Iteration Planning
Exploration Phase Commitment Phase Steering Phase
Requirements → Tasks cards
Combine/split tasks
Estimate tasks
Programmer pick task
Estimate task
Set load factor
Balancing
Get task card
Find partner
Design task
Write unit test
Write code
Run test
Refactor
Run Functional test
28. 4 June 2012 Agile Development 28
Extreme Programming: Practices
Fine scale feedback
Pair programming
Planning game
Test Driven Development
Whole team: Continuous contact with customer
Continuous process
Continuous integrations: Uploading every pair of hours
Design improvement: Multiple maintenance implies refactor
Small releases
29. 4 June 2012 Agile Development 29
Extreme Programming: Practices
Shared understanding
Coding standard
Collective code ownership
Simple design
System metaphor
Programmer welfare: No over work.
30. 4 June 2012 Agile Development 30
Extreme Programming
Criticism
A methodology is only as effective as the people involved
Bleed money from customers through lack of defining a
deliverable
Incorporates insufficient software design
Can be very inefficient: Several times same code written
Impossible to develop realistic estimates of work effort
needed
Can increase the risk of scope creep
Non-functional quality attributes are hard to be placed as
user stories
31. 4 June 2012 Agile Development 31
Comparative
FDD Scrum Extreme
Programmers
involved
50 9 9
Need senior
developers
Some groups All All
32. 4 June 2012 Agile Development 32
Social abilities in group work: My own perception
Social abilities are necessary for group work
Critics are good. It does not matter where they come from,
they allow us to improve. It is feedback.
Perfect solution is not optimal solution
Respect
Define the objective of the group and everyone will know
what to do
Confident in us and others
33. 4 June 2012 Agile Development 33
Bibliography and sources
Wikipedia English Version.
It has been a summary and refactoring of Wikipedia
articles about these topics.
34. 4 June 2012 Agile Development 34
¡ THE END !
Thanks for your attention