Your SlideShare is downloading. ×
0
Agile Software Development with SCRUM




                  www.scrumguides.com



                   10 January 2009
Today’s Agenda

    Opening: program overview, knowing each other

    Understanding Agile and SCRUM

    SCRUM simulation...
About myself

                   Alexey Krivitsky
                   Software developer, Agile coach

                   C...
Our presence

       Ukrainian Agile community
       www.agileukraine.org

       Join our Google discussion group




  ...
Today’s Agenda

      Opening: program overview, knowing each other

      Understanding Agile and SCRUM

      SCRUM simu...
Exercise “Continuum”




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



      Have you been on a successful project?


      Have you been on an unsuccessful projec...
Agile might help you, let’s see…



      Understanding Agile and SCRUM




                                 Agile Softwar...
The two approaches, two cultures

     Predictive approach
       Sees projects as predictive processes which results can ...
The predictive approach
                                Release


                                          Design spec


...
The adaptive approach

     When in the project we 100% know if we
     on/off the track in terms of the time, scope,
    ...
The two approaches to project management

       Predictive approach
           Heavy-weight;
       –
           Process-...
Order and Chaos




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




        Which advantages/disadvantages of
        the approaches you see?        ...
Agile and SCRUM

      SCRUM – one of the Agile approaches.

      It is a project framework, or a set of
      recommenda...
Agile Manifesto

     We are uncovering better ways of developing
       software by doing it and helping others do it.
  ...
Main aspects of Agile




                             Agile Software Development with
19                               SC...
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt

         ...
The main aspects of Agile: Team work

       What is a team?



       How to make good team?




                        ...
Team work (cont.)

     Exercise “an airplane factory”.




                                       Agile Software Developm...
Team work (cont.)

       What is a team?

       Are you in a good team?

       How to become a greater team?

       Ho...
Is here such a thing as “team work”?
                                   Release


                                        ...
A SCRUM team is

      A cross-functional group of people
      (5-9 members) responsible for managing
      itself to dev...
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt


        ...
Prioritization and Traditional approaches

       An alternative tool to backlogs are
       requirement specifications.

...
“Gimme all requirements, or ….”




                                 Agile Software Development with
28                   ...
As a result …

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

       Which is basically the same as n...
And as a result …




                         Agile Software Development with
30                           SCRUM ©SCRUMgu...
What does it mean to us?

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



       ...
What about your projects?

       Think about your current (recent) projects.

       List 5-10 features that could have b...
Prioritize (cont.)

     YAGNI - “You ain’t gonna need it”.
      A strategy of postponing decisions until the last
      ...
The “menu” (Agile) approach




       Product backlog is the project’s menu.

       “Servants” help to make better decis...
What saves our projects?




     “The features that we manage to de-scope are
       the savers of our projects” © Kent B...
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt


        ...
The main aspects of Agile: Short Cycles

     The shorter the cycle the more efficient the process

          We have more...
Short Cycles (cont.)



     “Fail fast” (с) Ken Schwaber




                                Agile Software Development w...
Iterative and Incremental approach



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




...
Shorter Cycles = Faster Feedback

          Daily meetings
     1.
          Code Reviews
     2.
          Release to end...
