1 / 55

SCRUM A Pattern Language for Hyperproductive Software Development

rosalind
Download Presentation

SCRUM A Pattern Language for Hyperproductive Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. SCRUM - Design Pattern 1 SCRUM – A Pattern Language for Hyperproductive Software Development Design Patterns Summer – 2002 Syracuse University Srinivasa Neerudu Vivekananthan Murugesan

    2. 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]

    3. SCRUM - Design Pattern 3 Waterfall Model

    4. SCRUM - Design Pattern 4 Spiral Model

    5. SCRUM - Design Pattern 5 SCRUM

    6. SCRUM - Design Pattern 6 Comparison

    7. SCRUM - Design Pattern 7 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.

    8. 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 and partly because of creative process involved.

    9. 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.

    10. SCRUM - Design Pattern 10 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.

    11. SCRUM - Design Pattern 11 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

    12. SCRUM - Design Pattern 12 How does SCRUM work?

    13. 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. SCRUM’s goal is to deliver as much quality software as possible within a series (three to eight) of Sprints

    14. SCRUM - Design Pattern 14 How does SCRUM work? (3) Each stage in the Development Cycle (Requirements, Analysis, Design, Evolution, Delivery) is mapped to a Sprint or Series of Sprints. Unlike conventional way, there is no predefined process within a Sprint

    15. SCRUM - Design Pattern 15 How does SCRUM work? (4) “SCRUM Meetings” drive the completion of the allocated activities Each sprint operates on a number of work items called “Backlog” No more items are externally added into the Backlog within a Sprint, where as derived work items can be added.

    16. SCRUM - Design Pattern 16 How does SCRUM work? (5) SCRUM Meetings are held daily to determine the following Items completed since the last SCRUM Meeting Issues or Blocks that need to be resolved [SCRUM Master is responsible] Tasks to be done before the next Meeting

    17. SCRUM - Design Pattern 17 How does SCRUM work? (6) Demonstration after Sprint is for: Show the customer what’s going on Give the developer a sense of accomplishment Integrate and test a reasonable portion of the software being developed Ensure “real” progress in development

    18. SCRUM - Design Pattern 18 SCRUM Patterns Sprint Backlog SCRUM Meeting

    19. 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 clean interfacing, components, or objects

    20. 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.

    21. SCRUM - Design Pattern 21 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.

    22. 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.

    23. 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 of work from the Backlog The work assigned is by priority and by approximation of what can be accomplished during the Sprint’s length

    24. SCRUM - Design Pattern 24 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

    25. SCRUM - Design Pattern 25 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.

    26. SCRUM - Design Pattern 26 Rationale [Fundamental reasons; the basis] Development Process is fast and steady as no items are added to the backlog externally The ability to choose a process per Sprint is empowering and enables adaptation to changing circumstances Sprints are short; therefore the problem of completing a Sprint is much simpler than that of completing a project

    27. SCRUM - Design Pattern 27 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

    28. SCRUM - Design Pattern 28 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.

    29. SCRUM - Design Pattern 29 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.

    30. SCRUM - Design Pattern 30 Backlog contd. Problem: What is the best way to organize the work to be done next and at any stage of the project?

    31. 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.

    32. 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

    33. SCRUM - Design Pattern 33 Solution (2) Sources of Backlog list: Product Marketing. Sales. Technology. Development. Customer support.

    34. 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.

    35. SCRUM - Design Pattern 35 Resulting Context Project work is identified dynamically and prioritized according to: The customer’s needs What the team can do

    36. SCRUM - Design Pattern 36 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.

    37. 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 these environments.

    38. 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?

    39. 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 prepare resources in advance.

    40. SCRUM - Design Pattern 40 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.

    41. SCRUM - Design Pattern 41 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.

    42. SCRUM - Design Pattern 42 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.

    43. SCRUM - Design Pattern 43 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

    44. 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

    45. 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.

    46. 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.

    47. SCRUM - Design Pattern 47 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.

    48. 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.

    49. SCRUM - Design Pattern 49 Rationale (3) (Systems Dynamics) From the Systems Dynamics point of view, software developed has a scheduling problem 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.

    50. 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 team’s temperature.

    51. 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.

    52. 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.

    53. 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 and transcending rituals.

    54. SCRUM - Design Pattern 54 Contd. The key to SCRUM is: Pinning the date of completion for production or release. Prioritizing functionalities Identifying available resources Decision about the architecture

    55. SCRUM - Design Pattern 55 References PLOP4 Book http://jeffsutherland.com/oopsla/schwapub.pdf Related to PERT and Gantt http://studentweb.tulane.edu/~mtruill/dev-pert.html

    56. Thank You ?

More Related