A sprint in the life of
Drupal Gardens
  Jacob Singh and Chris Brookins
                                   26. aug 9:00
                                   VPS.NET
Who are we?
 Jacob Singh
 – Principal engineer, Acquia
 – @jacobsingh
 – jacob.singh@acquia.com
 Chris Brookins
 – VP Engineering, Acquia
 – @chrisbrookins
 – chris@acquia.com




                                2
Acquia & Engineering
 70 Acquia employees
 22 in engineering                              Other Eng


 4 engineering scrum teams
                                  Gardens Eng
 – Drupal Gardens
 – Acquia Hosting
                                                            Non-Eng
 – Web crawler
 – Acquia.com
 Drupal Gardens team
 – 14 people, 50% distributed
 – 7 Drupalists, 2 front-end dev, 1 QA, 1 PO
 – 2 designers, 1 doc shared (80% on Gardens)

                                                                      3
Drupal Gardens
 Drupal 7 (since alpha1) + contrib modules
 Drupal as a service + contrib + ThemeBuilder + themes
 Over 18,000 Drupal 7 sites created in gardens
 No lock-in: You can export your site’s code & DB any time




                                                             4
Product Owner
 Identi es and validates personas
 Drives story de nition
 – Facilitates stakeholder consensus
 Owns the product backlog of stories & bugs
 Makes sure team’s clarifying questions are answered
 Accepts or rejects stories in sprint
 Demos stories that are done
 Decides if results of Sprint are releasable




                                                       5
Scrum Master
 Ensures all parties follow roles & responsibilities & events
 Protects the team from distractions
 Removes impediments / escalates as needed
 Doesn’t task or ‘manage’ team, instead raises questions
 Doesn’t let the team walk off a cliff
 Ensures conversations happen
 Part time




                                                                6
Team
Self-organizes
Takes into sprint top priority items from backlog
Determines sprint capacity
Tasks out work and gets it done
De nes their own de nition of done and sticks to it




                                                      7
Drupal Gardens Sprint timeline
             Sprint Start
             Start D7 daily merge               All Team Test                Gardening Day

Week 1                                 Week 2                          Week 3
                SOS                                SOS                           SOS
 1                                 5                             14                        19
         2     3                                9    11     13                      17          20

                                                                      • Demo
     Planning Day                        Last D7                      • Retrospective
                                                                      • Backlog grooming
                   Gardening Day             Pencils down             • Release



             Continuous research/sketch/prototype/visual design & review loop




                                                                                                     8
Drupal Gardens Sprint timeline
             Sprint Start
             Start D7 daily merge                All Team Test                Gardening Day

Week 1                                  Week 2                          Week 3
                SOS                                 SOS                            SOS
 1                                  5                             14                        19
         2      3                                9    11     13                       17         20

     Planning                                                          • Demo
     Day                                  Last D7                      • Retrospective
                                                                       • Backlog grooming
                    Gardening Day             Pencils down             • Release



             Continuous research/sketch/prototype/visual design & review loop




                                                                                                      9
Planning
 Plans are outdated immediately
 Planning is a royal pain the ass, but concentrated
 Go through ‘The checklist’
 Vote sts to 5




                                                      10
Planning day checklist
 1. Determine team capacity
 2. Identify engineering debt that we need to do
 3. Stories validated ready to start
 4. Research spike unfamiliar technologies
 5. Schedule mid-sprint PO/Design review
 6. Pre-assign items that 1 person would best do
 7. Identify dependancies and prioritize stories
 8. Take sized stories/bugs & task according to De nition of Done




                                                                    11
De nition of done
 Developed according to Drupal coding standards
 Commented
 Peer reviewed
 Write system tests, but frankly not enough
 Doc notes added to story (as food for writer)
 In trunk, working and validated on test cluster
 PO & designer have reviewed; developer applies feedback
 If necessary, stress/load tested
 Ready to be demoed and go live



                                                           12
Drupal Gardens Sprint timeline
             Sprint Start
             Start D7 daily merge               All Team Test                   Gardening Day

Week 1                                 Week 2                          Week 3
                SOS                                SOS                            SOS
 1                                 5                             14                        19
         2     3                                9    11     13                       17         20

     Planning Day                                                     • Demo
                                         Last D7                      • Retrospective
                                                                      • Backlog grooming
                   Gardening Day             Pencils down             • Release




                              Scrum every day


                                                                                                     13
