SlideShare a Scribd company logo
1 of 61
Download to read offline
Agile
Software
Development
Credits to: Aaron Ciaghi, Pietro Molini
Some Material from Mike Cohn and Mountain Goat Software
spm - ©2014 adolfo villafiorita - introduction to software project management
Outline
• A short talk about waste
• Intro to Agile Software Development
• Examples of Agile Development Processes
– DSDM (overview)
– eXtreme Programming (more detailed)
– Scrum (in depth)
2
A short talk about
waste
spm - ©2014 adolfo villafiorita - introduction to software project management
Lean Manufacturing
• Lean manufacturing is a production practice that
considers the expenditure of resources for any goal other
than the creation of value for the end customer to be
wasteful, and thus a target for elimination.
• Value = what the user is willing to pay for
• Derived mostly from the Toyota Production System (hence
the term Toyotism is also prevalent) and identified as
"Lean" only in the 1990s
• Economical motivations in adapting production to
demand, high cost of land (storage), economies of scale
to improve competitiveness
4
5
無駄
(muda - unnecessary)
無理
(muri – work that can
be avoided)
斑
(mura – unevennes)
spm - ©2014 adolfo villafiorita - introduction to software project management
TIMWOOD – types of 無駄
• Transportation: moving products that is not actually required to
perform the processing
• Inventory: all components, work in progress, and finished
product not being processed
• Motion: people or equipment moving or walking more than is
required to perform the processing
• Waiting: waiting for the next production step
• Overproduction: production ahead of demand
• Over Processing: resulting from poor tool or product design
creating activity
• Defects: the effort involved in inspecting for and fixing defects
6
spm - ©2014 adolfo villafiorita - introduction to software project management
Causes of Waste in Software Development
• Accurate estimation, effective planning, management
and control, and deterministic delivery of quality
software has always been subject of great debate
• Some of the causes include:
– Immateriality: software is difficult to measure
– Flexibility: “why don’t we add this nice feature?”
– Complexity
– New: maturity of engineering techniques
7
spm - ©2014 adolfo villafiorita - introduction to software project management
Software Development Complexity
8
Simple
Complex
Anarchy
Complicated
Technology
Requirements
Far from
Agreement
Close to
Agreement
Close to
Certainty
Far from
Certainty
Source: Strategic Management and Organizational Dynamics by Ralph
Stacey in Agile Software Development with Scrum by Ken Schwaber and
Mike Beedle.
spm - ©2014 adolfo villafiorita - introduction to software project management
Motivation for Agile (1/2)
• Traditional approaches to control complexity in software
development rely on superimposing structure on
development
• A natural trend from the Waterfall model that risks to
end up in a bureaucratic structure
9
spm - ©2014 adolfo villafiorita - introduction to software project management
Motivation for Agile (2/2)
• Agile Software Development: A group of SW
development methodologies based on similar
principles:
– A management process that encourages frequent inspection
and adaptation
– Team work, self organization, accountability
– Rapid delivery of high-quality software
– A business approach that aligns development with customer
needs and company goals
10
spm - ©2014 adolfo villafiorita - introduction to software project management
The Agile Manifesto
Process and tools
Individuals and
interactions
over
Following a plan
Responding to change
over
Source: www.agilemanifesto.org
Comprehensive
documentation
Working software
over
Contract negotiation
Customer collaboration
over
11
spm - ©2014 adolfo villafiorita - introduction to software project management
Some Consequences
• Customer satisfaction
• Working software delivered frequently
• Working software is the principal measure of progress
• Late changes in requirements = no problem
• Close, daily cooperation
• Face2Face & Co-location
• Projects built around individuals
• Attention to technical excellence and good design
• Simplicity
• Adaptation
12
DSDM
spm - ©2014 adolfo villafiorita - introduction to software project management
Dynamic System Development Method
• It starts from the experience of RAD (Rapid Application
Development)
• Key considerations:
– people are the key to project success
– change is inevitable
– no software is perfect the first time it is released
• Standardized and supported by a consortium
14
spm - ©2014 adolfo villafiorita - introduction to software project management
DSDM
15
Pre-Project
Feasibility
Foundations
Exploration
Engineering
Incremental
Deployment
Post-Project
Extreme
Programming
spm - ©2014 adolfo villafiorita - introduction to software project management
Extreme Programming
• XP takes proven practices to the extreme
– If testing is good, let everybody test all the time
– If code reviews are good, review all the time
– If design is good, refactor all the time
– If integration testing is good, integrate all the time
– If simplicity is good, do the simplest thing that could possibly
work
– If short iterations are good, make them really, really short
• XP is based on:
– values
– practices
– process
17
spm - ©2014 adolfo villafiorita - introduction to software project management
XP values
• Communication: open and honest
• Feedback: honest and rapid (close the look quickly to
make feedback effective)
• Simplicity: K.I.S.S.
• Courage: take the right decisions, even if they are
difficult (if it can’t be done, say it!)
18
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Process
19
Development
Acceptance
Test
Plan
Releases
Spike
Software
Release
Prototype
User Stories
Write User
Stories
[done]
[not done]
Iteration
Planning
Iteration
• Planning
• Management
• Design
• Coding
• Testing
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Planning
• User stories are written
• Release planning creates the release schedule
• Make frequent small releases
• The project is divided into iterations
• Iteration planning starts each iteration
20
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Management
• Give the team a dedicated open work space
• Set a sustainable pace
• A stand up meeting starts each day
• The Project Velocity is measured
• Move people around
• Fix XP when it breaks
21
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Design
• Simplicity
• Choose a system metaphor
• Use CRC cards for design sessions
• Create spike solutions to reduce risk
• No functionality is added early
• Refactor whenever and wherever possible
22
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Coding
• The customer is always available
• Code must be written to agreed standards
• Code the unit test first
• All production code is pair programmed
• Only one pair integrates code at a time
• Integrate often
• Set up a dedicated integration computer
• Use collective ownership
23
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Testing
• All code must have unit tests
• All code must pass all unit tests before it can be
released
• When a bug is found tests are created
• Acceptance tests are run often and the score is
published
24
spm - ©2014 adolfo villafiorita - introduction to software project management
Pair Programming
• Two programmers work on the same screen/keyboard
(the Driver and the Navigator)
• Some considerations:
– About 15% less output than 2 solo programmers
– Continuous code review: better design, fewer defects
– Confidence to add to or change the system
– Discipline to always test and refactor
– Teach each other how the system works (reduced staffing
risks)
– Learn from partner’s knowledge and experience (enhances
technical skills)
25
spm - ©2014 adolfo villafiorita - introduction to software project management
Simple design
• Do the simplest thing that could possibly work
• Passes all the tests
• No duplicate code
• States every intention
• Fewest possible classes and methods
26
spm - ©2014 adolfo villafiorita - introduction to software project management
Refactoring
• Design becomes everybody’s daily business
• Continuously improve quality of the code
• Unit Tests and Pair Programming give courage
• Consequences:
– Fast development speed
– Code becomes easy to change
27
spm - ©2014 adolfo villafiorita - introduction to software project management
Why XP works
• Light-weight: discipline without bureaucracy
• Under stress, people do what is easiest
• All XP practices have short-term benefits as well as
long-term benefits
• Development as a Conversation
• The code is the documentation
• XP is fun
28
spm - ©2014 adolfo villafiorita - introduction to software project management
XP Criticism
• Too many changes = higher costs
• “Scope creep” beyond what is agreed at the beginning
of the project
• Requirements continuously updated
• No “Big Design” upfront
• Customer representative = single point of failure
• Generates stress
• Risk of non-technical representative dictating technical
choices
29
Scrum
spm - ©2014 adolfo villafiorita - introduction to software project management
Scrum Approach
A team approach in which all
players move together towards the
same goal, setting the rhythm and
adapating to change similar to
what happens in rugby
31
spm - ©2014 adolfo villafiorita - introduction to software project management
Scrum Principles
• Built-in instability: broad goals and general strategic directions
• Self-organizing project teams
• Overlapping development phases
• Multilearning, so that the team can learn both from internal and
external sources and adapt quickly to changing conditions and
environments.
• Subtle control: steer the project without interfering too much (e.g.,
selecting the right people for the job, creating an open environment,
tolerating and anticipating mistakes).
• Organizational transfer of learning: by ensuring that the know-
how acquired in a project is transferred and reused in other projects.
32
33
source
• Nielsen Media
• First American Real Estate
• BMC Software
• Ipswitch
• John Deere
• Lexis Nexis
• Intuit
• Sabre
• Salesforce.com
• Time Warner
• BBC
• Microsoft
• Yahoo
• Google
• Electronic Arts
• IBM
• Lockheed Martin
• Philips
• Turner Broadcasting
• Oce
• Siemens
• Nokia
• Capital One
Scrum has been used by:
34
source
• the Joint Strike Fighter
• Video game development
• FDA-approved, life-critical systems
• Satellite-control software
• Websites
• Handheld software
• Mobile phones
• Network switching applications
• ISV applications
• Some of the largest applications in use
• Commercial software
• In-house development
• Contract development
• Fixed-price projects
• Financial applications
• ISO 9001-certified applications
• Embedded systems
• 24x7 systems with 99.999% uptime
requirements
Scrum has been used for:
The Scrum Roles
spm - ©2014 adolfo villafiorita - introduction to software project management
Scrum Roles in One Slide
• Scrum Master
– Facilitator, ensures Scrum is applied and the team can operate
and work
– Shields team from external interferences
• Product owner
– Defines the features of the product, decides priorities, accepts
or rejects work
• Team
– Self organized, ideally full-time, small (5-9)
36
The Scrum Master
• Represents management to the project
• Responsible for enacting Scrum values and practices
• Removes impediments
• Ensure that the team is fully functional and productive
• Enable close cooperation across all roles and functions
• Shield the team from external interferences
37
source
Product owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as needed
• Accept or reject work results
38
source
The team
• Typically 5-9 people
• Cross-functional:
– Programmers, testers, user experience designers, etc.
• Members should be full-time
– May be exceptions (e.g., database administrator)
• Teams are self-organizing
– Ideally, no titles but rarely a possibility
• Membership should change only between sprints
39
source
spm - ©2014 adolfo villafiorita - introduction to software project management
Team of Teams
• For large projects teams of teams can be organized:
40
Team A Team B Team C
Team of Teams
The Scrum Process
spm - ©2014 adolfo villafiorita - introduction to software project management
The Scrum Process
42
Plan
Iteration
Iteration
Daily
Scrum
Burndown
Update
Retrospective
Product
Backlog
Scrum Board Potentially
Shippable
Product
Write
Backlog
[not done]
[done]
The Product Backlog
User Stories
• The three Cs:
– Cards: traditionally on note
cards with annotations
– Conversation: details
behind the story come out
during conversation with the
product owner
– Confirmation: details take
the form acceptance tests
confirm the story was
understood right and coded
correctly
As a Client of the
Hotel I want to cancel
a reservation
44
source
As a <role> I want
to achieve <goal>
(so that <reason>)
What Makes a Good Story
Independent to simplify estimation
Negotiable stories are not contracts;
leave space for negotiation
Valuable to the customer
Estimatable they are the basis for
planning
Sized Appropriately break them into smaller
ones, if necessary
Testable
45
source
Some Advantages
• Easy to comprehend and manage
• Right size for planning (btw, similar approach to FP)
• Encourage iterative development
• They support opportunistic development (top-down
and bottom-up approaches)
• Stories support participatory design
• Verifiable
46
source
spm - ©2014 adolfo villafiorita - introduction to software project management
The Product backlog
• The Product Backlog is a list of user stories, possibly
annotated with additional information, such as:
– Initiator
– Priority
– Cost
– Owner
– How to demo/test
– …
47
Sprint
Planning
spm - ©2014 adolfo villafiorita - introduction to software project management
Sprints
• Scrum projects make progress in a series of “sprints”
lasting between 2 and 4 weeks
• Emphasis on rhythm
• Product backlog items are allocated and developed
during a sprint
• Once items are allocated, during a sprint no changes
are possible
• Plan sprint durations around how long you can
commit to keeping change out of the sprint
49
spm - ©2014 adolfo villafiorita - introduction to software project management
Sprint Planning
• Goal: collaboratively decide what stories end up in the sprint
• Activities involved
– Prioritize: decide what the sprint will focus on (short narrative) and
select stories accordingly
– Break users stories into tasks
– Estimate using planning poker (Delphi)
• Constraint: put all (and only) the stories the team can
commit to
50
As a Client of the
Hotel I want to cancel
a reservation
Implement Reservation Class
…
Add view for cancelation
Estimating
• Effort:
– simpler for people accustomed to traditional software
development practices
• Story points:
– abstract dimensionless measurements
– provide a relative ordering of user stories
– allows to compute velocity (how fast the team implements
story points) and, therefore, to the number of story points
allocatable in a sprint
– defines an “algebra” of story points (10 story points require the
same time as two 5 story points user stories)
51
source
© Mountain Goat Software, LLC
®
Planning Poker® - an example
Estimator Round 1
Vadim 8
Susan 3
Ann 2
Chris 5
Round 2
5
5
5
8
17
52
http://store.mountaingoatsoftware.com/products/planning-poker-cards
Running the Sprint
and Tracking
spm - ©2014 adolfo villafiorita - introduction to software project management
Scrum Tracking
• Two main goals:
– Keep track of the work (todo, doing, done, blocked)
– Measure the team “velocity” (sprints of fixed length means
velocity is the important measure)
54
TODO DOING
Blocked/Next Iteration
DONE
US1
US6
US156
US4
US10
US28
US26
US2
US7
US17
US13
US111
US121
Day
TASK
ID
RESP. TASK Actual
Points
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1 1 Migration of events data in production database 10 2 2 2 2 1 1 1 1 1
2 1 Table ordering through javascript/Ajax 5 5 0 0 0 0 0 0 0 0
3 1 Views with pending admissions 3 3 3 3 3 3 0 0 0 0
4 1 Views with pending renewals 3 3 3 3 3 3 0 0 0 0
5 1 Views with inactive members 3 3 3 3 3 3 0 0 0 0
6 1 Export data to CSV for merge printing 3 3 1 1 1 1 1 1 1 1
7 1 “Approximated” bit on dates related to events (only
the year counts)
2 2 2 2 2 2 2 2 2 2
8 1 Management of interest bits 1 1 1 1 1 1 1 1 0 0
9 1 Management of remarks field 1 1 1 1 1 1 1 1 0 0
10 1 User Interface/Layout 2 2 0 0 0 0 0 0
11 1 Table paging 5 5 5 0 0 0 0 0
12 1 Fix problem with search and locale/ 3 3 3 3 3 3 3 3
13 1 Make search box standard on all tables 7.5 7.5 0 0 0 0 0
14 1 Application title 2 0 0 0 0 0
15 5 Authentication - with roles and multiple users 15 7 0
16 5 Distinguish actions from links 3 3 3
Remaining Days 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17
Remaining Points 41 23 16 33.5 33.5 18 9 27 17 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ideal burndown 31 28.7857142857143
26.5714285714286
24.3571428571429
22.1428571428571
19.9285714285714
17.7142857142857
15.5 13.2857142857143
11.0714285714286
8.85714285714285
6.64285714285713
4.42857142857142
2.2142857142857
-0.0000000000000106581410364015
-2.21428571428573
-4.42857142857144
-6.64285714285715
-8.85714285714287
-11.0714285714286
-13.2857142857143
-15.5-17.7142857142857
-19.9285714285714
-22.1428571428572
-24.3571428571429
-26.5714285714286
-28.7857142857143
-31 -33.2142857142857
-35.4285714285715
-37.6428571428
Deviation -10 5.78571428571428
10.5714285714286
-9.14285714285715
-11.3571428571429
1.92857142857142
8.71428571428571
-11.5-3.71428571428572
1.07142857142856
8.85714285714285
6.64285714285713
4.42857142857142
2.2142857142857
-0.0000000000000106581410364015
-2.21428571428573
-4.42857142857144
-6.64285714285715
-8.85714285714287
-11.0714285714286
-13.2857142857143
-15.5-17.7142857142857
-19.9285714285714
-22.1428571428572
-24.3571428571429
-26.5714285714286
-28.7857142857143
-31 -33.2142857142857
-35.4285714285715
-37.6428571428
Sprint Detail
Sprint Number 1
Duration 14
Allocated Points 31
Ideal Average Point Burndown 2.21428571428571
Here put the remaining points
-10
-1
7
16
24
33
41
50
Day 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-10
6
11
-9
2
9
-4
1
9
7
4
2
-0
-2
-4
-7
-9
31
29
27
24
22
20
18
16
13
11
9
7
4
2
-0
-2
-4
-7
-9
41
23
16
33.5 33.5
18
9
27
17
10
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Remaining Points Ideal burndown Deviation
Sprint Detail
Page !1
spm - ©2014 adolfo villafiorita - introduction to software project management
Adapting/Computing Speed
• What if:
– Speed is higher than expected: add stories
– Speed is lower than expected: remove stories
• Speed is estimated according to historical data
• Velocity tends to converge after a few sprints
• Initial estimation is a guess or uses effort
55
spm - ©2014 adolfo villafiorita - introduction to software project management
e⇥ciencyi =
actual velocityi
actual efforti
est. velocity(i+1) = e⇥ciencyi ⇥ effort(i+1)
Adapting/Computing Speed
• Between sprints, it is possible to accommodate for
changes in effort, by inserting effort in the estimation:
56
Managing the Scrum
Process
spm - ©2014 adolfo villafiorita - introduction to software project management
The Daily Scrum
• A daily 15-minutes stand-up meeting for the whole
team (including product owner)
• Everyone is invited (but only to listening)
• Emphasizes commitment
• Answer to three questions:
– What did you do yesterday?
– What will you do today?
– What is blocking your work? (impediments)
• Impediments become the responsibility of the Scrum
Master
58
spm - ©2014 adolfo villafiorita - introduction to software project management
The Sprint Review
• Each sprint ends with a demoable product (potentially
shippable product): a piece of software, a mockup, a
manual, …
• The Sprint Review has the goal of demoing the output
of the sprint
• Everyone participates
• Informal if focuses on demos (rather than slides)
59
spm - ©2014 adolfo villafiorita - introduction to software project management
The Sprint Retrospective
• After every sprint the team takes a look at what is and
is not working
• Not very long: 15–30 minutes
• Whole team participates
• One approach is start-stop-continue:
– What we need to start doing
– What we should stop doing
– What we should continue doing
60
spm - ©2014 adolfo villafiorita - introduction to software project management
Software Development Practices
• According to Cohn SCRUM entails the adoption of
some practices typical of Agile processes such as
– Pair programming
– Test-first approach
– Automated testing and integration
– Refactoring
• ... they are not necessary, but make SCRUM really
effective
61