Shorter Cycles = Faster Feedback (ordered)

       Pair programming (immediate feedback)
       Unit-testing (5-10 minutes...
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles


       Learn and Adapt

        ...
Exercise “Ball Points”




                              Agile Software Development with
44                               ...
The main aspects of Agile: Learn and Adapt

       As we work we learn lots of new things about
       the product being d...
Visibility tools

     In order to evolve the way we work we need to
       keep everything visible to ourselves and our
 ...
The main aspects of Agile

       Team Work

       Prioritization

       Short cycles

       Learn and Adapt


        ...
Would SCRUM help in your case

       Think about your current (recent) project.

       List 3-5 main things that are (we...
Today’s Agenda

       Opening: program overview, knowing each other

       Understanding Agile and SCRUM

       SCRUM s...
SCRUM in 59 minutes




                           Agile Software Development with
50                             SCRUM ©S...
Game structure

     Planning
        Choose a product and your PO
        Help your PO to build up a PB
        Help your...
Today’s Agenda

        Opening: program overview, knowing each other

        Understanding Agile and SCRUM

        SCRU...
SCRUM recap

      Roles
           The Team
       –
           ScrumMaster
       –
           Product Owner
       –


...
Today’s Agenda

       Opening: program overview, knowing each other

       Understanding Agile and SCRUM

       SCRUM s...
Agile Planning



       Requirements in SCRUM

       Levels of Planning

       Project Steering


       Estimation Tec...
Requirements

      What are the requirements to requirements?




                                  Agile Software Develo...
What is important is …

       That communications/negotiation happens
       between the customer and the team.

       U...
User Story is…

     User stories are simple, clear, brief
      descriptions of functionality that will be
      valuable...
Samples – Travel reservation system




                                 As a vacation planner, I
 As a user, I can reserv...
Details added in smaller substories


                                 As a premium site member,
                         ...
Details added as tests

       High level tests are added to the story
             Can be used to express additional deta...
From Mike Cohn’s “Agile Estimating and Planning”




                                    Agile Software Development with
6...
Agile Planning



       Requirements in SCRUM

       Levels of Planning

       Project Steering

       Estimation Tech...
The two levels of planning

       Strategic level / Story level / product backlog
           It is all about value. Hence...
From Mike Cohn’s “Planning Agile Projects”




                                     Agile Software Development with
66    ...
Agile Planning



       Requirements in SCRUM

       Levels of Planning

       Project Steering

       Estimation Tech...
Steering your Projects



     “Ready? Fire! Aim… Aim… Aim… Aim…”

       © Kent Beck, Martin Fowler
       “Planning eXtr...
There are four main parameters to planning




                                 Agile Software Development with
70        ...
Visualizing the time-scope relationship

                                           Release Burndown

                    ...
The Performance metric



     Velocity – speed at which the team converts
       pieces of requirements into a working
  ...
From Mike Cohn’s “Agile Estimating and Planning”




                                    Agile Software Development with
7...
Agile Planning



       Requirements in SCRUM

       Levels of Planning

       Project Steering

       Estimation Tech...
From Henrik Kniberg and Mike Cohn

     A typical issue with estimations




                                             ...
Planning Poker. The Steps


       Each estimator is given a deck of cards (1,2,3,5,8…)
       A Product Owner reads a sto...
SCRUM and you

      In your current (next) project which SCRUM
      practices you think are the MUSTs?

      Which you ...
Questions? Concerns? Any feedback?




     Thank you!
                               Agile Software Development with
79  ...
My contacts

                   Alexey Krivitsky
                   Software developer, Agile coach

                   Ce...
Join our community!

        Ukrainian Agile community
        www.agileukraine.org

        Join our Google discussion gr...
Upcoming SlideShare
Loading in...5
×

Agile Software Development With SCRUM

12,752

Published on

Materials from one-day training on Agile Software Development with SCRUM done by SCRUMguids.com in Kharkiv, Ukraine

Jan 2009

Published in: Technology, Business
1 Comment
28 Likes
Statistics
Notes
  • good and clear introduction
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
12,752
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1,192
Comments
1
Likes
28
Embeds 0
No embeds

No notes for slide

Transcript of "Agile Software Development With SCRUM"

  1. 1. Agile Software Development with SCRUM www.scrumguides.com 10 January 2009
  2. 2. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Concepts of Agile Planning We will be having 10-minute breaks each 60-90 minutes. Agile Software Development with 2 SCRUM ©SCRUMguides
  3. 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. 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. 5. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Concepts of Agile Planning Agile Software Development with 5 SCRUM ©SCRUMguides
  6. 6. Exercise “Continuum” Agile Software Development with 6 SCRUM ©SCRUMguides
  7. 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. 8. Agile might help you, let’s see… Understanding Agile and SCRUM Agile Software Development with 9 SCRUM ©SCRUMguides
  9. 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. 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. 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. 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. 13. Order and Chaos Agile Software Development with 14 SCRUM ©SCRUMguides
  14. 14. The two approaches on the time scale Which advantages/disadvantages of the approaches you see? Agile Software Development with 15 SCRUM ©SCRUMguides
  15. 15. 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 16 SCRUM ©SCRUMguides
  16. 16. 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 17 SCRUM ©SCRUMguides
  17. 17. Main aspects of Agile Agile Software Development with 19 SCRUM ©SCRUMguides
  18. 18. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 20 SCRUM ©SCRUMguides
  19. 19. The main aspects of Agile: Team work What is a team? How to make good team? Agile Software Development with 21 SCRUM ©SCRUMguides
  20. 20. Team work (cont.) Exercise “an airplane factory”. Agile Software Development with 22 SCRUM ©SCRUMguides
  21. 21. 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 23 SCRUM ©SCRUMguides
  22. 22. 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 24 SCRUM ©SCRUMguides
  23. 23. 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 25 SCRUM ©SCRUMguides
  24. 24. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 26 SCRUM ©SCRUMguides
  25. 25. Prioritization and Traditional approaches An alternative tool to backlogs are requirement specifications. Agile Software Development with 27 SCRUM ©SCRUMguides
  26. 26. “Gimme all requirements, or ….” Agile Software Development with 28 SCRUM ©SCRUMguides
  27. 27. 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 29 SCRUM ©SCRUMguides
  28. 28. And as a result … Agile Software Development with 30 SCRUM ©SCRUMguides
  29. 29. 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 31 SCRUM ©SCRUMguides
  30. 30. 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 32 SCRUM ©SCRUMguides
  31. 31. 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 34 SCRUM ©SCRUMguides
  32. 32. The “menu” (Agile) approach Product backlog is the project’s menu. “Servants” help to make better decisions. Agile Software Development with 35 SCRUM ©SCRUMguides
  33. 33. What saves our projects? “The features that we manage to de-scope are the savers of our projects” © Kent Beck Agile Software Development with 36 SCRUM ©SCRUMguides
  34. 34. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 37 SCRUM ©SCRUMguides
  35. 35. 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 38 SCRUM ©SCRUMguides
  36. 36. Short Cycles (cont.) “Fail fast” (с) Ken Schwaber Agile Software Development with 39 SCRUM ©SCRUMguides
  37. 37. Iterative and Incremental approach How do you eat an elephant? - One bite at a time! - Agile Software Development with 40 SCRUM ©SCRUMguides
  38. 38. 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 41 SCRUM ©SCRUMguides
  39. 39. 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 42 SCRUM ©SCRUMguides
  40. 40. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 43 SCRUM ©SCRUMguides
  41. 41. Exercise “Ball Points” Agile Software Development with 44 SCRUM ©SCRUMguides
  42. 42. 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 45 SCRUM ©SCRUMguides
  43. 43. 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 46 SCRUM ©SCRUMguides
  44. 44. The main aspects of Agile Team Work Prioritization Short cycles Learn and Adapt Agile Software Development with 47 SCRUM ©SCRUMguides
  45. 45. Would SCRUM help in your case Think about your current (recent) project. List 3-5 main things that are (were) preventing it from being more successful. Can SCRUM help to avoid them? Can SCRUM make them visible earlier? How can SCRUM help you solve them? Agile Software Development with 48 SCRUM ©SCRUMguides
  46. 46. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Concepts of Agile Planning Agile Software Development with 49 SCRUM ©SCRUMguides
  47. 47. SCRUM in 59 minutes Agile Software Development with 50 SCRUM ©SCRUMguides
  48. 48. 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 51 SCRUM ©SCRUMguides
  49. 49. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Extra SCRUM topics Concepts of Agile Planning We will be having 10-minute breaks each 60-90 minutes. Agile Software Development with 52 SCRUM ©SCRUMguides
  50. 50. 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 53 SCRUM ©SCRUMguides
  51. 51. Today’s Agenda Opening: program overview, knowing each other Understanding Agile and SCRUM SCRUM simulation Summary of SCRUM concepts Concepts of Agile Planning Agile Software Development with 54 SCRUM ©SCRUMguides
  52. 52. Agile Planning Requirements in SCRUM Levels of Planning Project Steering Estimation Techniques Agile Software Development with 55 SCRUM ©SCRUMguides
  53. 53. Requirements What are the requirements to requirements? Agile Software Development with 56 SCRUM ©SCRUMguides
  54. 54. What is important is … That communications/negotiation happens between the customer and the team. User stories help deferring the details till later They talk problems not solutions They fit nicely as your Product Backlog items Agile Software Development with 57 SCRUM ©SCRUMguides
  55. 55. User Story is… User stories are simple, clear, brief descriptions of functionality that will be valuable to either a user or purchaser of a product Expressed in a form similar to: As a <user> I can <do> so that <value> Agile Software Development with 58 SCRUM ©SCRUMguides
  56. 56. Samples – Travel reservation system As a vacation planner, I As a user, I can reserve a can see photos of the hotel room. hotels. As a user, I can restrict As a user, I can cancel a searches so that I only see reservation. hotels with available rooms. Agile Software Development with 59 59 SCRUM ©SCRUMguides
  57. 57. Details added in smaller substories As a premium site member, I can cancel a reservation up to the last minute. As a non-premium As a user, I can member, I can cancel up to cancel a 24 hours in advance. reservation. As a site visitor, I am emailed a confirmation of any cancelled reservation. Agile Software Development with 60 60 SCRUM ©SCRUMguides
  58. 58. Details added as tests High level tests are added to the story Can be used to express additional details and expectations – As a user, I can cancel a reservation. • Verify that a premium member can cancel the same day without a fee. • Verify that a non-premium member is charged 10% for a same-day cancellation. • Verify that an email confirmation is sent. • Verify that the hotel is notified of any cancellation. • Figure out what to do if the user’s card is expired. Agile Software Development with 61 61 SCRUM ©SCRUMguides
  59. 59. From Mike Cohn’s “Agile Estimating and Planning” Agile Software Development with 62 SCRUM ©SCRUMguides
  60. 60. Agile Planning Requirements in SCRUM Levels of Planning Project Steering Estimation Techniques Agile Software Development with 64 SCRUM ©SCRUMguides
  61. 61. The two levels of planning Strategic level / Story level / product backlog It is all about value. Hence the customers are at – better position to control this level. It is the menu of a restaurant. – Tactical level / Task level / spring backlog The tasks are defined in technical jargon. So the – teams control control this level. It is the kitchen of a restaurant. Do you really want – to look inside? :) Agile Software Development with 65 SCRUM ©SCRUMguides
  62. 62. From Mike Cohn’s “Planning Agile Projects” Agile Software Development with 66 SCRUM ©SCRUMguides
  63. 63. Agile Planning Requirements in SCRUM Levels of Planning Project Steering Estimation Techniques Agile Software Development with 68 SCRUM ©SCRUMguides
  64. 64. Steering your Projects “Ready? Fire! Aim… Aim… Aim… Aim…” © Kent Beck, Martin Fowler “Planning eXtreme Programming” Agile Software Development with 69 SCRUM ©SCRUMguides
  65. 65. There are four main parameters to planning Agile Software Development with 70 SCRUM ©SCRUMguides
  66. 66. Visualizing the time-scope relationship Release Burndown 2000 1800 1785 1620 1600 1400 Estimations 1200 1000 800 713 600 512 400 324 228 200 175 155 0 1 2 3 4 5 6 7 8 Agile Software Development with Sprints 71 SCRUM ©SCRUMguides
  67. 67. The Performance metric Velocity – speed at which the team converts pieces of requirements into a working product during a single sprint. Light and powerful metric. Agile Software Development with 72 SCRUM ©SCRUMguides
  68. 68. From Mike Cohn’s “Agile Estimating and Planning” Agile Software Development with 73 SCRUM ©SCRUMguides
  69. 69. Agile Planning Requirements in SCRUM Levels of Planning Project Steering Estimation Techniques Agile Software Development with 74 SCRUM ©SCRUMguides
  70. 70. From Henrik Kniberg and Mike Cohn A typical issue with estimations Agile Software Development with 75 SCRUM ©SCRUMguides
  71. 71. Planning Poker. The Steps Each estimator is given a deck of cards (1,2,3,5,8…) A Product Owner reads a story Estimators are for clarifications until everyone is ready to estimate Each estimator selects a card without showing it to the others By command cards are got turned over People with different estimates have discussions (limit with a timer) The round repeats until estimates converge Agile Software Development with 76 SCRUM ©SCRUMguides
  72. 72. SCRUM and you In your current (next) project which SCRUM practices you think are the MUSTs? Which you find hard to do? Which you find impossible? Which you find unnecessary? Which can you start doing your next working day? Agile Software Development with 78 SCRUM ©SCRUMguides
  73. 73. Questions? Concerns? Any feedback? Thank you! Agile Software Development with 79 SCRUM ©SCRUMguides
  74. 74. My contacts 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 80 SCRUM ©SCRUMguides
  75. 75. 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 81 SCRUM ©SCRUMguides
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×