Scrum
Answer the 3 Qs (strive for verbally)
Inspect the burndown chart (and adapt if needed)
Post scrum discussions
PO/Designers available to answer questions
Why?




                                                   14
Drupal Gardens Sprint timeline
             Sprint Start
             Start D7 daily merge            All Team Test                   Gardening Day

Week 1                              Week 2                          Week 3
                SOS                             SOS                              SOS
 1                              5                             14                         19
         2     3                             9    11     13                         17        20

                                                                   • Demo
     Planning Day                     Last D7                      • Retrospective
                                                                   • Backlog grooming
                   Gardening Day          Pencils down             • Release



             Continuous research/sketch/prototype/visual design & review loop




                                                                                                   15
Gardening days (community work)




Almost always working on GPL Drupal code.
Connection w/ the community, personal grati cation
Allows existing projects to continue
Drives innovation

                                                     16
Drupal Gardens Sprint timeline
              Sprint Start
             Start D7 daily                     All Team Test               Gardening Day

Week 1                                 Week 2                         Week 3
                SOS                              SOS                             SOS
 1                                 5                            14                        19
         2     3                                9    11    13                       17         20

                                                                     • Demo
     Planning Day                                                    • Retrospective
                                        Last D7 merge
                                                                     • Backlog grooming
                   Gardening Day            Pencils down             • Release



             Continuous research/sketch/prototype/visual design & review loop




                                                                                                    17
How we track Drupal 7 & contrib




                                  18
Kitten killing manifest




                          19
Supporting engineering systems
 Continuous integration
 – jsUnit
 – Selenium system tests
 – BrowserMob load tests
 – Staging clusters (trunk and branch)
     Based on daily production backups.
 Toolchain
 – Jira, Greenhopper, Fisheye, Crucible, Google apps
 How we update 20k sites
 – Scales, concurrent updates, atomic



                                                       20
Jira taskboard
 2nd best thing to colocation




                                21
Crucible code reviews




                        22
Drupal Gardens Sprint timeline
             Sprint Start
             Start D7 daily merge                All Team Test               Gardening Day

Week 1                                 Week 2                          Week 3
                SOS                                SOS                            SOS
 1                                 5                             14                        19
         2     3                                 9    11    13                       17         20

                                                                      • Demo
     Planning Day                        Last D7                      • Retrospective
                                                                      • Backlog grooming
                   Gardening Day                Pencils down          • Release



             Continuous research/sketch/prototype/visual design & review loop




                                                                                                     23
Drupal Gardens Sprint timeline
             Sprint Start
             Start D7 daily merge               All Team Test                  Gardening Day

Week 1                                 Week 2                          Week 3
                SOS                                SOS                             SOS
 1                                 5                             14                        19
         2     3                                9    11     13                        17        20

                                                                       •Demo
     Planning Day                        Last D7                      • Retrospective
                                                                      • Backlog grooming
                   Gardening Day             Pencils down              • Release



             Continuous research/sketch/prototype/visual design & review loop




                                                                                                     24
Demo day
All company invited
Goals and results (Done/Not done/Adds) quickly reviewed
PO does the demo
Only demo working software that is ‘ready to release’




                                                          25
26
Retrospective
 The Team, Scrum Master, PO
 Stop, Breath. Re ect.
 Most important meeting

 Affirm the good
 Acknowledge the bad
 Propose any solutions
 Discuss
 Commit to improve



                              27
From forum post (bug) to release notes
 User posts
 Goes into backlog and post updated w/backlog tracking #
 Triaged (eng/support/po) as valid, achievable, and a priority
 Sized
 Ranked by PO among other defects
 Taken into sprint
 Fixed and tested for end of sprint
 Publish in release notes




                                                             28
Challenges




             29
Challenges
 Hard to see big picture, hard to break down Epics
 – story map




                                                     29
Challenges
 Hard to see big picture, hard to break down Epics
 – story map
 Lack of PO time ranking bug backlog
 – Add customer service to ranking




                                                     29
