SlideShare une entreprise Scribd logo
1  sur  71
Kontinuierliche Verbesserung in
PHP-Projekten

Thorsten Rinne ist in Australien, statt dessen
dann ich.




                                                 © 2011 Mayflower GmbH
Continuous
Integration?


     Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 2
Continuous
Inspection?


    Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 3
Continuous Delivery?



         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 4
http://www.flickr.com/photos/nataliaromay/3217596831/




          Warum brauchen wir
            kontinuierliche
            Verbesserung?
                                                       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 5
Wir sind Entwickler




        Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I
Wir sind Entwickler
Wir sind nicht der




        Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I
Wir sind Entwickler
  Wir sind nicht der
Wir sind nicht perfekt,
 aber wir wissen das
      immerhin.
          Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I
„Continuous Improvement is
better than delayed perfection.“

           Mark Twain




               Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 7
Aber was genau ist
 kontinuierliche
  Verbesserung?

        Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 8
„A continuous improvement
 process is an ongoing effort
to improve products, services
  or processes. These efforts
       seek incremental
  improvement over time or
 breakthrough improvement
         all at once.“

               Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 9
Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 10
Continuous
Improvement
      ~

    Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 11
KAI                         ZEN
  =                           =
Wandel                       Gut
         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 12
Attention!
  Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 13
Das komplette
Unternehmen muss
den Wandel wollen!


         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 14
In 3 Schritten zur
 kontinuierlichen
  Verbesserung

        Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 15
1
   Was wollen wir
     erreichen?
Welche Probleme und

        Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 16
2
 Was machen wir
 konkret? Welche
Maßnahmen machen

       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 17
3
Wir entscheiden, welche
     Maßnahmen in
    Verbesserungen

          Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 18
Plan                    Do



Act              Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 19
PLAN:
Was wollen wir


      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 20
Plan                    Do



Act              Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 21
DO:
Durchführen der


      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 22
Plan                    Do



Act              Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 23
CHECK:
What did we achieve?


         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 24
Plan                    Do



Act              Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 25
ACT:
Es zum Standard


      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 26
Plan                    Do



Act              Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 27
Ok, Theorie ist klar,
was macht die Praxis?



          Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 28
SCRUM

  Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 29
SCRUM
                                                 Retrospektiv
                                                 e



 Return
  Gift wrap
 Cancel
 Product
 backlog


              Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM
                                                 Retrospektiv
                      Sprint                     e
                      2 weeks




 Return
  Gift wrap
 Cancel
 Product
 backlog


              Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM
                                                  Retrospektiv
                       Sprint                     e
                       2 weeks
 Sprint goal
   Return



  Gift wrap
 Cancel
 Product
 backlog


               Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM
                                                            Retrospektiv
                                 Sprint                     e
                                 2 weeks
 Sprint goal
   Return
               Sprint
               backlog

  Gift wrap
 Cancel
 Product
 backlog


                         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM
                                                            Retrospektiv
                                 Sprint                     e
                                 2 weeks
 Sprint goal
   Return
               Sprint
                                                                Potentially
               backlog
                                                                shippable
  Gift wrap                                                     product increment
 Cancel
 Product
 backlog


                         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM
                                                            Retrospektiv
                                 Sprint                     e
                                 2 weeks
 Sprint goal
   Return
               Sprint
                                                                Potentially
               backlog
                                                                shippable
  Gift wrap                                                     product increment
 Cancel        CS fixes
 Product
 backlog


                         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM
                                                            Retrospektiv
                                 Sprint                     e
                                 2 weeks
 Sprint goal
   Return
               Sprint
                                                                Potentially
               backlog
 Cancel                                                         shippable
  CS fixes                                                       product increment
Gift wrap
 Product
 backlog


                         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM                       24 hours


                                                            Retrospektiv
                                 Sprint                     e
                                 2 weeks
 Sprint goal
   Return
               Sprint
                                                                Potentially
               backlog
 Cancel                                                         shippable
  CS fixes                                                       product increment
