Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Agile Software Development with SCRUM




                  www.scrumguides.com



                   13 February 2009
Today’s Agenda

    Opening: program overview, knowing each other

    Understanding Agile and SCRUM

    SCRUM simulation

    Extra SCRUM topics


    We will be having 10-minute breaks each 60-90 minutes.


                                              Agile Software Development with
2                                                 SCRUM ©SCRUMguides
About myself

                   Alexey Krivitsky
                   Software developer, Agile coach

                   Certified ScrumMaster
                   Certified Scrum Practitioner
                   http://www.linkedin.com/in/alexeykrivitsky
                   email: alexey@scrumguides.com
                   skype: alexeykrv
                   icq: 436-471-64
                   gsm: +380 50 358 92 12


                   Currently building up a training center
                   www.scrumguides.com

                                  Agile Software Development with
3                                     SCRUM ©SCRUMguides
Our presence

       Ukrainian Agile community
       www.agileukraine.org

       Join our Google discussion group




       Ukrainian SCRUM portal
       www.scrum.com.ua


                                          Agile Software Development with
4                                             SCRUM ©SCRUMguides
Today’s Agenda

      Opening: program overview, knowing each other

      Understanding Agile and SCRUM

      SCRUM simulation

      Extra SCRUM topics




                                      Agile Software Development with
5                                         SCRUM ©SCRUMguides
Exercise “Continuum”




                           Agile Software Development with
6                              SCRUM ©SCRUMguides
Project successes/failures

      Have you been on a successful project?

      Have you been on an unsuccessful project?




                                  Agile Software Development with
8                                     SCRUM ©SCRUMguides
Agile might help you, let’s see…



      Understanding Agile and SCRUM




                                 Agile Software Development with
9                                    SCRUM ©SCRUMguides
The two approaches, two cultures

     Predictive approach
       Sees projects as predictive processes which results can be
       foreseen (predicted) with acceptable probability after
       reasonable planning and study efforts spent.


     Adaptive approach
       Questions predictability of projects due to their built-in
       complexity. It puts stress on steering based on observations.



                                                Agile Software Development with
10                                                  SCRUM ©SCRUMguides
The predictive approach
                                Release


                                          Design spec



                                                  Requirements spec




                                                    Order



                                                                 C
     D
                                Actual
                                need
     P
         P

             R
                               Agile Software Development with
11                                 SCRUM ©SCRUMguides
The adaptive approach

     When in the project we 100% know if we
     on/off the track in terms of the time, scope,
     costs…?
                                                              Vision



                                                                                 C



                                                         Actual need




                                                     Agile Software Development with
12                                                       SCRUM ©SCRUMguides
The two approaches to project management

       Predictive approach
           Heavy-weight;
       –
           Process-oriented;
       –
           Plan-driven;
       –
           “Waterfall”.
       –



       Adaptive approach
           Light-weight;
       –
           People-oriented;
       –
           Value-driven;
       –
           “Agile”.
       –


                                Agile Software Development with
13                                  SCRUM ©SCRUMguides
Order and Chaos




                       Agile Software Development with
14                         SCRUM ©SCRUMguides
The cone of uncertainty
     SCRUM decreases the chaos by fixing the scope




                                       Agile Software Development with
15                                         SCRUM ©SCRUMguides
The two approaches on the time scale




        Which advantages/disadvantages of
        the approaches you see?             Agile Software Development with
16                                              SCRUM ©SCRUMguides
Agile and SCRUM

      SCRUM – one of the Agile approaches.
      It is a project framework, or a set of
      recommendations by following which you can
      increase the chance of successful ending of
      your projects.




                                  Agile Software Development with
17                                    SCRUM ©SCRUMguides
Agile Manifesto

     We are uncovering better ways of developing
       software by doing it and helping others do it.
       Through this work we have come to value:


        Individuals and interactions over processes and tools
        Working software over comprehensive documentation
        Customer collaboration over contract negotiation
        Responding to change over following a plan

     That is, while there is value in the items on
       the right, we value the items on the left more.
                                                  Agile Software Development with
18                                                    SCRUM ©SCRUMguides
Principles of Agile Manifesto



     Please see www.agilemanifesto.org for the
       twelve principles




                                     Agile Software Development with
19                                       SCRUM ©SCRUMguides
Main aspects of Agile




                             Agile Software Development with
20                               SCRUM ©SCRUMguides
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt

                                 Agile Software Development with
21                                   SCRUM ©SCRUMguides
The main aspects of Agile: Team work

       What is a team?




                                   Agile Software Development with