Challenges
 Hard to see big picture, hard to break down Epics
 – story map
 Lack of PO time ranking bug backlog
 – Add customer service to ranking
 Balancing perfection vs. release
 – Team sketching smaller stories
 – Stop at prototypes/wireframe




                                                     29
Challenges
 Hard to see big picture, hard to break down Epics
 – story map
 Lack of PO time ranking bug backlog
 – Add customer service to ranking
 Balancing perfection vs. release
 – Team sketching smaller stories
 – Stop at prototypes/wireframe
 Start / Stop costs / Min WIP / Visibility++
 – Investigating Kanban




                                                     29
Challenges
 Hard to see big picture, hard to break down Epics
 – story map
 Lack of PO time ranking bug backlog
 – Add customer service to ranking
 Balancing perfection vs. release
 – Team sketching smaller stories
 – Stop at prototypes/wireframe
 Start / Stop costs / Min WIP / Visibility++
 – Investigating Kanban
 Unit testing Drupal
 – cucumber/selenium integration

                                                     29
KISS me
 What is the point of all these processes?
 – Delivering the highest business value as fast as possible
 But agile is based on values, not processes. The processes
 re-enforce the qualities we want.
 – openness
 – growth (learning)
 – commitment
 – respect
 – restraint (focus)




                                                               30
http://cph2010.drupal.org/node/8628