More Related Content

Similar to C07.03-05-SW-DevelopmentProcess-Agile.key.pdf

Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life CycleKumar
 
Avoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile WorldAvoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile WorldLeadingAgile
 
Introduction to lean and agile
Introduction to lean and agileIntroduction to lean and agile
Introduction to lean and agileTerry Bunio
 
Zen tao introduction
Zen tao introductionZen tao introduction
Zen tao introductionSpotline mart
 
Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteGeoff Halprin
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.pptHODCOMPUTER10
 
Project Management in Information Technologies
Project Management in Information TechnologiesProject Management in Information Technologies
Project Management in Information TechnologiesC.T.Co
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 
Agile methods and safety critical software - Peter Gardner
Agile methods and safety critical software - Peter GardnerAgile methods and safety critical software - Peter Gardner
Agile methods and safety critical software - Peter GardnerAdaCore
 
Agile and Secure
Agile and SecureAgile and Secure
Agile and SecureDenim Group
 
Think future technologies – corporate presentation (public)
Think future technologies – corporate presentation (public)Think future technologies – corporate presentation (public)
Think future technologies – corporate presentation (public)Tft Us
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
Software development life cycles (sdlc)
Software development life cycles (sdlc)Software development life cycles (sdlc)
Software development life cycles (sdlc)Yuriy Kravchenko
 
Lviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM framework
Lviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM frameworkLviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM framework
Lviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM frameworkLviv Startup Club
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxNashet Ali
 

Similar to C07.03-05-SW-DevelopmentProcess-Agile.key.pdf (20)

module I.pptx
module I.pptxmodule I.pptx
module I.pptx
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life Cycle
 
Avoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile WorldAvoiding the Pitfalls of Capitalizing Software in an Agile World
Avoiding the Pitfalls of Capitalizing Software in an Agile World
 
Continuous Delivery Maturity Model
Continuous Delivery Maturity ModelContinuous Delivery Maturity Model
Continuous Delivery Maturity Model
 
Introduction to lean and agile
Introduction to lean and agileIntroduction to lean and agile
Introduction to lean and agile
 
Zen tao introduction
Zen tao introductionZen tao introduction
Zen tao introduction
 
Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynote
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.ppt
 
Project Management in Information Technologies
Project Management in Information TechnologiesProject Management in Information Technologies
Project Management in Information Technologies
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Agile methods and safety critical software - Peter Gardner
Agile methods and safety critical software - Peter GardnerAgile methods and safety critical software - Peter Gardner
Agile methods and safety critical software - Peter Gardner
 
Agile and Secure
Agile and SecureAgile and Secure
Agile and Secure
 
