SlideShare a Scribd company logo
1 of 21
Download to read offline
Utvecklarpraxis för kvalité
Hur bär vi oss åt för att hålla kvalitén uppe i våra (agila) projekt?
Magnus Mickelsson, Citerus AB
magnus.mickelsson@citerus.se




                                                                        1
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




       Om Citerus

       • Citerus är ett konsult- och utbildningsföretag som hjälper sina kunder att lyckas med
            mjukvaruutveckling. Sedan 1996 har vi utvecklat mjukvara, lett projekt, förbättrat
            utvecklarpraxis och förfinat ledningsmetoder åt företag från många olika branscher. Vi
            uppnår resultat genom att höja kvalitetsribban, sätta människor i första rummet och
            minska på byråkratin.
        Om Magnus Mickelsson
        ‣ I branschen sedan 1996 - systemutvecklare och arkitekt                               QuickTime och en
                                                                                               -dekomprimerare
                                                                                       krävs för att kunna se bilden.




        ‣ Certifierad Scrum Master

        ‣ Utbildar inom TDD, refactoring och övriga Engineering Practices

        ‣ Fokus på J2EE-plattformen




                                                                                                                        2
Vad går fel med vår kod och våra projekt?
                                    Hjälper Agile-metoder?
1985-1987 -- Therac-25 medical accelerator. A radiation therapy device malfunctions and delivers lethal radiation doses.

      Because of a subtle bug called a "race condition” … At least five patients die; others are seriously injured.




                                                                                                                           3
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Agile miljö

       • Självförbättrande
       • Fokus på ”rätt saker”
       • Affärsnytta - bra kvalité - snabbt
       • Kunna lösa problem i teamet
       • Tydligt och synligt




                                                                                 4
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Hinder och fällor

        •Otydliga/oprioriterade krav

        •Ingen förbättringsprocess

        •Ingen koll på konsekvenser

        •”Trasiga fönster”

        •Teamet kan inte arbeta fokuserat



                                                                                 5
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Hur handskas vi med detta på teknisk nivå?

        •KLART-kriterier
        •Engineering practices
        •Stop the line




                                                                                 6
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




       Stop-the-line!




                                                                                 7
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




         Engineering Practices
                                                                                                     Documentation
                         Visual feedback



                                                                                    Refactoring         Continuous Integration

                       TDD & Testing
                                                                                 Automated build- and release


                                                                                   Version control
                                                                                                                             8
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Synbar, snabb feedback




                                                                                 9
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        TDD
                                                                                   Think



                                                                                 Write test
                                                                                 that fails


               • Ger snabb feedback till utvecklarna                             Write code
                                                                                 to pass test

                                                                                                No
               • Fokusera på domänen (DDD)
                                                                                   Do the            Yes
                                                                                 tests pass?

               • Hitta ”rytmen”
                                                                                     Yes


                                                                                  Refactor


                                                                                                No

                                                                                   Do the
                                                                                 tests pass?



                                                                                                           10
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Agil testning - hitta versus undvika buggar

      Peer
      programming
             Developer                                                                              Customer
             testing                                                                   Agile        tries to
                                                                                       testing      use it

             Quality of code                                                     Functionality   Acceptance


                                                          Test automation



                                                                                                               11
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Refactoring


               •Konsten att städa sin egen röra

               •Naturlig del av dagliga arbetet

               •Laga trasiga fönster kontinuerligt

               •Kräver automatiserade tester




                                                                                 12
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Kontinuerlig integration och ”One click build”

         •Enkelt att bygga hela produkten
                •Automatisera!
         •Bygg vid varje förändring
         •Statusrapporter som del av bygget
         •Larm då bygget kraschar



                                                                                 13
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Dokumentation i Wiki

         •Lätt att komma åt och jobba med

         •Korslänkar

         •Sökbar

         •Versionshanterad

         •Dock: lätt att få ”trasiga fönster”


                                                                                 14
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        KLART


         • Kodat
                 •Koden städad
                 •Lyder riktlinjer
                 •Lever upp till kraven
                 •Inga to-dos
                 •Analyserad (Findbugs, PMD etc)


                                                                                 15
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        KLART


         • Testat
                 •Automatiserade tester
                 •Manuella tester
                 •Code coverage




                                                                                 16
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        KLART


         • Reviewat
                 •Pair programming eller peer review
                 •Design granskad




                                                                                 17
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        KLART


         • Administrativt
                 •Dokumentation uppdaterad
                 •Byggscript/verktyg uppdaterade
                 •Inga ofärdiga uppgifter




                                                                                 18
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        KLART


         • Levererans
                 •Kod incheckad
                 •Byggt och deployat/paketerat




                                                                                 19
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




       Nästa steg?

        •Fundera över nuläget

        •Fundera vart ni vill komma

        •Utbildningar/Litteratur

        •Hjälp att få team att komma igång

        •Uppmuntra ”kunskapsföretaget”



                                                                                 20
Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183




        Frågor?




                                                                  • magnus.mickelsson@citerus.se




                                                                                                   21

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Utvecklarpraxis för kvalitet i agila projekt

  • 1. Utvecklarpraxis för kvalité Hur bär vi oss åt för att hålla kvalitén uppe i våra (agila) projekt? Magnus Mickelsson, Citerus AB magnus.mickelsson@citerus.se 1
  • 2. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Om Citerus • Citerus är ett konsult- och utbildningsföretag som hjälper sina kunder att lyckas med mjukvaruutveckling. Sedan 1996 har vi utvecklat mjukvara, lett projekt, förbättrat utvecklarpraxis och förfinat ledningsmetoder åt företag från många olika branscher. Vi uppnår resultat genom att höja kvalitetsribban, sätta människor i första rummet och minska på byråkratin. Om Magnus Mickelsson ‣ I branschen sedan 1996 - systemutvecklare och arkitekt QuickTime och en -dekomprimerare krävs för att kunna se bilden. ‣ Certifierad Scrum Master ‣ Utbildar inom TDD, refactoring och övriga Engineering Practices ‣ Fokus på J2EE-plattformen 2
  • 3. Vad går fel med vår kod och våra projekt? Hjälper Agile-metoder? 1985-1987 -- Therac-25 medical accelerator. A radiation therapy device malfunctions and delivers lethal radiation doses. Because of a subtle bug called a "race condition” … At least five patients die; others are seriously injured. 3
  • 4. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Agile miljö • Självförbättrande • Fokus på ”rätt saker” • Affärsnytta - bra kvalité - snabbt • Kunna lösa problem i teamet • Tydligt och synligt 4
  • 5. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Hinder och fällor •Otydliga/oprioriterade krav •Ingen förbättringsprocess •Ingen koll på konsekvenser •”Trasiga fönster” •Teamet kan inte arbeta fokuserat 5
  • 6. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Hur handskas vi med detta på teknisk nivå? •KLART-kriterier •Engineering practices •Stop the line 6
  • 7. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Stop-the-line! 7
  • 8. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Engineering Practices Documentation Visual feedback Refactoring Continuous Integration TDD & Testing Automated build- and release Version control 8
  • 9. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Synbar, snabb feedback 9
  • 10. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 TDD Think Write test that fails • Ger snabb feedback till utvecklarna Write code to pass test No • Fokusera på domänen (DDD) Do the Yes tests pass? • Hitta ”rytmen” Yes Refactor No Do the tests pass? 10
  • 11. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Agil testning - hitta versus undvika buggar Peer programming Developer Customer testing Agile tries to testing use it Quality of code Functionality Acceptance Test automation 11
  • 12. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Refactoring •Konsten att städa sin egen röra •Naturlig del av dagliga arbetet •Laga trasiga fönster kontinuerligt •Kräver automatiserade tester 12
  • 13. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Kontinuerlig integration och ”One click build” •Enkelt att bygga hela produkten •Automatisera! •Bygg vid varje förändring •Statusrapporter som del av bygget •Larm då bygget kraschar 13
  • 14. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Dokumentation i Wiki •Lätt att komma åt och jobba med •Korslänkar •Sökbar •Versionshanterad •Dock: lätt att få ”trasiga fönster” 14
  • 15. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 KLART • Kodat •Koden städad •Lyder riktlinjer •Lever upp till kraven •Inga to-dos •Analyserad (Findbugs, PMD etc) 15
  • 16. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 KLART • Testat •Automatiserade tester •Manuella tester •Code coverage 16
  • 17. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 KLART • Reviewat •Pair programming eller peer review •Design granskad 17
  • 18. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 KLART • Administrativt •Dokumentation uppdaterad •Byggscript/verktyg uppdaterade •Inga ofärdiga uppgifter 18
  • 19. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 KLART • Levererans •Kod incheckad •Byggt och deployat/paketerat 19
  • 20. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Nästa steg? •Fundera över nuläget •Fundera vart ni vill komma •Utbildningar/Litteratur •Hjälp att få team att komma igång •Uppmuntra ”kunskapsföretaget” 20
  • 21. Citerus - Magnus Mickelsson, 2009 - magnus.mickelsson@citerus.se - 0708-444183 Frågor? • magnus.mickelsson@citerus.se 21

