agile development
Post on 27-Jan-2015
167 Views
Preview:
DESCRIPTION
TRANSCRIPT
David Díaz Clavijo
5/6/12
Universidad de Granada
Agile Development
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
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
4 June 2012 Agile Development 4
4 June 2012 Agile Development 5
History
¿Why?
¿When?
¿How?
4 June 2012 Agile Development 6
History
¿Why?
¿How?
¿When? Mid 90's
Heavyweight methods:Heavily regulatedRegimentedMicromanaged
1995 Scrum Crystal Clear Adaptative Software DevelopmentFeature Driven DevelopmentDynamic System Development Method
1996 Extreme Programming2001 Manifest for Agile Develoment
4 June 2012 Agile Development 7
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/
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
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
4 June 2012 Agile Development 11
Feature-Driven Development (FDD ) 1
4 June 2012 Agile Development 12
Feature-Driven Development (FDD ) 2
4 June 2012 Agile Development 13
Feature-Driven Development (FDD ) 3
4 June 2012 Agile Development 14
Feature-Driven Development (FDD ) 4
4 June 2012 Agile Development 15
Feature-Driven Development (FDD ): Percentage time
4 June 2012 Agile Development 16
Scrum: Overview focus on definitions
RequirementsHas to be Finished in
8 hours
RequirementsFor time-boxed
User story:As a <user type>
I want to <do some action>
so that <desired result>
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
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
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?
4 June 2012 Agile Development 20
SCRUM: Overview focus on meetings
Backlog groomingDaily ScrumScrum of scrums
Sprint Planning Sprint reviewSprint retrospective
4 June 2012 Agile Development 21
Extreme Programming
4 June 2012 Agile Development 22
Extreme Programming: Activities and Values
ActivitiesCodingTestingListeningDesigning
ValuesCommunication: Frequent verbal communication and
feedbackSimplicity: YAGNI :You ain't gonna need it Feedback
From system: Unit testFrom customers: Acceptance test by customers and testers
Respect
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
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
4 June 2012 Agile Development 25
Extreme Programming: Planning Game
Release planning Focus on model the problem. Customers and developers are involved
Iteration PlanningOrganize for implementationOnly developers are involved
Planning Game
Release Planning Iteration Planning
Exploration Phase
Commitment PhaseSteering Phase
Exploration Phase
Commitment Phase
Steering Phase
Sort by
value
Sort by risk
Set velocity
4 June 2012 Agile Development 26
Extreme ProgrammingPlanning Game: Release planning
Release planning by customers and developers. Exploration Phase:
Commitment PhaseRisk: 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
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
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
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.
4 June 2012 Agile Development 30
Extreme ProgrammingCriticism
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
4 June 2012 Agile Development 31
Comparative
FDD Scrum Extreme
Programmersinvolved
50 9 9
Need senior developers
Some groups All All
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
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.
4 June 2012 Agile Development 34
¡ THE END !
Thanks for your attention
top related