scrum design pattern
TRANSCRIPT
-
8/3/2019 SCRUM Design Pattern
1/56
SCRUM - Design Pattern 1
SCRUM A Pattern Language for
Hyperproductive SoftwareDevelopment
Design Patterns
Summer 2002
Syracuse University
Srinivasa NeeruduVivekananthan Murugesan
-
8/3/2019 SCRUM Design Pattern
2/56
SCRUM - Design Pattern 2
Software Development
Do we have a fixed set of rules for
Software Development?
Linear Sequential Model Waterfall Model
Prototyping Model Spiral Model
Iterative Model
CMM [Capability Maturity Model]
-
8/3/2019 SCRUM Design Pattern
3/56
SCRUM - Design Pattern 3
Waterfall Model
-
8/3/2019 SCRUM Design Pattern
4/56
SCRUM - Design Pattern 4
Spiral Model
-
8/3/2019 SCRUM Design Pattern
5/56
SCRUM - Design Pattern 5
SCRUM
-
8/3/2019 SCRUM Design Pattern
6/56
SCRUM - Design Pattern 6
Comparison
-
8/3/2019 SCRUM Design Pattern
7/56
SCRUM - Design Pattern 7
Incorrect Assumptions
Repeatable/Defined Problem:
There is a step or steps to capturerequirements.
BUT
Systems have different applications,different environment, different end users,etc.
-
8/3/2019 SCRUM Design Pattern
8/56
SCRUM - Design Pattern 8
Incorrect Assumptions(2)
Repeatable/Defined Solution:
System Architecture can be fully specified.
BUT
In reality, it is evolved partly because of
missing or changing requirements andpartly because of creative processinvolved.
-
8/3/2019 SCRUM Design Pattern
9/56
SCRUM - Design Pattern 9
Incorrect Assumptions(3)
Repeatable/Defined Developers:
All developers have same capability.
BUT
In reality, it varies widely so that a process
that works for one developer may not work
for another one.
-
8/3/2019 SCRUM Design Pattern
10/56
SCRUM - Design Pattern 10
Incorrect Assumptions(4)
Repeatable/Defined OrganizationalEnvironment:
Schedule, Client Behavior, Priority (QualityVs Price Vs Manpower) remain constant.
BUT
In reality, they are highly subjective andvery hard to define.
-
8/3/2019 SCRUM Design Pattern
11/56
SCRUM - Design Pattern 11
Solution
SCRUM
It offers a collection of empirical techniques
that assume existence of uncertainties butprovide practical and specific techniques to
tame them.
Iterative, Incremental and Adaptive
Software Development Model
-
8/3/2019 SCRUM Design Pattern
12/56
SCRUM - Design Pattern 12
How does SCRUM work?
SCRUM
MasterSprint
DemoAfter
Sprint
BacklogSCRUMMeetings
-
8/3/2019 SCRUM Design Pattern
13/56
SCRUM - Design Pattern 13
How does SCRUM work? (2)
Sprint:
A period of approximately 30 days in which an
agreed amount of work will be performed to create
a deliverable.
SCRUMs goal is to deliver as much quality
software as possible within a series (three to
eight) of Sprints
-
8/3/2019 SCRUM Design Pattern
14/56
SCRUM - Design Pattern 14
How does SCRUM work? (3)
Each stage in the Development Cycle
(Requirements, Analysis, Design,
Evolution, Delivery) is mapped to aSprint or Series of Sprints.
Unlike conventional way, there is nopredefined process within a Sprint
-
8/3/2019 SCRUM Design Pattern
15/56
SCRUM - Design Pattern 15
How does SCRUM work? (4)
SCRUM Meetings drive the completion ofthe allocated activities
Each sprint operates on a number of workitems called Backlog
No more items are externally added into theBacklog within a Sprint, where as derivedwork items can be added.
-
8/3/2019 SCRUM Design Pattern
16/56
SCRUM - Design Pattern 16
How does SCRUM work? (5)
SCRUM Meetings are held daily to
determine the following
Items completed since the last SCRUMMeeting
Issues or Blocks that need to be resolved
[SCRUM Masteris responsible]
Tasks to be done before the next Meeting
-
8/3/2019 SCRUM Design Pattern
17/56
SCRUM - Design Pattern 17
How does SCRUM work? (6)
Demonstration after Sprint is for:
Show the customer whats going on
Give the developer a sense ofaccomplishment
Integrate and test a reasonable portion of
the software being developed
Ensure real progress in development
-
8/3/2019 SCRUM Design Pattern
18/56
SCRUM - Design Pattern 18
SCRUM Patterns
Sprint
Backlog
SCRUM Meeting
-
8/3/2019 SCRUM Design Pattern
19/56
SCRUM - Design Pattern 19
Sprint - Context
You are a software developer or a coach
managing a software development team
where there is a high percentage of
discovery, creativity, or testing involved
You are building or expanding systems,
which allow partitioning of work, with cleaninterfacing, components, or objects
-
8/3/2019 SCRUM Design Pattern
20/56
SCRUM - Design Pattern 20
Sprint - Problem
You want to balance the needs of
developers to work undisturbed
management and the customers to see the real
progress
AS WELL AS
control the direction of software development
progress.
-
8/3/2019 SCRUM Design Pattern
21/56
SCRUM - Design Pattern 21
Sprint - Forces
Developers need to work undisturbed andneed support of logistics. Management andusers need to be convinced about real
progress.
Often, by the time systems are delivered theyare obsolete and may require major changes.
The problem is the inputs are collected in thestart of the project but they undergo changesas the working model is used.
-
8/3/2019 SCRUM Design Pattern
22/56
SCRUM - Design Pattern 22
Sprint Forces (2)
Because development process involves many
uncertainties, it is impossible to make a
complete, detailed specification, plan or
schedule
Some problems are even difficult to describe
without a notion of the solution.Experimentation, feedback and creativity are
required towards the same.
-
8/3/2019 SCRUM Design Pattern
23/56
SCRUM - Design Pattern 23
Solution
Divide the project in Sprints
A Sprint is a period of approximately 30 Days.
Each Sprint takes a pre-allocated amount ofwork from the Backlog
The work assigned is by priority and byapproximation of what can be accomplishedduring the Sprints length
-
8/3/2019 SCRUM Design Pattern
24/56
SCRUM - Design Pattern 24
Solution (2)
During the sprint no items are added to theallocated spring Backlog.
External additions are only added to theglobal Backlog, but blocks resulting from thesprint can be added to the allocated SpringBacklog
A Sprint ends with a demonstration of addednew functionality
-
8/3/2019 SCRUM Design Pattern
25/56
SCRUM - Design Pattern 25
Solution (3)
Sprint results in a visible and usabledeliverable that is shown to the users at thedemonstration.
An increment can be either intermediate orshippable
The Goal of a Sprint is to complete as muchquality software as possible and to ensurereal progress.
-
8/3/2019 SCRUM Design Pattern
26/56
SCRUM - Design Pattern 26
Rationale [Fundamental reasons; the basis]
Development Process is fast and steady asno items are added to the backlog externally
The ability to choose a process per Sprint isempowering and enables adaptation tochanging circumstances
Sprints are short; therefore the problem ofcompleting a Sprint is much simpler than thatof completing a project
-
8/3/2019 SCRUM Design Pattern
27/56
SCRUM - Design Pattern 27
Rationale (2)
Developers get feedback frequently
[after every Sprint] and therefore feel
their success [and failure] withoutcompromising the whole project
Project Status is visible since the sprintproduces working code
-
8/3/2019 SCRUM Design Pattern
28/56
SCRUM - Design Pattern 28
Resulting Context
High degree ofinvolvement by the participantsthrough Demos and the prioritizing of the Backlog
With SCRUM we get a large amount ofpost-planningflexibility (for both customer and developer).
Difficulties in grouping backlog for a Sprint mayindicate that priorities are not clear to management or
to the customer.
-
8/3/2019 SCRUM Design Pattern
29/56
SCRUM - Design Pattern 29
Backlog
Context(from: sprint).
You are connected to a software project orany other project that is chaotic in nature
that need information on what to do next.
-
8/3/2019 SCRUM Design Pattern
30/56
SCRUM - Design Pattern 30
Backlog contd.
Problem:
What is the best way to organize thework to be done next and at any stage
of the project?
-
8/3/2019 SCRUM Design Pattern
31/56
SCRUM - Design Pattern 31
Backlog contd.
Forces:
Project plans captured in pert and Gantt charts
often try to capture the tasks to be done in
advance. They often fail in their implementations,as they lack flexibility.
Not having a repository of tasks in any shape or
form simply translates into project failure.
-
8/3/2019 SCRUM Design Pattern
32/56
SCRUM - Design Pattern 32
Backlog contd.
Solution:
Use backlog to organize the work of a
SCRUM team.
The backlog is a prioritized list.
Backlog is the work to be performed and
evolves into product
-
8/3/2019 SCRUM Design Pattern
33/56
SCRUM - Design Pattern 33
Solution (2)
Sources of Backlog list:
Product Marketing.
Sales.
Technology.
Development.
Customer support.
-
8/3/2019 SCRUM Design Pattern
34/56
SCRUM - Design Pattern 34
Solution (3)
The product manager or product marketing
manager prioritizes work and is
responsible for meeting the product vision.
SCRUM teams focus on highest priority
Backlogs.
The team decomposes the selected
Backlog into tasks.
-
8/3/2019 SCRUM Design Pattern
35/56
SCRUM - Design Pattern 35
Resulting Context
Project work is identified dynamically
and prioritized according to:
The customers needs What the team can do
-
8/3/2019 SCRUM Design Pattern
36/56
SCRUM - Design Pattern 36
SCRUM Meetings
Context (From: Backlog).
You are a software developer or a coachmanaging a software development team
where there is high percentage ofdiscovery, creativity, or testing involved.
Activities such as scientific research,innovation, invention, architecture,
engineering and a myriad of other businesssituations may also exhibit this behavior.
-
8/3/2019 SCRUM Design Pattern
37/56
SCRUM - Design Pattern 37
Context (2)
You may be a Knowledge worker, an
engineer, a writer,a research scientist, or
an artist, or a coach or manager who is
overseeing the activities of a team in theseenvironments.
-
8/3/2019 SCRUM Design Pattern
38/56
SCRUM - Design Pattern 38
Problem
What is the best way to control an
empirical and unpredictable process
such as software development,scientific research, artist projects, or
innovative designs where its hard to
define the artifacts to be produced and
the processes to achieve them?
-
8/3/2019 SCRUM Design Pattern
39/56
SCRUM - Design Pattern 39
Forces
Estimation:
Accurate estimation for activities involving
discovery, creativity or testing is difficult.
Estimation is important. One must be able
to determine what are the future tasks
within some time horizon and prepareresources in advance.
-
8/3/2019 SCRUM Design Pattern
40/56
SCRUM - Design Pattern 40
Forces(2)
These uncertainties come in at least five
flavors:
Requirements are not well understood.
Architectural dependencies are not easy tounderstand and are constantly changing.
Unforeseen challenges with the technology
exist.
Ambiguity in the solutions and related efforts toovercome challenges.
Bugs in software that are hard to resolve.
-
8/3/2019 SCRUM Design Pattern
41/56
SCRUM - Design Pattern 41
Planning
Planning and reprioritizing takes time.
Involving knowledge workers in the
time planning meeting also decreasesproductivity.
No amount of planning in chaotic
system may reduce uncertainties.
-
8/3/2019 SCRUM Design Pattern
42/56
SCRUM - Design Pattern 42
Planning (2)
Detailed plans are huge and hard to
follow.
Cost of verifying the correctness of ahuge plan is also a costly exercise.
No planning can increase uncertainties
among the team members and lower
the morale.
-
8/3/2019 SCRUM Design Pattern
43/56
SCRUM - Design Pattern 43
Tracking
Too much monitoring wastes time andsuffocates the developers.
Does not increase the certainty of theindicators because of the chaotic natureof the system.
Too much data is meaningless.
No monitoring leads to blocks andpossible idle time between assignments
-
8/3/2019 SCRUM Design Pattern
44/56
SCRUM - Design Pattern 44
Solution
SCRUM Meetings(~15 mins) are held
and three questions are asked by each
participant:
Q1. What have you worked on since the
last SCRUM Meeting?
The SCRUM Master logs the tasks that have
been completed and those that are still undone
-
8/3/2019 SCRUM Design Pattern
45/56
SCRUM - Design Pattern 45
Solution (2)
Q2. What blocks, if any have you found in
performing your tasks in the last 24hrs?
SCRUM Master logs all blocks and later finds a
way to resolve the blocks.
Q3. What will you be working on in the next
24 hours?
The SCRUM Master helps the team members
choose the appropriate tasks.
-
8/3/2019 SCRUM Design Pattern
46/56
SCRUM - Design Pattern 46
SCRUM Meeting
Typically take place at same time and
same place. Serve to build a strong
culture.
Schedule task for developers and
everybody else involved in the task.
Allow knowledge workers to accomplish
mid-term goals.
-
8/3/2019 SCRUM Design Pattern
47/56
SCRUM - Design Pattern 47
Rationale
Its easy to over-or-under-estimate,which leads to either idle developer timeor delays in the completion of an
assignment. Frequent sampling of the project status
is good.
Constant reprioritization of tasks offeran adaptive mechanism for sampling.
-
8/3/2019 SCRUM Design Pattern
48/56
SCRUM - Design Pattern 48
Rationale (2)
SCRUM Meetings help in creation of an
anticipating culture:
They increase the overall sense of urgency They promote the sharing of knowledge
They encourage dense communications
They facilitate honesty among developers
since everyone has to give a daily status.
-
8/3/2019 SCRUM Design Pattern
49/56
SCRUM - Design Pattern 49
Rationale (3) (Systems
Dynamics)
From the Systems Dynamics point of view,software developed has a schedulingproblem because the nature of programming
assignments is rather probabilistic.
Estimates are hard to come by because: Inexperienced developers, managers, and
architects are involved in making the estimates. There are typically interlocking architectural
dependencies that are hard to manage.
-
8/3/2019 SCRUM Design Pattern
50/56
SCRUM - Design Pattern 50
Contd.
There are unknown or poorly documented
requirements.
There are unforeseen technical challenges.
In that sense SCRUM Meeting acts like
a thermometer that constantly samples
the teams temperature.
-
8/3/2019 SCRUM Design Pattern
51/56
SCRUM - Design Pattern 51
Known Uses
At Nike Securities in Chicago to run all
their projects
At Elementrix Technologies And many similar examples are quoted
in the book.
-
8/3/2019 SCRUM Design Pattern
52/56
SCRUM - Design Pattern 52
Resulting Context
The application of this pattern leads to
Highly visible projects status
Highly visible individual productivity Less time wasted because of blocks
Less time wasted because of waiting for
someone else.
Increased team socialization.
-
8/3/2019 SCRUM Design Pattern
53/56
SCRUM - Design Pattern 53
Conclusion
SCRUM is a knowledge creating
process with a high level of information
sharing during the whole cycle and work
progress.
Its application also generates a strong
culture with well-defined roles and
relationships, with meaningful andtranscending rituals.
-
8/3/2019 SCRUM Design Pattern
54/56
SCRUM - Design Pattern 54
Contd.
The key to SCRUM is:
Pinning the date of completion forproduction or release.
Prioritizing functionalities
Identifying available resources
Decision about the architecture
-
8/3/2019 SCRUM Design Pattern
55/56
SCRUM - Design Pattern 55
References
PLOP4 Book
http://jeffsutherland.com/oopsla/schwap
ub.pdf Related to PERT and Gantt
http://studentweb.tulane.edu/~mtruill/dev-
pert.html
-
8/3/2019 SCRUM Design Pattern
56/56
Thank You