A Sprint in the life of Drupalgardens

  • 1.
    A sprint inthe life of Drupal Gardens Jacob Singh and Chris Brookins 26. aug 9:00 VPS.NET
  • 2.
    Who are we? Jacob Singh – Principal engineer, Acquia – @jacobsingh – jacob.singh@acquia.com Chris Brookins – VP Engineering, Acquia – @chrisbrookins – chris@acquia.com 2
  • 3.
    Acquia & Engineering 70 Acquia employees 22 in engineering Other Eng 4 engineering scrum teams Gardens Eng – Drupal Gardens – Acquia Hosting Non-Eng – Web crawler – Acquia.com Drupal Gardens team – 14 people, 50% distributed – 7 Drupalists, 2 front-end dev, 1 QA, 1 PO – 2 designers, 1 doc shared (80% on Gardens) 3
  • 4.
    Drupal Gardens Drupal7 (since alpha1) + contrib modules Drupal as a service + contrib + ThemeBuilder + themes Over 18,000 Drupal 7 sites created in gardens No lock-in: You can export your site’s code & DB any time 4
  • 5.
    Product Owner Identies and validates personas Drives story de nition – Facilitates stakeholder consensus Owns the product backlog of stories & bugs Makes sure team’s clarifying questions are answered Accepts or rejects stories in sprint Demos stories that are done Decides if results of Sprint are releasable 5
  • 6.
    Scrum Master Ensuresall parties follow roles & responsibilities & events Protects the team from distractions Removes impediments / escalates as needed Doesn’t task or ‘manage’ team, instead raises questions Doesn’t let the team walk off a cliff Ensures conversations happen Part time 6
  • 7.
    Team Self-organizes Takes into sprinttop priority items from backlog Determines sprint capacity Tasks out work and gets it done De nes their own de nition of done and sticks to it 7
  • 8.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily merge All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 • Demo Planning Day Last D7 • Retrospective • Backlog grooming Gardening Day Pencils down • Release Continuous research/sketch/prototype/visual design & review loop 8
  • 9.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily merge All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 Planning • Demo Day Last D7 • Retrospective • Backlog grooming Gardening Day Pencils down • Release Continuous research/sketch/prototype/visual design & review loop 9
  • 10.
    Planning Plans areoutdated immediately Planning is a royal pain the ass, but concentrated Go through ‘The checklist’ Vote sts to 5 10
  • 11.
    Planning day checklist 1. Determine team capacity 2. Identify engineering debt that we need to do 3. Stories validated ready to start 4. Research spike unfamiliar technologies 5. Schedule mid-sprint PO/Design review 6. Pre-assign items that 1 person would best do 7. Identify dependancies and prioritize stories 8. Take sized stories/bugs & task according to De nition of Done 11
  • 12.
    De nition ofdone Developed according to Drupal coding standards Commented Peer reviewed Write system tests, but frankly not enough Doc notes added to story (as food for writer) In trunk, working and validated on test cluster PO & designer have reviewed; developer applies feedback If necessary, stress/load tested Ready to be demoed and go live 12
  • 13.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily merge All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 Planning Day • Demo Last D7 • Retrospective • Backlog grooming Gardening Day Pencils down • Release Scrum every day 13
  • 14.
    Scrum Answer the 3Qs (strive for verbally) Inspect the burndown chart (and adapt if needed) Post scrum discussions PO/Designers available to answer questions Why? 14
  • 15.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily merge All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 • Demo Planning Day Last D7 • Retrospective • Backlog grooming Gardening Day Pencils down • Release Continuous research/sketch/prototype/visual design & review loop 15
  • 16.
    Gardening days (communitywork) Almost always working on GPL Drupal code. Connection w/ the community, personal grati cation Allows existing projects to continue Drives innovation 16
  • 17.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 • Demo Planning Day • Retrospective Last D7 merge • Backlog grooming Gardening Day Pencils down • Release Continuous research/sketch/prototype/visual design & review loop 17
  • 18.
    How we trackDrupal 7 & contrib 18
  • 19.
  • 20.
    Supporting engineering systems Continuous integration – jsUnit – Selenium system tests – BrowserMob load tests – Staging clusters (trunk and branch) Based on daily production backups. Toolchain – Jira, Greenhopper, Fisheye, Crucible, Google apps How we update 20k sites – Scales, concurrent updates, atomic 20
  • 21.
    Jira taskboard 2ndbest thing to colocation 21
  • 22.
  • 23.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily merge All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 • Demo Planning Day Last D7 • Retrospective • Backlog grooming Gardening Day Pencils down • Release Continuous research/sketch/prototype/visual design & review loop 23
  • 24.
    Drupal Gardens Sprinttimeline Sprint Start Start D7 daily merge All Team Test Gardening Day Week 1 Week 2 Week 3 SOS SOS SOS 1 5 14 19 2 3 9 11 13 17 20 •Demo Planning Day Last D7 • Retrospective • Backlog grooming Gardening Day Pencils down • Release Continuous research/sketch/prototype/visual design & review loop 24
  • 25.
    Demo day All companyinvited Goals and results (Done/Not done/Adds) quickly reviewed PO does the demo Only demo working software that is ‘ready to release’ 25
  • 26.
  • 27.
    Retrospective The Team,Scrum Master, PO Stop, Breath. Re ect. Most important meeting Affirm the good Acknowledge the bad Propose any solutions Discuss Commit to improve 27
  • 28.
    From forum post(bug) to release notes User posts Goes into backlog and post updated w/backlog tracking # Triaged (eng/support/po) as valid, achievable, and a priority Sized Ranked by PO among other defects Taken into sprint Fixed and tested for end of sprint Publish in release notes 28
  • 29.
  • 30.
    Challenges Hard tosee big picture, hard to break down Epics – story map 29
  • 31.
    Challenges Hard tosee big picture, hard to break down Epics – story map Lack of PO time ranking bug backlog – Add customer service to ranking 29
  • 32.
    Challenges Hard tosee big picture, hard to break down Epics – story map Lack of PO time ranking bug backlog – Add customer service to ranking Balancing perfection vs. release – Team sketching smaller stories – Stop at prototypes/wireframe 29
  • 33.
    Challenges Hard tosee big picture, hard to break down Epics – story map Lack of PO time ranking bug backlog – Add customer service to ranking Balancing perfection vs. release – Team sketching smaller stories – Stop at prototypes/wireframe Start / Stop costs / Min WIP / Visibility++ – Investigating Kanban 29
  • 34.
    Challenges Hard tosee big picture, hard to break down Epics – story map Lack of PO time ranking bug backlog – Add customer service to ranking Balancing perfection vs. release – Team sketching smaller stories – Stop at prototypes/wireframe Start / Stop costs / Min WIP / Visibility++ – Investigating Kanban Unit testing Drupal – cucumber/selenium integration 29
  • 35.
    KISS me Whatis the point of all these processes? – Delivering the highest business value as fast as possible But agile is based on values, not processes. The processes re-enforce the qualities we want. – openness – growth (learning) – commitment – respect – restraint (focus) 30
  • 36.