Gift wrap
 Product
 backlog


                         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 30
SCRUM:
     Velocity als
transparente Effizienz

          Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 31
Plan Do

                                                        Act Check
Typische Fehler:
- Retrospektiven ohne C&A
- Shippable
- SCM ignoriert das Produkt selbst
- Velocity wird ignoriert



                 Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 32
Extreme
Programming


    Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 33
Extreme
Programming:


     Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 34
Extreme
Programming:


     Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 35
Extreme
Programming:


     Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 36
Fazit:
Agile Methoden sind für
     kontinuierliche
Verbesserung gemacht!
          Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 37
Scrum + XP + Continuous
 EPIC WIN Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 38
Technische
Kontinuierliche
 Verbesserung


      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 39
Mit einer alten Code-
    Basis arbeiten
         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 40
Code Aging
    Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 41
Technical Debt



      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 42
„We can do things quick and dirty.




                Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 43
„We can do things quick and dirty.
The dirty way leads to technical debt.




                 Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 43
„We can do things quick and dirty.
The dirty way leads to technical debt.

  This can kill a software.“


                 Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 43
Warum auch das
Management keinen
Technical Debt will:

         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 44
Kosten pro Feature / Bug




                       fehlendes Refactoring


           maximaler Businessvalue


                                                     DEAD END!

                                   Zeit
                           Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 45
Ohne Rückzahlung
 der technischen
Schulden stirbt die

        Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 46
Kontinuierliches
Refaktorieren der


       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 47
PHP Tool Support




       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 48
Ein CI-Server muss da
         sein.




         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 49
Ein CI-Server muss da
         sein.
  Selbst wenn man
   keine Unittests

         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 49
