Professional Documents
Culture Documents
Design Patterns Summer 2002 Syracuse University Srinivasa Neerudu Vivekananthan Murugesan
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]
Waterfall Model
Spiral Model
SCRUM
Comparison
Incorrect Assumptions
Repeatable/Defined Problem:
There is a step or steps to capture requirements. BUT Systems have different applications, different environment, different end users, etc.
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 and partly because of creative process involved.
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.
Incorrect Assumptions(4)
Repeatable/Defined Organizational Environment:
Schedule, Client Behavior, Priority (Quality Vs Price Vs Manpower) remain constant. BUT In reality, they are highly subjective and very hard to define.
SCRUM - Design Pattern 10
Solution
SCRUM
It offers a collection of empirical techniques that assume existence of uncertainties but provide practical and specific techniques to tame them. Iterative, Incremental and Adaptive Software Development Model
11
SCRUM Master
Sprint
Backlog
SCRUM
Meetings
12
SCRUMs goal is to deliver as much quality software as possible within a series (three to eight) of Sprints
13
14
15
16
17
SCRUM Patterns
Sprint Backlog SCRUM Meeting
18
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 clean interfacing, components, or objects
19
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.
20
Sprint - Forces
Developers need to work undisturbed and need support of logistics. Management and users need to be convinced about real progress. Often, by the time systems are delivered they are obsolete and may require major changes. The problem is the inputs are collected in the start of the project but they undergo changes as the working model is used.
SCRUM - Design Pattern 21
Solution
Divide the project in Sprints A Sprint is a period of approximately 30 Days. Each Sprint takes a pre-allocated amount of work from the Backlog The work assigned is by priority and by approximation of what can be accomplished during the Sprints length
23
Solution (2)
During the sprint no items are added to the allocated spring Backlog. External additions are only added to the global Backlog, but blocks resulting from the sprint can be added to the allocated Spring Backlog A Sprint ends with a demonstration of added new functionality
24
Solution (3)
Sprint results in a visible and usable deliverable that is shown to the users at the demonstration. An increment can be either intermediate or shippable The Goal of a Sprint is to complete as much quality software as possible and to ensure real progress.
25
26
Rationale (2)
Developers get feedback frequently [after every Sprint] and therefore feel their success [and failure] without compromising the whole project Project Status is visible since the sprint produces working code
27
Resulting Context
High degree of involvement by the participants through Demos and the prioritizing of the Backlog With SCRUM we get a large amount of post-planning flexibility (for both customer and developer). Difficulties in grouping backlog for a Sprint may indicate that priorities are not clear to management or to the customer.
28
Backlog
Context(from: sprint).
You are connected to a software project or any other project that is chaotic in nature that need information on what to do next.
29
Backlog contd.
Problem: What is the best way to organize the work to be done next and at any stage of the project?
30
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.
31
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
32
Solution (2)
Sources of Backlog list:
Product Marketing. Sales. Technology. Development. Customer support.
33
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.
34
Resulting Context
Project work is identified dynamically and prioritized according to:
The customers needs What the team can do
35
SCRUM Meetings
Context (From: Backlog).
You are a software developer or a coach managing a software development team where there is high percentage of discovery, creativity, or testing involved. Activities such as scientific research, innovation, invention, architecture, engineering and a myriad of other business situations may also exhibit this behavior.
36
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 these environments.
37
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?
38
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 prepare resources in advance.
39
Forces(2)
These uncertainties come in at least five flavors:
Requirements are not well understood. Architectural dependencies are not easy to understand and are constantly changing. Unforeseen challenges with the technology exist. Ambiguity in the solutions and related efforts to overcome challenges. Bugs in software that are hard to resolve.
SCRUM - Design Pattern 40
Planning
Planning and reprioritizing takes time. Involving knowledge workers in the time planning meeting also decreases productivity. No amount of planning in chaotic system may reduce uncertainties.
41
Planning (2)
Detailed plans are huge and hard to follow. Cost of verifying the correctness of a huge plan is also a costly exercise. No planning can increase uncertainties among the team members and lower the morale.
42
Tracking
Too much monitoring wastes time and suffocates the developers. Does not increase the certainty of the indicators because of the chaotic nature of the system. Too much data is meaningless. No monitoring leads to blocks and possible idle time between assignments
43
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
44
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.
45
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.
46
Rationale
Its easy to over-or-under-estimate, which leads to either idle developer time or delays in the completion of an assignment. Frequent sampling of the project status is good. Constant reprioritization of tasks offer an adaptive mechanism for sampling.
47
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.
48
49
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.
50
Known Uses
At Nike Securities in Chicago to run all their projects At Elementrix Technologies And many similar examples are quoted in the book.
51
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.
52
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 and transcending rituals.
SCRUM - Design Pattern 53
Contd.
The key to SCRUM is:
Pinning the date of completion for production or release. Prioritizing functionalities Identifying available resources Decision about the architecture
54
References
PLOP4 Book http://jeffsutherland.com/oopsla/schwap ub.pdf Related to PERT and Gantt
http://studentweb.tulane.edu/~mtruill/devpert.html
55
Thank You