22                                     SCRUM ©SCRUMguides
Team work (cont.)

     Exercise “an airplane factory”.




                                       Agile Software Development with
23                                         SCRUM ©SCRUMguides
Push vs. Pull systems

       SCRUM
       is a pull system




                             Agile Software Development with
24                               SCRUM ©SCRUMguides
Team work (cont.)

       What is a team?

       Are you in a good team?

       How to become a greater team?

       How to evaluate and motivate people’s work
       in a team?

                                   Agile Software Development with
25                                     SCRUM ©SCRUMguides
Is here such a thing as “team work”?
                                   Release


                                             Design spec



                                                     Requirements spec




                                                       Order



                                                                    C
     D
                                   Actual
                                   need
     P
         P

             R
                                  Agile Software Development with
26                                    SCRUM ©SCRUMguides
A SCRUM team is

      A cross-functional group of people
      (5-9 members) responsible for managing
      itself to develop the product.




                                 Agile Software Development with
27                                   SCRUM ©SCRUMguides
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt


                                 Agile Software Development with
28                                   SCRUM ©SCRUMguides
Prioritization and Traditional approaches

       An alternative tool to backlogs are
       requirement specifications.




                                     Agile Software Development with
29                                       SCRUM ©SCRUMguides
“Gimme all requirements, or ….”




                                 Agile Software Development with
30                                   SCRUM ©SCRUMguides
As a result …

       As a result all requirements are the
       “top priority”.

       Which is basically the same as not having
       the priorities at all.




                                     Agile Software Development with
31                                       SCRUM ©SCRUMguides
And as a result …




                         Agile Software Development with
32                           SCRUM ©SCRUMguides
What does it mean to us?

       As a consequence: we can cut costs and
       duration of our projects in 2/3!



       Does it mean we (the teams) will earn less
       money?




                                    Agile Software Development with
33                                      SCRUM ©SCRUMguides
What about your projects?

       Think about your current (recent) projects.

       List 5-10 features that could have been
       avoided or simplified by keeping the product
       as good as it was.

       What would be your % of rarely/never used
       features?

                                     Agile Software Development with
34                                       SCRUM ©SCRUMguides
Prioritize (cont.)

     YAGNI - “You ain’t gonna need it”.
      A strategy of postponing decisions until the last
      possible moment.

     Product backlog
       Just-in-time requirements management tool.




                                     Agile Software Development with
36                                       SCRUM ©SCRUMguides
The “menu” (Agile) approach




       Product backlog is the project’s menu.

       “Servants” help to make better decisions.




                                    Agile Software Development with
37                                      SCRUM ©SCRUMguides
What saves our projects?




     “The features that we manage to de-scope are
       the savers of our projects” © Kent Beck




                                   Agile Software Development with
38                                     SCRUM ©SCRUMguides
Today’s Agenda

       Opening: program overview, knowing each other

       Understanding Agile and SCRUM till 16:00

       Coffee break 16:00 – 16:30

       SCRUM simulation 16:30 – 17:30

       Extra SCRUM topics 17:30 – 18:00


                                        Agile Software Development with
39                                          SCRUM ©SCRUMguides
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt


                                 Agile Software Development with
40                                   SCRUM ©SCRUMguides
The main aspects of Agile: Short Cycles

     The shorter the cycle the more efficient the process

          We have more time to “play” with the product that
     1.
          we are developing;

          The sooner we can catch a defect the easier it is to
     2.
          fix it;

          The shorter the cycle (the smaller a batch of work)
     3.
          the less need we have in creating intermediate
          artifacts.
                                            Agile Software Development with
41                                              SCRUM ©SCRUMguides
The “Flip Coins project




                               Agile Software Development with
42                                 SCRUM ©SCRUMguides
Short Cycles (cont.)



     “Fail fast” (с) Ken Schwaber




                                Agile Software Development with
43                                  SCRUM ©SCRUMguides
Iterative and Incremental approach



         How do you eat an elephant?
     -
         One bite at a time!
     -




                                       Agile Software Development with
44                                         SCRUM ©SCRUMguides
Shorter Cycles = Faster Feedback

          Daily meetings
     1.
          Code Reviews
     2.
          Release to end-users
     3.
          Iteration reviews
     4.
          Continuous integration
     5.
          Feedback from (onsite) clients
     6.
          Unit-testing
     7.
          (Automated) acceptance testing
     8.
          Pair programming
     9.

                                    Agile Software Development with