Think future technologies – corporate presentation (public)
Think future technologies – corporate presentation (public)Think future technologies – corporate presentation (public)
Think future technologies – corporate presentation (public)
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
Automation and Technical Debt
Automation and Technical DebtAutomation and Technical Debt
Automation and Technical Debt
 
Software development life cycles (sdlc)
Software development life cycles (sdlc)Software development life cycles (sdlc)
Software development life cycles (sdlc)
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Lviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM framework
Lviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM frameworkLviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM framework
Lviv PMDay: Олександр Ліпський & Анна Лазор Introduction to DSDM framework
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptx
 

More from ssuser8babb7

C03.04c-InDepth-OP.key.pdf
C03.04c-InDepth-OP.key.pdfC03.04c-InDepth-OP.key.pdf
C03.04c-InDepth-OP.key.pdfssuser8babb7
 
C07.01-02-SW-DevelopmentProcess.key.pdf
C07.01-02-SW-DevelopmentProcess.key.pdfC07.01-02-SW-DevelopmentProcess.key.pdf
C07.01-02-SW-DevelopmentProcess.key.pdfssuser8babb7
 
C06.00-ProjectPricing.key.pdf
C06.00-ProjectPricing.key.pdfC06.00-ProjectPricing.key.pdf
C06.00-ProjectPricing.key.pdfssuser8babb7
 
C05.03-Communication.key.pdf
C05.03-Communication.key.pdfC05.03-Communication.key.pdf
C05.03-Communication.key.pdfssuser8babb7
 
C05.02-OrganizationalStructures.key.pdf
C05.02-OrganizationalStructures.key.pdfC05.02-OrganizationalStructures.key.pdf
C05.02-OrganizationalStructures.key.pdfssuser8babb7
 
C04.02-RiskManagement.key.pdf
C04.02-RiskManagement.key.pdfC04.02-RiskManagement.key.pdf
C04.02-RiskManagement.key.pdfssuser8babb7
 