(Bitte nicht Sebastian
          Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 50
Jenkins CI Server

       Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 51
Netterweise gibts schon eine schöne PHP-
               Integration:

        http://jenkins-
            php.org
                  Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 52
$   pear   channel-discover   pear.pdepend.org
$   pear   channel-discover   pear.phpmd.org
$   pear   channel-discover   pear.phpunit.de
$   pear   channel-discover   components.ez.no
$   pear   channel-discover   pear.symfony-project.com

$   pear   install   pdepend/PHP_Depend
$   pear   install   phpmd/PHP_PMD
$   pear   install   phpunit/phpcpd
$   pear   install   phpunit/phploc
$   pear   install   PHPDocumentor
$   pear   install   PHP_CodeSniffer
$   pear   install   --alldeps phpunit/PHP_CodeBrowser
$   pear   install   --alldeps phpunit/PHPUnit



                              Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 53
PHP_CodeSniffer



      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 54
Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 55
PHP_CodeBrowser



      Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 56
Cinder



  Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 57
Todolist
1.   Commitment von _jeder_ Seite schaffen
2.   Organisatorische Infrastruktur schaffen
3.   Technische Infrastruktur schaffen
4.   Nachvollziehbare Verbesserung produzieren




                         Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 58
Questions?




    Continuous Improvement in PHP Projects I   Mayflower GmbH   I   25th February   I 59

Contenu connexe

Similaire à Kontinuierliche verbesserung in php projekten

One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011Mayflower GmbH
 
Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Mayflower GmbH
 
One Click Deployment with Jenkins
One Click Deployment with JenkinsOne Click Deployment with Jenkins
One Click Deployment with JenkinsMayflower GmbH
 
Certificates 2019
Certificates 2019Certificates 2019
Certificates 2019MarvBryan
 
PRINCE2 + AGILE = SUCCESS
PRINCE2 + AGILE = SUCCESSPRINCE2 + AGILE = SUCCESS
PRINCE2 + AGILE = SUCCESSJens Hoffmann
 
How to Transition into Product by Product School Instructor
How to Transition into Product by Product School InstructorHow to Transition into Product by Product School Instructor
How to Transition into Product by Product School InstructorProduct School
 
Scrum With TFS 2010
Scrum With TFS 2010Scrum With TFS 2010
Scrum With TFS 2010adrian8three
 
Certified Scrum Product Owner Training
Certified Scrum Product Owner TrainingCertified Scrum Product Owner Training
Certified Scrum Product Owner Trainingguest74599
 

Similaire à Kontinuierliche verbesserung in php projekten (10)

One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011
 
Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10Continuous Improvement in PHP projects - PBC10
Continuous Improvement in PHP projects - PBC10
 
One Click Deployment with Jenkins
One Click Deployment with JenkinsOne Click Deployment with Jenkins
One Click Deployment with Jenkins
 
Certificates 2019
Certificates 2019Certificates 2019
Certificates 2019
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
PRINCE2 + AGILE = SUCCESS
PRINCE2 + AGILE = SUCCESSPRINCE2 + AGILE = SUCCESS
PRINCE2 + AGILE = SUCCESS
 
How to Transition into Product by Product School Instructor
How to Transition into Product by Product School InstructorHow to Transition into Product by Product School Instructor
How to Transition into Product by Product School Instructor
 
Scrum With TFS 2010
Scrum With TFS 2010Scrum With TFS 2010
Scrum With TFS 2010
 
Certified Scrum Product Owner Training
Certified Scrum Product Owner TrainingCertified Scrum Product Owner Training
Certified Scrum Product Owner Training
 
Scrum in a nutshell
Scrum in a nutshellScrum in a nutshell
Scrum in a nutshell
 

Plus de Johann-Peter Hartmann

E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018Johann-Peter Hartmann
 
Warum die it nicht um new work herumkommt
Warum die it nicht um new work herumkommtWarum die it nicht um new work herumkommt
Warum die it nicht um new work herumkommtJohann-Peter Hartmann
 
Legacy php - Sanieren oder Ablösen?
Legacy php  - Sanieren oder Ablösen?Legacy php  - Sanieren oder Ablösen?
Legacy php - Sanieren oder Ablösen?Johann-Peter Hartmann
 
RoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaRoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaJohann-Peter Hartmann
 
Von Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und SystemadministratorenVon Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und SystemadministratorenJohann-Peter Hartmann
 
Lügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeLügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeJohann-Peter Hartmann
 
How not to screw the operating system of your startup
How not to screw the operating system of your startupHow not to screw the operating system of your startup
How not to screw the operating system of your startupJohann-Peter Hartmann
 
Einfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektesEinfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektesJohann-Peter Hartmann
 

Plus de Johann-Peter Hartmann (20)

The End of my Career
The End of my CareerThe End of my Career
The End of my Career
 
E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018E-Commerce vs Architektur CodeTalks.Commerce_2018
E-Commerce vs Architektur CodeTalks.Commerce_2018
 
DevOps beyond the Tools
DevOps beyond the ToolsDevOps beyond the Tools
DevOps beyond the Tools
 
Warum die it nicht um new work herumkommt
Warum die it nicht um new work herumkommtWarum die it nicht um new work herumkommt
Warum die it nicht um new work herumkommt
 
Legacy php - Sanieren oder Ablösen?
Legacy php  - Sanieren oder Ablösen?Legacy php  - Sanieren oder Ablösen?
Legacy php - Sanieren oder Ablösen?
 
RoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für ChinaRoofTop Brains & BBQ: Ein Gästbuch für China
RoofTop Brains & BBQ: Ein Gästbuch für China
 
Die Architektur, die man kann
Die Architektur, die man kannDie Architektur, die man kann
Die Architektur, die man kann
 
NewWork in der Praxis
NewWork in der PraxisNewWork in der Praxis
NewWork in der Praxis
 
Von Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und SystemadministratorenVon Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und Systemadministratoren
 
Das Ende der Karriere
Das Ende der KarriereDas Ende der Karriere
Das Ende der Karriere
 
DevOps jenseits der Tools
DevOps jenseits der ToolsDevOps jenseits der Tools
DevOps jenseits der Tools
 
Reparier Deine Unternehmenskultur!
Reparier Deine Unternehmenskultur!Reparier Deine Unternehmenskultur!
Reparier Deine Unternehmenskultur!
 
Lügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeLügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-Verträge
 
How not to screw the operating system of your startup
How not to screw the operating system of your startupHow not to screw the operating system of your startup
How not to screw the operating system of your startup
 
Einfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektesEinfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektes
 
Agile versus Management WJAX 2014
Agile versus Management WJAX 2014Agile versus Management WJAX 2014
Agile versus Management WJAX 2014
 
Leadership in der IT
Leadership in der ITLeadership in der IT
Leadership in der IT
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Erfolgreiche rewrites
Erfolgreiche rewritesErfolgreiche rewrites
Erfolgreiche rewrites
 
Surviving Complexity
Surviving ComplexitySurviving Complexity
Surviving Complexity
 

Kontinuierliche verbesserung in php projekten

  • 1. Kontinuierliche Verbesserung in PHP-Projekten Thorsten Rinne ist in Australien, statt dessen dann ich. © 2011 Mayflower GmbH
  • 2. Continuous Integration? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 2
  • 3. Continuous Inspection? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 3
  • 4. Continuous Delivery? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 4
  • 5. http://www.flickr.com/photos/nataliaromay/3217596831/ Warum brauchen wir kontinuierliche Verbesserung? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 5
  • 6. Wir sind Entwickler Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I
  • 7. Wir sind Entwickler Wir sind nicht der Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I
  • 8. Wir sind Entwickler Wir sind nicht der Wir sind nicht perfekt, aber wir wissen das immerhin. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I
  • 9. „Continuous Improvement is better than delayed perfection.“ Mark Twain Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 7
  • 10. Aber was genau ist kontinuierliche Verbesserung? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 8
  • 11. „A continuous improvement process is an ongoing effort to improve products, services or processes. These efforts seek incremental improvement over time or breakthrough improvement all at once.“ Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 9
  • 12. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 10
  • 13. Continuous Improvement ~ Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 11
  • 14. KAI ZEN = = Wandel Gut Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 12
  • 15. Attention! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 13
  • 16. Das komplette Unternehmen muss den Wandel wollen! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 14
  • 17. In 3 Schritten zur kontinuierlichen Verbesserung Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 15
  • 18. 1 Was wollen wir erreichen? Welche Probleme und Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 16
  • 19. 2 Was machen wir konkret? Welche Maßnahmen machen Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 17
  • 20. 3 Wir entscheiden, welche Maßnahmen in Verbesserungen Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 18
  • 21. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 19
  • 22. PLAN: Was wollen wir Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 20
  • 23. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 21
  • 24. DO: Durchführen der Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 22
  • 25. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 23
  • 26. CHECK: What did we achieve? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 24
  • 27. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 25
  • 28. ACT: Es zum Standard Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 26
  • 29. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 27
  • 30. Ok, Theorie ist klar, was macht die Praxis? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 28
  • 31. SCRUM Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 32. SCRUM Retrospektiv e Return Gift wrap Cancel Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 33. SCRUM Retrospektiv Sprint e 2 weeks Return Gift wrap Cancel Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 34. SCRUM Retrospektiv Sprint e 2 weeks Sprint goal Return Gift wrap Cancel Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 35. SCRUM Retrospektiv Sprint e 2 weeks Sprint goal Return Sprint backlog Gift wrap Cancel Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 36. SCRUM Retrospektiv Sprint e 2 weeks Sprint goal Return Sprint Potentially backlog shippable Gift wrap product increment Cancel Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 37. SCRUM Retrospektiv Sprint e 2 weeks Sprint goal Return Sprint Potentially backlog shippable Gift wrap product increment Cancel CS fixes Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 38. SCRUM Retrospektiv Sprint e 2 weeks Sprint goal Return Sprint Potentially backlog Cancel shippable CS fixes product increment Gift wrap Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 39. SCRUM 24 hours Retrospektiv Sprint e 2 weeks Sprint goal Return Sprint Potentially backlog Cancel shippable CS fixes product increment Gift wrap Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 40. SCRUM: Velocity als transparente Effizienz Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 41. Plan Do Act Check Typische Fehler: - Retrospektiven ohne C&A - Shippable - SCM ignoriert das Produkt selbst - Velocity wird ignoriert Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 42. Extreme Programming Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 33
  • 43. Extreme Programming: Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 34
  • 44. Extreme Programming: Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 35
  • 45. Extreme Programming: Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 36
  • 46. Fazit: Agile Methoden sind für kontinuierliche Verbesserung gemacht! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 37
  • 47. Scrum + XP + Continuous EPIC WIN Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 38
  • 48. Technische Kontinuierliche Verbesserung Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 39
  • 49. Mit einer alten Code- Basis arbeiten Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 40
  • 50. Code Aging Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 41
  • 51. Technical Debt Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 42
  • 52. „We can do things quick and dirty. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 53. „We can do things quick and dirty. The dirty way leads to technical debt. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 54. „We can do things quick and dirty. The dirty way leads to technical debt. This can kill a software.“ Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 55. Warum auch das Management keinen Technical Debt will: Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 44
  • 56. Kosten pro Feature / Bug fehlendes Refactoring maximaler Businessvalue DEAD END! Zeit Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 45
  • 57. Ohne Rückzahlung der technischen Schulden stirbt die Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 46
  • 58. Kontinuierliches Refaktorieren der Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 47
  • 59. PHP Tool Support Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 48
  • 60. Ein CI-Server muss da sein. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 49
  • 61. Ein CI-Server muss da sein. Selbst wenn man keine Unittests Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 49
  • 62. (Bitte nicht Sebastian Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 50
  • 63. Jenkins CI Server Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 51
  • 64. Netterweise gibts schon eine schöne PHP- Integration: http://jenkins- php.org Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 52
  • 65. $ pear channel-discover pear.pdepend.org $ pear channel-discover pear.phpmd.org $ pear channel-discover pear.phpunit.de $ pear channel-discover components.ez.no $ pear channel-discover pear.symfony-project.com $ pear install pdepend/PHP_Depend $ pear install phpmd/PHP_PMD $ pear install phpunit/phpcpd $ pear install phpunit/phploc $ pear install PHPDocumentor $ pear install PHP_CodeSniffer $ pear install --alldeps phpunit/PHP_CodeBrowser $ pear install --alldeps phpunit/PHPUnit Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 53
  • 66. PHP_CodeSniffer Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 54
  • 67. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 55
  • 68. PHP_CodeBrowser Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 56
  • 69. Cinder Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 57
  • 70. Todolist 1. Commitment von _jeder_ Seite schaffen 2. Organisatorische Infrastruktur schaffen 3. Technische Infrastruktur schaffen 4. Nachvollziehbare Verbesserung produzieren Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 58
  • 71. Questions? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 59

Notes de l'éditeur

  1. \n
  2. Wer benutzt continuous integration?\nJenkins? Bamboo? phpUnderControl?\nPHPUnit? Unittests?\n
  3. PHP_CodeSniffer? phpcpd?\nWer benutzt diese Tools??\n
  4. Wer macht die Releases? Können jederzeit welche passieren? \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. Aber was steht genau dahinter? \n
  10. Dahinter steht die Einsicht, dass eine konsequente Verbesserung überall in kleine Schritten mehr Früchte trägt als die Hoffnung auf ein Silver Bullet, das einen magischen Durchbruch erlaubt.\n
  11. Die Idee stammt nicht von uns Software-Jungs, sonder bildet die Grundlage des Erfolges der japanischen Automobilhersteller in der Nachkriegszeit. \n\n
  12. Die Idee hat sich einen Weg durch alle Branchen gefressen, und findet sich als KaiZen, als TQM, als Kontinuierlicher Verbesserungsprozess und ähnliches in fast jedem mittlerem und grossen Unternehmen. \n\n
  13. KAIZEN sind zwei Worte, \nKAI steht für Wandel | ZEN steht für das Gute\nder Wandel zu etwas Besserem ist also die Motivation.\n
  14. Und da beginnen auch die Probleme - Wandel bringt Probleme\n\n
  15. Wenn das Management, die Projektleiter, die Gamedesigner, die Entwickler oder die Admins den Wandel nicht wollen - weil sie ihm etwa nicht trauen - funktioniert es nicht. Auch nicht der Wandel zum Guten.\n
  16. \n
  17. Dieser Schritt wird vom ganzen Team in einem Workshop gemacht. Im Gegensatz zur klassischen Unternehmensführung geht es hier nicht um Vorgaben des Managements, sondern um eine gemeinsame Einschätzung der Leute, die es betrifft. In Scrum nennt man diesen Workshop Retrospektive. Probleme und Chancen werden durch die Betroffenen priorisiert.\n
  18. Aus den Problemen und Chancen entwickeln wir Maßnahmen - aber nicht jede Maßnahme taugt, denn das Ziel sind kontinuierliche, kleine Verbesserungen und keine Revolutionen. \n
  19. Weiss jemand, wie das geschieht? Woran erkennt man, dass ein Maßnahme eine Verbesserung sein wird? \n
  20. Die Antwort ist einfach: man kann es nicht vorher entscheiden, man muss es probieren. \nEiner der Leute, die damals von MacArthur nach Japan geholt wurden war William Edwards Deming, und hier sehen wir den Deming-Circle, der genau mit der Tatsache umgeht, dass man erst hinterher weiß, obs gut war.\n
  21. Zunächst Planen, das ist der oben genannte Workshop bzw. die Scrum-Retrospektive.\n\n
  22. Second part is DO.\n
  23. Dann wird die Änderung durchgeführt - das muss btw. nicht überall sein, und es muss sich auch nicht um eine grundlegende Änderung handeln. Hiermit kann auch ein kleiner Probelauf, zum Beispiel ein Architectural Spike als Test im nächsten Sprint gemeint sein.\n\n
  24. Der dritte Schritt ist CHECK\n
  25. Die Resultate werden geprüft, und es wird beurteilt, ob es so überall eingeführt werden kann, ob es angepasst und nicht mal probiert werden muss oder ob es einfach nur eine Schnappsidee war. \n\n
  26. Last step: ACT\n
  27. Wenn man festgestellt hat das es taugt, wird es auf breiter Front eingeführt. Bis es aufhört zu taugen und wieder als Problem auftaucht.\n
  28. Einer dieser Cycles bezieht sich also nur auf eine Veränderung, auf nur eine Maßnahme, von der man erst nach dem Durchlauf weiss, ob sie was getaugt hat. \n
  29. \n
  30. \n
  31. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  32. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  33. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  34. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  35. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  36. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  37. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  38. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  39. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  40. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  41. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  42. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  43. In Scrum nimmt die Retrospektive die Rolle der kontinuierlichen Verbesserung ein. Auch das konsequente Liefern von potenziell lieferbaren Produkten fokussiert auf kleine statt grundlegende Änderungen.\n
  44. Testgetriebene Entwicklung ist klassische Kontinuierliche Verbesserung: Es wird das Soll definiert, und dann das Ist so geändert, dass das Soll messbar erfüllt wird.\n
  45. Jetzt machen wir - wie auch hier - schon eine Weile Scrum, und da gibts auch schon Erfahrungen, warum das nicht immer klappt. \n
  46. Auch Extreme Programming bringt einige Ideen aus der kontinuierlichen Verbesserung mit.\n
  47. Testgetriebene Entwicklung ist klassische Kontinuierliche Verbesserung: Es wird das Soll definiert, und dann das Ist so geändert, dass das Soll messbar erfüllt wird.\n
  48. Kontinuierliche Integration sichert das Vorgehen in kleinen Schritten, und die permanente Prüfung dieser kleinen Schritte. Wenn sie das Gesamtsystem stören, wird es unmittelbar behoben.\n
  49. Refactoring beruht auf der Prüfung des bestehenden und passt dieses gegebenenfalls an.\n
  50. \n
  51. Wir haben also ohnehin schon die Plattform, die uns kontinuierliche Verbesserung bringt.\n
  52. Ein paar praktische Beispiele für kontinuierliche Verbesserung in PHP-Projekten.\n
  53. Bei PHP gab es ja nicht umsonst die Dark Ages. Erinnert sich noch jemand an PHP-Code, den er 2001 programmiert hat? Angeblich soll es sogar sehr erfolgreiche Browsergames auf einer solchen Basis geben. \n
  54. Aber auch bei neuem Code haben wir in PHP solche Probleme, schliesslich wollen die Leute schnelle Featureänderungen und viel Evolution. Das ist massgeblich für die Plattformentscheidung zu PHP:\n
  55. Das, was wir dann unsichtbar in der Software mitschleppen ist technical debt.\n
  56. Erfunden hat das Ward Cunningham 1992\n
  57. Erfunden hat das Ward Cunningham 1992\n
  58. Und damit will es btw genau Test Driven Development, Refactoring, etc. \n
  59. Wenn ich die Lebenszeit der Software auf eine Zeitachse lege, dann gibt es eine natürliches Ende des Lebens der Software - wenn der Aufwand zur Änderung höher ist als der Businessvalue der Änderung. Häufige Änderungen beschleunigen dieses Leben, Refactoring verlängert es.\n
  60. Ich kann also mit dem Einsatz von Refactoring nicht nur die laufenden Kosten der Software mittelfristig senken, sondern auch die Gesamtlebenszeit - und damit den Gesamt-ROI - vergrössern.\n
  61. Und da wir alle das Pech haben, dass unsere Lösungen erfolgreich sind und sich tatsächlich weiterentwickeln, müssen wir auch alle Refactorn.\n
  62. Netterweise hilft einem die PHP-Welt dabei, und versucht uns den Weg zu billig und schmerzfrei wie möglich zu machen.\n
  63. \n
  64. \n
  65. State-Of-The-Art tool ist Jenkins.\n
  66. Installation for PHPUnit, PHP_Depend, PHPMD, phpcpd, phploc,\nPHP_Documentator, PHP_CodeSniffer and PHP_CodeBrowser\n
  67. \n
  68. Der Codesniffer hilft mir bei einigen Varianten von Technical Debt - zB fehlender Inline-Dokumentation, schlechter Struktur und unlesbarem Code. Er verbilligt mir, in Deming-Circle gesprochen, den Plan-Anteil\n
  69. PHPMD ist der PHP Mess Detector, der ähnliches tut - allerdings tiefer in den Syntax und die Struktur eingesteigt, und auch Aussagen über Vererbungstiefe und ähnliches geben kann. Wie man an diesem Feature sehen kann kommt er aus der Java-Welt.\n
  70. Der Codebrowser kommt von Mayflower und ist ein einfaches Tool, dass die Ausgaben aller oben genannter Tools direkt im Sourcecode anzeigt. Das verbilligt den Do-Teil aus dem Deming-Circle, weil ich die Verbesserungen on the fly machen kann, wenn ich den Code ohnehin gerade verstehe.\n\n
  71. Cinder macht das gleiche - nur innerhalb von Eclipse. Die Ergebnisse aus meiner Jenkins-CI werden direkt auf meinen Code in der IDE abgebildet - und auf die Weise kann ich dort unmittelbar an meinem Code Verbesserungen vornehmen.\n\n
  72. \n
  73. \n