45                                      SCRUM ©SCRUMguides
Shorter Cycles = Faster Feedback (ordered)

       Pair programming (immediate feedback)
       Unit-testing (5-10 minutes)
       Continuous integration (hourly)
       Feedback from (onsite) clients (daily)
       Daily meetings (daily)
       Code Reviews (some days)
       (Automated) acceptance testing (some days)
       Iteration reviews (each second week)
       Release to end-users (some weeks-months)

                                  Agile Software Development with
46                                    SCRUM ©SCRUMguides
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles


       Learn and Adapt

                                 Agile Software Development with
47                                   SCRUM ©SCRUMguides
Exercise “Ball Points”




                              Agile Software Development with
48                                SCRUM ©SCRUMguides
The main aspects of Agile: Learn and Adapt

       As we work we learn lots of new things about
       the product being developed, technologies
       being used, our clients, ourselves.

       By incorporating this information into daily
       work we can become better day by day.




                                      Agile Software Development with
49                                        SCRUM ©SCRUMguides
Visibility tools

     In order to evolve the way we work we need to
       keep everything visible to ourselves and our
       clients

     Tools that might help:
       Sprint Burndown Chart
       Task boards
       Wikis

                                    Agile Software Development with
50                                      SCRUM ©SCRUMguides
The Sprint Burndown Chart




                                 Agile Software Development with
51                                   SCRUM ©SCRUMguides
The Task Board - an information radiator




                                  Agile Software Development with
52                                    SCRUM ©SCRUMguides
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt


                                 Agile Software Development with
53                                   SCRUM ©SCRUMguides
Agile Software Development with
54       SCRUM ©SCRUMguides
Today’s Agenda

       Opening: program overview, knowing each other

       Understanding Agile and SCRUM

       SCRUM simulation

       Extra SCRUM topics




                                       Agile Software Development with
56                                         SCRUM ©SCRUMguides
SCRUM in 59 minutes




                           Agile Software Development with
57                             SCRUM ©SCRUMguides
Game structure

     Planning
           Choose a product and your PO
        Help your PO to build up a PB
        Help your PO to prioritize the PB items
        Plan your first sprint

     Sprinting
        Day one - 7 min
        Daily standup - 3 min
        Day two - 7 min
        Demonstration - 3 min (per a team)

                                         Agile Software Development with
58                                           SCRUM ©SCRUMguides
Today’s Agenda

      Opening: program overview, knowing each
      other

       Understanding Agile and SCRUM

       SCRUM simulation

       Extra SCRUM topics

                                Agile Software Development with
59                                  SCRUM ©SCRUMguides
SCRUM recap

      Roles
           The Team
       –
           ScrumMaster
       –
           Product Owner
       –


      Artifacts
           Product Backlog
       –
           Sprint Backlog
       –
           Sprint/Release Burndown Chart
       –


      Meetings (ceremonies)
           Sprint Planning
       –
           Daily Scrum (“Stand-Up”)
       –
           Sprint Review (Demo)
       –
           Retrospective
       –

                                           Agile Software Development with
60                                             SCRUM ©SCRUMguides
Today’s Agenda

       Opening: program overview, knowing each other

       Understanding Agile and SCRUM

       SCRUM simulation

       Summary of SCRUM concepts




                                       Agile Software Development with
61                                         SCRUM ©SCRUMguides
Join our community!

        Ukrainian Agile community
        www.agileukraine.org

        Join our Google discussion group




        Ukrainian SCRUM portal
        www.scrum.com.ua


                                           Agile Software Development with
62                                             SCRUM ©SCRUMguides

More Related Content