C03.09-AgileMonitoringAndControl.key.pdf
C03.09-AgileMonitoringAndControl.key.pdfC03.09-AgileMonitoringAndControl.key.pdf
C03.09-AgileMonitoringAndControl.key.pdfssuser8babb7
 
C04.01-ManagingChanges.key.pdf
C04.01-ManagingChanges.key.pdfC04.01-ManagingChanges.key.pdf
C04.01-ManagingChanges.key.pdfssuser8babb7
 
C03.10-ProjectClosing.key.pdf
C03.10-ProjectClosing.key.pdfC03.10-ProjectClosing.key.pdf
C03.10-ProjectClosing.key.pdfssuser8babb7
 
C03.08-09-ExecutionMonitoringControl.key.pdf
C03.08-09-ExecutionMonitoringControl.key.pdfC03.08-09-ExecutionMonitoringControl.key.pdf
C03.08-09-ExecutionMonitoringControl.key.pdfssuser8babb7
 
C03.07-BudgetingAndAccounting.key.pdf
C03.07-BudgetingAndAccounting.key.pdfC03.07-BudgetingAndAccounting.key.pdf
C03.07-BudgetingAndAccounting.key.pdfssuser8babb7
 
C03.06-OptimizingThePlan.key.pdf
C03.06-OptimizingThePlan.key.pdfC03.06-OptimizingThePlan.key.pdf
C03.06-OptimizingThePlan.key.pdfssuser8babb7
 
C03.05-Scheduling.key.pdf
C03.05-Scheduling.key.pdfC03.05-Scheduling.key.pdf
C03.05-Scheduling.key.pdfssuser8babb7
 
C03.04-Estimating.key.pdf
C03.04-Estimating.key.pdfC03.04-Estimating.key.pdf
C03.04-Estimating.key.pdfssuser8babb7
 

More from ssuser8babb7 (14)

C03.04c-InDepth-OP.key.pdf
C03.04c-InDepth-OP.key.pdfC03.04c-InDepth-OP.key.pdf
C03.04c-InDepth-OP.key.pdf
 
C07.01-02-SW-DevelopmentProcess.key.pdf
C07.01-02-SW-DevelopmentProcess.key.pdfC07.01-02-SW-DevelopmentProcess.key.pdf
C07.01-02-SW-DevelopmentProcess.key.pdf
 
C06.00-ProjectPricing.key.pdf
C06.00-ProjectPricing.key.pdfC06.00-ProjectPricing.key.pdf
C06.00-ProjectPricing.key.pdf
 
C05.03-Communication.key.pdf
C05.03-Communication.key.pdfC05.03-Communication.key.pdf
C05.03-Communication.key.pdf
 
C05.02-OrganizationalStructures.key.pdf
C05.02-OrganizationalStructures.key.pdfC05.02-OrganizationalStructures.key.pdf
C05.02-OrganizationalStructures.key.pdf
 
C04.02-RiskManagement.key.pdf
C04.02-RiskManagement.key.pdfC04.02-RiskManagement.key.pdf
C04.02-RiskManagement.key.pdf
 
C03.09-AgileMonitoringAndControl.key.pdf
C03.09-AgileMonitoringAndControl.key.pdfC03.09-AgileMonitoringAndControl.key.pdf
C03.09-AgileMonitoringAndControl.key.pdf
 
C04.01-ManagingChanges.key.pdf
C04.01-ManagingChanges.key.pdfC04.01-ManagingChanges.key.pdf
C04.01-ManagingChanges.key.pdf
 
C03.10-ProjectClosing.key.pdf
C03.10-ProjectClosing.key.pdfC03.10-ProjectClosing.key.pdf
C03.10-ProjectClosing.key.pdf
 
C03.08-09-ExecutionMonitoringControl.key.pdf
C03.08-09-ExecutionMonitoringControl.key.pdfC03.08-09-ExecutionMonitoringControl.key.pdf
C03.08-09-ExecutionMonitoringControl.key.pdf
 
C03.07-BudgetingAndAccounting.key.pdf
C03.07-BudgetingAndAccounting.key.pdfC03.07-BudgetingAndAccounting.key.pdf
C03.07-BudgetingAndAccounting.key.pdf
 
C03.06-OptimizingThePlan.key.pdf
C03.06-OptimizingThePlan.key.pdfC03.06-OptimizingThePlan.key.pdf
C03.06-OptimizingThePlan.key.pdf
 
C03.05-Scheduling.key.pdf
C03.05-Scheduling.key.pdfC03.05-Scheduling.key.pdf
C03.05-Scheduling.key.pdf
 
C03.04-Estimating.key.pdf
C03.04-Estimating.key.pdfC03.04-Estimating.key.pdf
C03.04-Estimating.key.pdf
 

Recently uploaded

Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 

Recently uploaded (20)

Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 