Editor's Notes

  1. 2006 Standish Report: 46% av alla projekt misslyckas att leverera ”on-time, within budget or in scope”. "A Standish Group research report shows a staggering 31.1% of projects will be canceled before they ever get completed. Further results indicate 52.7% of projects will cost 189% of their original estimates” "On the success side, the average is only 16.2% for software projects that are completed on time and on budget. In the larger companies, the news is even worse: only 9% of their projects come in on time and on budget.” http://www.standishgroup.com/sample_research/chaos_1994_1.php
  2. Korsfunktionella team
  3. ” Trasiga fönster”: Kommer ”döda buggar” tillbaka till liv? Har ni problem att exakt återskapa en release? Kan jobb gå förlorat om någonting går sönder? Finns det kod i systemet som ingen törs röra? Förstår utvecklare och managers inte varandra?
  4. Engineering practices för att: Hålla komplexiteten under kontroll Lättare hantera överraskningar Automatisera lättare, vanligt förekommande, uppgifter Snabb feedback till teamet
  5. Vad är värt att “stoppa linjen” för? Kraschat bygge? Processen funkar inte?
  6. Engineering practices - några av de viktigare punkterna att ha på plats och se till att de fungerar för att ett projekt ska kunna prestera bra.
  7. Helikopternivå - större projekt med flera team eller en organistation - karta över pågående projekt/team, hinder som behöver åtgärdas, notiser över saker som behöver synkas med andra team. Lokal nivå - mindre projekt eller enstaka team - lappar med vad som behöver göras i nuvarande sprint, hinderlista, resultat av byggen, kvalitetsrapporter etc.
  8. Att ha stödet av automatiserade tester ger snabb feedback och ett säkerhetsbälte som gör att man kan fortsätta gå framåt, och inte konstant titta i backspegeln för att se om något gick sönder vid något tillägg eller ändring.
  9. Michael Feathers WEWLC sid 59: Pay now or pay more later. Either write tests as you make your changes or live with the fact that it is going to get tougher over time.
  10. Test-Driven development If we estimate 2000 users and lock into that kind of technology, what happens when they suddenly say, ”oh it’s 20000”?
  11. Flera olika sorters byggen - lokalt för utvecklare, ”continuous integration” med rapporter och status, ”daily build”, release-bygge, t.ex.
  12. Att använda en Wiki kräver att man ”refactorerar” Wikin, för att förhindra att informationen blir rörig, ologisk och/eller inaktuell.
  13. Vad för automatiserade tester? Vad för manuella tester?