ScrumGuides training: Agile Software Development With Scrum

  • 1. Agile Software Development with SCRUM www.scrumguides.com 13 February 2009
  • 2. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics We will be having 10-minute breaks each 60-90 minutes. Agile Software Development with 2 SCRUM ©SCRUMguides
  • 3. About myself Alexey Krivitsky Software developer, Agile coach Certified ScrumMaster Certified Scrum Practitioner http://www.linkedin.com/in/alexeykrivitsky email: alexey@scrumguides.com skype: alexeykrv icq: 436-471-64 gsm: +380 50 358 92 12 Currently building up a training center www.scrumguides.com Agile Software Development with 3 SCRUM ©SCRUMguides
  • 4. Our presence Ukrainian Agile community www.agileukraine.org Join our Google discussion group Ukrainian SCRUM portal www.scrum.com.ua Agile Software Development with 4 SCRUM ©SCRUMguides
  • 5. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Agile Software Development with 5 SCRUM ©SCRUMguides
  • 6. Exercise “Continuum” Agile Software Development with 6 SCRUM ©SCRUMguides
  • 7. Project successes/failures Have you been on a successful project? Have you been on an unsuccessful project? Agile Software Development with 8 SCRUM ©SCRUMguides
  • 8. Agile might help you, let’s see… Understanding Agile and SCRUM Agile Software Development with 9 SCRUM ©SCRUMguides
  • 9. The two approaches, two cultures Predictive approach Sees projects as predictive processes which results can be foreseen (predicted) with acceptable probability after reasonable planning and study efforts spent. Adaptive approach Questions predictability of projects due to their built-in complexity. It puts stress on steering based on observations. Agile Software Development with 10 SCRUM ©SCRUMguides
  • 10. The predictive approach Release Design spec Requirements spec Order C D Actual need P P R Agile Software Development with 11 SCRUM ©SCRUMguides
  • 11. The adaptive approach When in the project we 100% know if we on/off the track in terms of the time, scope, costs…? Vision C Actual need Agile Software Development with 12 SCRUM ©SCRUMguides
  • 12. The two approaches to project management Predictive approach Heavy-weight; – Process-oriented; – Plan-driven; – “Waterfall”. – Adaptive approach Light-weight; – People-oriented; – Value-driven; – “Agile”. – Agile Software Development with 13 SCRUM ©SCRUMguides
  • 13. Order and Chaos Agile Software Development with 14 SCRUM ©SCRUMguides
  • 14. The cone of uncertainty SCRUM decreases the chaos by fixing the scope Agile Software Development with 15 SCRUM ©SCRUMguides
  • 15. The two approaches on the time scale Which advantages/disadvantages of the approaches you see? Agile Software Development with 16 SCRUM ©SCRUMguides
  • 16. Agile and SCRUM SCRUM – one of the Agile approaches. It is a project framework, or a set of recommendations by following which you can increase the chance of successful ending of your projects. Agile Software Development with 17 SCRUM ©SCRUMguides
  • 17. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Agile Software Development with 18 SCRUM ©SCRUMguides
  • 18. Principles of Agile Manifesto Please see www.agilemanifesto.org for the twelve principles Agile Software Development with 19 SCRUM ©SCRUMguides
  • 19. Main aspects of Agile Agile Software Development with 20 SCRUM ©SCRUMguides
  • 20. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 21 SCRUM ©SCRUMguides
  • 21. The main aspects of Agile: Team work What is a team? Agile Software Development with 22 SCRUM ©SCRUMguides
  • 22. Team work (cont.) Exercise “an airplane factory”. Agile Software Development with 23 SCRUM ©SCRUMguides
  • 23. Push vs. Pull systems SCRUM is a pull system Agile Software Development with 24 SCRUM ©SCRUMguides
  • 24. Team work (cont.) What is a team? Are you in a good team? How to become a greater team? How to evaluate and motivate people’s work in a team? Agile Software Development with 25 SCRUM ©SCRUMguides
  • 25. Is here such a thing as “team work”? Release Design spec Requirements spec Order C D Actual need P P R Agile Software Development with 26 SCRUM ©SCRUMguides
  • 26. A SCRUM team is A cross-functional group of people (5-9 members) responsible for managing itself to develop the product. Agile Software Development with 27 SCRUM ©SCRUMguides
  • 27. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 28 SCRUM ©SCRUMguides
  • 28. Prioritization and Traditional approaches An alternative tool to backlogs are requirement specifications. Agile Software Development with 29 SCRUM ©SCRUMguides
  • 29. “Gimme all requirements, or ….” Agile Software Development with 30 SCRUM ©SCRUMguides
  • 30. As a result … As a result all requirements are the “top priority”. Which is basically the same as not having the priorities at all. Agile Software Development with 31 SCRUM ©SCRUMguides
  • 31. And as a result … Agile Software Development with 32 SCRUM ©SCRUMguides
  • 32. What does it mean to us? As a consequence: we can cut costs and duration of our projects in 2/3! Does it mean we (the teams) will earn less money? Agile Software Development with 33 SCRUM ©SCRUMguides
  • 33. What about your projects? Think about your current (recent) projects. List 5-10 features that could have been avoided or simplified by keeping the product as good as it was. What would be your % of rarely/never used features? Agile Software Development with 34 SCRUM ©SCRUMguides
  • 34. Prioritize (cont.) YAGNI - “You ain’t gonna need it”. A strategy of postponing decisions until the last possible moment. Product backlog Just-in-time requirements management tool. Agile Software Development with 36 SCRUM ©SCRUMguides
  • 35. The “menu” (Agile) approach Product backlog is the project’s menu. “Servants” help to make better decisions. Agile Software Development with 37 SCRUM ©SCRUMguides
  • 36. What saves our projects? “The features that we manage to de-scope are the savers of our projects” © Kent Beck Agile Software Development with 38 SCRUM ©SCRUMguides
  • 37. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM till 16:00 Coffee break 16:00 – 16:30 SCRUM simulation 16:30 – 17:30 Extra SCRUM topics 17:30 – 18:00 Agile Software Development with 39 SCRUM ©SCRUMguides
  • 38. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 40 SCRUM ©SCRUMguides
  • 39. The main aspects of Agile: Short Cycles The shorter the cycle the more efficient the process We have more time to “play” with the product that 1. we are developing; The sooner we can catch a defect the easier it is to 2. fix it; The shorter the cycle (the smaller a batch of work) 3. the less need we have in creating intermediate artifacts. Agile Software Development with 41 SCRUM ©SCRUMguides
  • 40. The “Flip Coins project Agile Software Development with 42 SCRUM ©SCRUMguides
  • 41. Short Cycles (cont.) “Fail fast” (с) Ken Schwaber Agile Software Development with 43 SCRUM ©SCRUMguides
  • 42. Iterative and Incremental approach How do you eat an elephant? - One bite at a time! - Agile Software Development with 44 SCRUM ©SCRUMguides
  • 43. Shorter Cycles = Faster Feedback Daily meetings 1. Code Reviews 2. Release to end-users 3. Iteration reviews 4. Continuous integration 5. Feedback from (onsite) clients 6. Unit-testing 7. (Automated) acceptance testing 8. Pair programming 9. Agile Software Development with 45 SCRUM ©SCRUMguides
  • 44. Shorter Cycles = Faster Feedback (ordered) Pair programming (immediate feedback) Unit-testing (5-10 minutes) Continuous integration (hourly) Feedback from (onsite) clients (daily) Daily meetings (daily) Code Reviews (some days) (Automated) acceptance testing (some days) Iteration reviews (each second week) Release to end-users (some weeks-months) Agile Software Development with 46 SCRUM ©SCRUMguides
  • 45. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 47 SCRUM ©SCRUMguides
  • 46. Exercise “Ball Points” Agile Software Development with 48 SCRUM ©SCRUMguides
  • 47. The main aspects of Agile: Learn and Adapt As we work we learn lots of new things about the product being developed, technologies being used, our clients, ourselves. By incorporating this information into daily work we can become better day by day. Agile Software Development with 49 SCRUM ©SCRUMguides
  • 48. Visibility tools In order to evolve the way we work we need to keep everything visible to ourselves and our clients Tools that might help: Sprint Burndown Chart Task boards Wikis Agile Software Development with 50 SCRUM ©SCRUMguides
  • 49. The Sprint Burndown Chart Agile Software Development with 51 SCRUM ©SCRUMguides
  • 50. The Task Board - an information radiator Agile Software Development with 52 SCRUM ©SCRUMguides
  • 51. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 53 SCRUM ©SCRUMguides
  • 52. Agile Software Development with 54 SCRUM ©SCRUMguides
  • 53. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Agile Software Development with 56 SCRUM ©SCRUMguides
  • 54. SCRUM in 59 minutes Agile Software Development with 57 SCRUM ©SCRUMguides
  • 55. Game structure Planning Choose a product and your PO Help your PO to build up a PB Help your PO to prioritize the PB items Plan your first sprint Sprinting Day one - 7 min Daily standup - 3 min Day two - 7 min Demonstration - 3 min (per a team) Agile Software Development with 58 SCRUM ©SCRUMguides
  • 56. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Agile Software Development with 59 SCRUM ©SCRUMguides
  • 57. SCRUM recap Roles The Team – ScrumMaster – Product Owner – Artifacts Product Backlog – Sprint Backlog – Sprint/Release Burndown Chart – Meetings (ceremonies) Sprint Planning – Daily Scrum (“Stand-Up”) – Sprint Review (Demo) – Retrospective – Agile Software Development with 60 SCRUM ©SCRUMguides
  • 58. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Summary of SCRUM concepts Agile Software Development with 61 SCRUM ©SCRUMguides
  • 59. Join our community! Ukrainian Agile community www.agileukraine.org Join our Google discussion group Ukrainian SCRUM portal www.scrum.com.ua Agile Software Development with 62 SCRUM ©SCRUMguides