C07.03-05-SW-DevelopmentProcess-Agile.key.pdf

  • 1. Agile Software Development Credits to: Aaron Ciaghi, Pietro Molini Some Material from Mike Cohn and Mountain Goat Software
  • 2. spm - ©2014 adolfo villafiorita - introduction to software project management Outline • A short talk about waste • Intro to Agile Software Development • Examples of Agile Development Processes – DSDM (overview) – eXtreme Programming (more detailed) – Scrum (in depth) 2
  • 3. A short talk about waste
  • 4. spm - ©2014 adolfo villafiorita - introduction to software project management Lean Manufacturing • Lean manufacturing is a production practice that considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination. • Value = what the user is willing to pay for • Derived mostly from the Toyota Production System (hence the term Toyotism is also prevalent) and identified as "Lean" only in the 1990s • Economical motivations in adapting production to demand, high cost of land (storage), economies of scale to improve competitiveness 4
  • 5. 5 無駄 (muda - unnecessary) 無理 (muri – work that can be avoided) 斑 (mura – unevennes)
  • 6. spm - ©2014 adolfo villafiorita - introduction to software project management TIMWOOD – types of 無駄 • Transportation: moving products that is not actually required to perform the processing • Inventory: all components, work in progress, and finished product not being processed • Motion: people or equipment moving or walking more than is required to perform the processing • Waiting: waiting for the next production step • Overproduction: production ahead of demand • Over Processing: resulting from poor tool or product design creating activity • Defects: the effort involved in inspecting for and fixing defects 6
  • 7. spm - ©2014 adolfo villafiorita - introduction to software project management Causes of Waste in Software Development • Accurate estimation, effective planning, management and control, and deterministic delivery of quality software has always been subject of great debate • Some of the causes include: – Immateriality: software is difficult to measure – Flexibility: “why don’t we add this nice feature?” – Complexity – New: maturity of engineering techniques 7
  • 8. spm - ©2014 adolfo villafiorita - introduction to software project management Software Development Complexity 8 Simple Complex Anarchy Complicated Technology Requirements Far from Agreement Close to Agreement Close to Certainty Far from Certainty Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.
  • 9. spm - ©2014 adolfo villafiorita - introduction to software project management Motivation for Agile (1/2) • Traditional approaches to control complexity in software development rely on superimposing structure on development • A natural trend from the Waterfall model that risks to end up in a bureaucratic structure 9
  • 10. spm - ©2014 adolfo villafiorita - introduction to software project management Motivation for Agile (2/2) • Agile Software Development: A group of SW development methodologies based on similar principles: – A management process that encourages frequent inspection and adaptation – Team work, self organization, accountability – Rapid delivery of high-quality software – A business approach that aligns development with customer needs and company goals 10
  • 11. spm - ©2014 adolfo villafiorita - introduction to software project management The Agile Manifesto Process and tools Individuals and interactions over Following a plan Responding to change over Source: www.agilemanifesto.org Comprehensive documentation Working software over Contract negotiation Customer collaboration over 11
  • 12. spm - ©2014 adolfo villafiorita - introduction to software project management Some Consequences • Customer satisfaction • Working software delivered frequently • Working software is the principal measure of progress • Late changes in requirements = no problem • Close, daily cooperation • Face2Face & Co-location • Projects built around individuals • Attention to technical excellence and good design • Simplicity • Adaptation 12
  • 13. DSDM
  • 14. spm - ©2014 adolfo villafiorita - introduction to software project management Dynamic System Development Method • It starts from the experience of RAD (Rapid Application Development) • Key considerations: – people are the key to project success – change is inevitable – no software is perfect the first time it is released • Standardized and supported by a consortium 14
  • 15. spm - ©2014 adolfo villafiorita - introduction to software project management DSDM 15 Pre-Project Feasibility Foundations Exploration Engineering Incremental Deployment Post-Project
  • 17. spm - ©2014 adolfo villafiorita - introduction to software project management Extreme Programming • XP takes proven practices to the extreme – If testing is good, let everybody test all the time – If code reviews are good, review all the time – If design is good, refactor all the time – If integration testing is good, integrate all the time – If simplicity is good, do the simplest thing that could possibly work – If short iterations are good, make them really, really short • XP is based on: – values – practices – process 17
  • 18. spm - ©2014 adolfo villafiorita - introduction to software project management XP values • Communication: open and honest • Feedback: honest and rapid (close the look quickly to make feedback effective) • Simplicity: K.I.S.S. • Courage: take the right decisions, even if they are difficult (if it can’t be done, say it!) 18
  • 19. spm - ©2014 adolfo villafiorita - introduction to software project management XP Process 19 Development Acceptance Test Plan Releases Spike Software Release Prototype User Stories Write User Stories [done] [not done] Iteration Planning Iteration • Planning • Management • Design • Coding • Testing
  • 20. spm - ©2014 adolfo villafiorita - introduction to software project management XP Planning • User stories are written • Release planning creates the release schedule • Make frequent small releases • The project is divided into iterations • Iteration planning starts each iteration 20
  • 21. spm - ©2014 adolfo villafiorita - introduction to software project management XP Management • Give the team a dedicated open work space • Set a sustainable pace • A stand up meeting starts each day • The Project Velocity is measured • Move people around • Fix XP when it breaks 21
  • 22. spm - ©2014 adolfo villafiorita - introduction to software project management XP Design • Simplicity • Choose a system metaphor • Use CRC cards for design sessions • Create spike solutions to reduce risk • No functionality is added early • Refactor whenever and wherever possible 22
  • 23. spm - ©2014 adolfo villafiorita - introduction to software project management XP Coding • The customer is always available • Code must be written to agreed standards • Code the unit test first • All production code is pair programmed • Only one pair integrates code at a time • Integrate often • Set up a dedicated integration computer • Use collective ownership 23
  • 24. spm - ©2014 adolfo villafiorita - introduction to software project management XP Testing • All code must have unit tests • All code must pass all unit tests before it can be released • When a bug is found tests are created • Acceptance tests are run often and the score is published 24
  • 25. spm - ©2014 adolfo villafiorita - introduction to software project management Pair Programming • Two programmers work on the same screen/keyboard (the Driver and the Navigator) • Some considerations: – About 15% less output than 2 solo programmers – Continuous code review: better design, fewer defects – Confidence to add to or change the system – Discipline to always test and refactor – Teach each other how the system works (reduced staffing risks) – Learn from partner’s knowledge and experience (enhances technical skills) 25
  • 26. spm - ©2014 adolfo villafiorita - introduction to software project management Simple design • Do the simplest thing that could possibly work • Passes all the tests • No duplicate code • States every intention • Fewest possible classes and methods 26
  • 27. spm - ©2014 adolfo villafiorita - introduction to software project management Refactoring • Design becomes everybody’s daily business • Continuously improve quality of the code • Unit Tests and Pair Programming give courage • Consequences: – Fast development speed – Code becomes easy to change 27
  • 28. spm - ©2014 adolfo villafiorita - introduction to software project management Why XP works • Light-weight: discipline without bureaucracy • Under stress, people do what is easiest • All XP practices have short-term benefits as well as long-term benefits • Development as a Conversation • The code is the documentation • XP is fun 28
  • 29. spm - ©2014 adolfo villafiorita - introduction to software project management XP Criticism • Too many changes = higher costs • “Scope creep” beyond what is agreed at the beginning of the project • Requirements continuously updated • No “Big Design” upfront • Customer representative = single point of failure • Generates stress • Risk of non-technical representative dictating technical choices 29
  • 30. Scrum
  • 31. spm - ©2014 adolfo villafiorita - introduction to software project management Scrum Approach A team approach in which all players move together towards the same goal, setting the rhythm and adapating to change similar to what happens in rugby 31
  • 32. spm - ©2014 adolfo villafiorita - introduction to software project management Scrum Principles • Built-in instability: broad goals and general strategic directions • Self-organizing project teams • Overlapping development phases • Multilearning, so that the team can learn both from internal and external sources and adapt quickly to changing conditions and environments. • Subtle control: steer the project without interfering too much (e.g., selecting the right people for the job, creating an open environment, tolerating and anticipating mistakes). • Organizational transfer of learning: by ensuring that the know- how acquired in a project is transferred and reused in other projects. 32
  • 33. 33 source • Nielsen Media • First American Real Estate • BMC Software • Ipswitch • John Deere • Lexis Nexis • Intuit • Sabre • Salesforce.com • Time Warner • BBC • Microsoft • Yahoo • Google • Electronic Arts • IBM • Lockheed Martin • Philips • Turner Broadcasting • Oce • Siemens • Nokia • Capital One Scrum has been used by:
  • 34. 34 source • the Joint Strike Fighter • Video game development • FDA-approved, life-critical systems • Satellite-control software • Websites • Handheld software • Mobile phones • Network switching applications • ISV applications • Some of the largest applications in use • Commercial software • In-house development • Contract development • Fixed-price projects • Financial applications • ISO 9001-certified applications • Embedded systems • 24x7 systems with 99.999% uptime requirements Scrum has been used for:
  • 36. spm - ©2014 adolfo villafiorita - introduction to software project management Scrum Roles in One Slide • Scrum Master – Facilitator, ensures Scrum is applied and the team can operate and work – Shields team from external interferences • Product owner – Defines the features of the product, decides priorities, accepts or rejects work • Team – Self organized, ideally full-time, small (5-9) 36
  • 37. The Scrum Master • Represents management to the project • Responsible for enacting Scrum values and practices • Removes impediments • Ensure that the team is fully functional and productive • Enable close cooperation across all roles and functions • Shield the team from external interferences 37 source
  • 38. Product owner • Define the features of the product • Decide on release date and content • Be responsible for the profitability of the product (ROI) • Prioritize features according to market value • Adjust features and priority every iteration, as needed • Accept or reject work results 38 source
  • 39. The team • Typically 5-9 people • Cross-functional: – Programmers, testers, user experience designers, etc. • Members should be full-time – May be exceptions (e.g., database administrator) • Teams are self-organizing – Ideally, no titles but rarely a possibility • Membership should change only between sprints 39 source
  • 40. spm - ©2014 adolfo villafiorita - introduction to software project management Team of Teams • For large projects teams of teams can be organized: 40 Team A Team B Team C Team of Teams
  • 42. spm - ©2014 adolfo villafiorita - introduction to software project management The Scrum Process 42 Plan Iteration Iteration Daily Scrum Burndown Update Retrospective Product Backlog Scrum Board Potentially Shippable Product Write Backlog [not done] [done]
  • 44. User Stories • The three Cs: – Cards: traditionally on note cards with annotations – Conversation: details behind the story come out during conversation with the product owner – Confirmation: details take the form acceptance tests confirm the story was understood right and coded correctly As a Client of the Hotel I want to cancel a reservation 44 source As a <role> I want to achieve <goal> (so that <reason>)
  • 45. What Makes a Good Story Independent to simplify estimation Negotiable stories are not contracts; leave space for negotiation Valuable to the customer Estimatable they are the basis for planning Sized Appropriately break them into smaller ones, if necessary Testable 45 source
  • 46. Some Advantages • Easy to comprehend and manage • Right size for planning (btw, similar approach to FP) • Encourage iterative development • They support opportunistic development (top-down and bottom-up approaches) • Stories support participatory design • Verifiable 46 source
  • 47. spm - ©2014 adolfo villafiorita - introduction to software project management The Product backlog • The Product Backlog is a list of user stories, possibly annotated with additional information, such as: – Initiator – Priority – Cost – Owner – How to demo/test – … 47
  • 49. spm - ©2014 adolfo villafiorita - introduction to software project management Sprints • Scrum projects make progress in a series of “sprints” lasting between 2 and 4 weeks • Emphasis on rhythm • Product backlog items are allocated and developed during a sprint • Once items are allocated, during a sprint no changes are possible • Plan sprint durations around how long you can commit to keeping change out of the sprint 49
  • 50. spm - ©2014 adolfo villafiorita - introduction to software project management Sprint Planning • Goal: collaboratively decide what stories end up in the sprint • Activities involved – Prioritize: decide what the sprint will focus on (short narrative) and select stories accordingly – Break users stories into tasks – Estimate using planning poker (Delphi) • Constraint: put all (and only) the stories the team can commit to 50 As a Client of the Hotel I want to cancel a reservation Implement Reservation Class … Add view for cancelation
  • 51. Estimating • Effort: – simpler for people accustomed to traditional software development practices • Story points: – abstract dimensionless measurements – provide a relative ordering of user stories – allows to compute velocity (how fast the team implements story points) and, therefore, to the number of story points allocatable in a sprint – defines an “algebra” of story points (10 story points require the same time as two 5 story points user stories) 51 source
  • 52. © Mountain Goat Software, LLC ® Planning Poker® - an example Estimator Round 1 Vadim 8 Susan 3 Ann 2 Chris 5 Round 2 5 5 5 8 17 52 http://store.mountaingoatsoftware.com/products/planning-poker-cards
  • 54. spm - ©2014 adolfo villafiorita - introduction to software project management Scrum Tracking • Two main goals: – Keep track of the work (todo, doing, done, blocked) – Measure the team “velocity” (sprints of fixed length means velocity is the important measure) 54 TODO DOING Blocked/Next Iteration DONE US1 US6 US156 US4 US10 US28 US26 US2 US7 US17 US13 US111 US121 Day TASK ID RESP. TASK Actual Points 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 1 Migration of events data in production database 10 2 2 2 2 1 1 1 1 1 2 1 Table ordering through javascript/Ajax 5 5 0 0 0 0 0 0 0 0 3 1 Views with pending admissions 3 3 3 3 3 3 0 0 0 0 4 1 Views with pending renewals 3 3 3 3 3 3 0 0 0 0 5 1 Views with inactive members 3 3 3 3 3 3 0 0 0 0 6 1 Export data to CSV for merge printing 3 3 1 1 1 1 1 1 1 1 7 1 “Approximated” bit on dates related to events (only the year counts) 2 2 2 2 2 2 2 2 2 2 8 1 Management of interest bits 1 1 1 1 1 1 1 1 0 0 9 1 Management of remarks field 1 1 1 1 1 1 1 1 0 0 10 1 User Interface/Layout 2 2 0 0 0 0 0 0 11 1 Table paging 5 5 5 0 0 0 0 0 12 1 Fix problem with search and locale/ 3 3 3 3 3 3 3 3 13 1 Make search box standard on all tables 7.5 7.5 0 0 0 0 0 14 1 Application title 2 0 0 0 0 0 15 5 Authentication - with roles and multiple users 15 7 0 16 5 Distinguish actions from links 3 3 3 Remaining Days 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 Remaining Points 41 23 16 33.5 33.5 18 9 27 17 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Ideal burndown 31 28.7857142857143 26.5714285714286 24.3571428571429 22.1428571428571 19.9285714285714 17.7142857142857 15.5 13.2857142857143 11.0714285714286 8.85714285714285 6.64285714285713 4.42857142857142 2.2142857142857 -0.0000000000000106581410364015 -2.21428571428573 -4.42857142857144 -6.64285714285715 -8.85714285714287 -11.0714285714286 -13.2857142857143 -15.5-17.7142857142857 -19.9285714285714 -22.1428571428572 -24.3571428571429 -26.5714285714286 -28.7857142857143 -31 -33.2142857142857 -35.4285714285715 -37.6428571428 Deviation -10 5.78571428571428 10.5714285714286 -9.14285714285715 -11.3571428571429 1.92857142857142 8.71428571428571 -11.5-3.71428571428572 1.07142857142856 8.85714285714285 6.64285714285713 4.42857142857142 2.2142857142857 -0.0000000000000106581410364015 -2.21428571428573 -4.42857142857144 -6.64285714285715 -8.85714285714287 -11.0714285714286 -13.2857142857143 -15.5-17.7142857142857 -19.9285714285714 -22.1428571428572 -24.3571428571429 -26.5714285714286 -28.7857142857143 -31 -33.2142857142857 -35.4285714285715 -37.6428571428 Sprint Detail Sprint Number 1 Duration 14 Allocated Points 31 Ideal Average Point Burndown 2.21428571428571 Here put the remaining points -10 -1 7 16 24 33 41 50 Day 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -10 6 11 -9 2 9 -4 1 9 7 4 2 -0 -2 -4 -7 -9 31 29 27 24 22 20 18 16 13 11 9 7 4 2 -0 -2 -4 -7 -9 41 23 16 33.5 33.5 18 9 27 17 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Remaining Points Ideal burndown Deviation Sprint Detail Page !1
  • 55. spm - ©2014 adolfo villafiorita - introduction to software project management Adapting/Computing Speed • What if: – Speed is higher than expected: add stories – Speed is lower than expected: remove stories • Speed is estimated according to historical data • Velocity tends to converge after a few sprints • Initial estimation is a guess or uses effort 55
  • 56. spm - ©2014 adolfo villafiorita - introduction to software project management e⇥ciencyi = actual velocityi actual efforti est. velocity(i+1) = e⇥ciencyi ⇥ effort(i+1) Adapting/Computing Speed • Between sprints, it is possible to accommodate for changes in effort, by inserting effort in the estimation: 56
  • 58. spm - ©2014 adolfo villafiorita - introduction to software project management The Daily Scrum • A daily 15-minutes stand-up meeting for the whole team (including product owner) • Everyone is invited (but only to listening) • Emphasizes commitment • Answer to three questions: – What did you do yesterday? – What will you do today? – What is blocking your work? (impediments) • Impediments become the responsibility of the Scrum Master 58
  • 59. spm - ©2014 adolfo villafiorita - introduction to software project management The Sprint Review • Each sprint ends with a demoable product (potentially shippable product): a piece of software, a mockup, a manual, … • The Sprint Review has the goal of demoing the output of the sprint • Everyone participates • Informal if focuses on demos (rather than slides) 59
  • 60. spm - ©2014 adolfo villafiorita - introduction to software project management The Sprint Retrospective • After every sprint the team takes a look at what is and is not working • Not very long: 15–30 minutes • Whole team participates • One approach is start-stop-continue: – What we need to start doing – What we should stop doing – What we should continue doing 60
  • 61. spm - ©2014 adolfo villafiorita - introduction to software project management Software Development Practices • According to Cohn SCRUM entails the adoption of some practices typical of Agile processes such as – Pair programming – Test-first approach – Automated testing and integration – Refactoring • ... they are not necessary, but make SCRUM really effective 61