SlideShare una empresa de Scribd logo
1 de 84
Descargar para leer sin conexión
Continuous Improvement in PHP Projects


Thorsten Rinne I 25th February 201 London, UK
                                  1,




                                                © 201 Mayflower GmbH
                                                     1
Team Lead
Scrum Master
Head of Open Source Labs

@ThorstenRinne
                           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 2
Who are
 you?


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




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




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




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




               Why do we need
           Continuous Improvement?

                                                       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 7
Look at this real life
    example...


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 8
1966: This was not a goal.
                 Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 9
2010: This was a goal.
         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 10
We are developers.
We are not perfect.
We‘re not politicians.


              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 12
What exactly is
Continuous Improvement?


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

                    Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 14
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 15
Continuous Improvement
           ~
       KAIZEN

             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 16
KAI      ZEN
   =        =
Change     Good
         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 17
Attention!
      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 18
Your Management needs a
     will for changes!


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 19
You need 3 steps for
Continuous Improvement.



             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 20
1
What are we trying to
   accomplish?


            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 21
2
 How will we know that a
change is an improvement?


              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 22
3
What changes will result in
     improvements?


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



Act    Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 24
PLAN:
How should it be?


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



Act    Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 26
DO:
What and how do we do it?


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



Act    Check



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


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



Act    Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 30
ACT:
What else do we have to do?


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



Act    Check



       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 32
So, how to integrate
Continuous Improvement
  in your daily work?


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 33
I t‘s

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

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




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


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




           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 37
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 38
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 39
Agile methods are about
 working in iteratons.


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 40
Conclusion:
Combine agile methods!


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 41
Scrum + XP + Continuous Improvement
     EPIC WIN       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 42
Common problems
 in PHP projects


         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 43
Code Aging
      Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 44
Technical Debt




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 45
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 46
Now: The slide for your
   management.


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 47
Costs per change request




                           rising frequency




                                                DEAD END!

                                Benefits per change request
                                    Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 48
So please pay back your
     technical debt!


             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 49
Always refactor your
    codebase!


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




          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 51
You need a continuous
  integration server.
 Even if you don‘t do
       unittests.

             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 52
But don‘t tell that Sebastian!
                 Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 53
Jenkins CI Server

          Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 54
Template for Jenkins Jobs for PHP Projects


       http://jenkins-php.org

                        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 55
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 56
$   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 57
PHP_CodeSniffer




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 58
Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 59
Why do we need PHPMD?




            Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 60
How does PHPMD work?




<?php
print "Hello, world!";   PHP_Depends scans your code
?>




                         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 61
How does PHPMD work?


<?xml version="1.0" encoding="UTF-8"?>
<PDepend>
  <Packages>
    <Package name="PHP_CodeBrowser">
      <Stats>
        <TotalClasses>10</TotalClasses>
        <ConcreteClasses>9</ConcreteClasses>
        ...
</PDepend>


                                             PHPMD scans the report ...




                                     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 62
How does PHPMD work?



<?xml version="1.0" encoding="UTF-8" ?>
<pmd version="0.2.7" timestamp="2010-10-28T16:27:21+02:00">
  <file name="/Users/thorsten/htdocs/PHP_CodeBrowser/src/
CLIController.php">
    <violation beginline="201" endline="275"
rule="CyclomaticComplexity" ruleset="Code Size Rules"
package="PHP_CodeBrowser" externalInfoUrl="http://phpmd.org/rules/
codesize.html#cyclomaticcomplexity" class="CbCLIController"
method="run" priority="3">
      The method run() has a Cyclomatic Complexity of 10.
    </violation>

    ...
</pmd>




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




         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 64
What is PHP_CodeBrowser?



I a code browser :-)
I syntax highlighting for PHP files
I colored error sections found by PHP QA tools like
   •PHPUnit
   •phpcpd
   •PHP_CodeSniffer
   •Code Coverage
   •PHPMD




                                             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 65
How to get PHP_CodeBrowser?



I Git repository:

  http://github.com/mayflowergmbh/PHP_CodeBrowser

I PHPUnit PEAR channel:



$ pear channel-discover pear.phpunit.de
$ pear install --alldeps phpunit/PHP_CodeBrowser




                                     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 66
PHP_CodeBrowser
  presentation


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




     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 68
Why do we need Cinder?



I Integrate feedback directly
   •static code analysis
   •coding style
   •unittests results
I Decrease number of tools
I Based on existing artifacts from Continuous Integration
I Conform with IDE usabiliy guidelines




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



I Eclipse plugin
   •Eclipse can be used for many languages
   •Well documentated plugin infrastructure
I Reads Hudson or phpUnderControl XML data
I Aggregates findings by the CI system
I Language of the project doesn‘t matter
I Periodic updates of input data




                                              Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 70
How does Cinder work?

             periodically request from Cinder plugin




 Developer                                                   Continuous
  PC with                                                    Integration
  Eclipse                                                      Server




               XML CI data from CI server
                                     Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 71
How to install Cinder?




                         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 72
How to install Cinder?




                         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 73
How to install Cinder?




                         Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 74
How to install Cinder?




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


        Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 76
How to get these tools?




             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 77
phpmd.org
github.com/mayflowergmbh
          phpunit.de
 opensource.mayflower.de
       jenkins-php.org
             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 78
How to use that tools?



             Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 79
Set up a continuous
integration server!


           Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 80
Use the artifacts of the PHP
        QA Tools!


                Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 81
Take some time for
refactoring in every sprint.


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




       Continuous Improvement in PHP Projects I   Mayflower GmbH I 25th February I 83
Gràcies!
Thank you very much for your attention!




Contact   Thorsten Rinne
          thorsten.rinne@mayflower.de
          +49 89 242054-31

          Mayflower GmbH
          Mannhardtstr. 6
          80538 München
          Germany



                                          © 201 Mayflower GmbH
                                               1

Más contenido relacionado

Similar a Continuous Improvement in PHP Projects

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
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichMayflower 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
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11Mayflower GmbH
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCMayflower GmbH
 
One-Click Deployment with Jenkins
One-Click Deployment with JenkinsOne-Click Deployment with Jenkins
One-Click Deployment with JenkinsMayflower GmbH
 
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgtStilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgtDynatrace
 
Building Product After "Product-Market Fit"
Building Product After "Product-Market Fit"Building Product After "Product-Market Fit"
Building Product After "Product-Market Fit"Robert Fan
 
Improving your workflows and awareness in the team with tools
Improving your workflows and awareness in the team with toolsImproving your workflows and awareness in the team with tools
Improving your workflows and awareness in the team with toolsMayflower GmbH
 
PixelCrayons: Hire India's Top PHP Developers
PixelCrayons: Hire India's Top PHP DevelopersPixelCrayons: Hire India's Top PHP Developers
PixelCrayons: Hire India's Top PHP DevelopersPixel Crayons
 
Different Phases of ERP Implementation | OptiProERP
Different Phases of ERP Implementation | OptiProERP Different Phases of ERP Implementation | OptiProERP
Different Phases of ERP Implementation | OptiProERP OptiProERP India
 
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)Pixel Crayons
 
Top php development companies to outsource
Top php development companies to outsourceTop php development companies to outsource
Top php development companies to outsourceMindfire LLC
 
Dev ops don't be left behind
Dev ops   don't be left behindDev ops   don't be left behind
Dev ops don't be left behindGunnar Menzel
 
Youtube marketing lecture
Youtube marketing lectureYoutube marketing lecture
Youtube marketing lectureSundayTimes123
 
Five Phases of SAP Internships - Wizcore
Five Phases of SAP Internships - Wizcore Five Phases of SAP Internships - Wizcore
Five Phases of SAP Internships - Wizcore yakfurinnaaa
 

Similar a Continuous Improvement in PHP Projects (20)

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
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
 
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
 
HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11HTML5 for PHP Developers - DPC11
HTML5 for PHP Developers - DPC11
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 
HTML5 Workshop
HTML5 WorkshopHTML5 Workshop
HTML5 Workshop
 
One-Click Deployment with Jenkins
One-Click Deployment with JenkinsOne-Click Deployment with Jenkins
One-Click Deployment with Jenkins
 
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgtStilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
 
Building Product After "Product-Market Fit"
Building Product After "Product-Market Fit"Building Product After "Product-Market Fit"
Building Product After "Product-Market Fit"
 
Improving your workflows and awareness in the team with tools
Improving your workflows and awareness in the team with toolsImproving your workflows and awareness in the team with tools
Improving your workflows and awareness in the team with tools
 
PixelCrayons: Hire India's Top PHP Developers
PixelCrayons: Hire India's Top PHP DevelopersPixelCrayons: Hire India's Top PHP Developers
PixelCrayons: Hire India's Top PHP Developers
 
Different Phases of ERP Implementation | OptiProERP
Different Phases of ERP Implementation | OptiProERP Different Phases of ERP Implementation | OptiProERP
Different Phases of ERP Implementation | OptiProERP
 
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
 
continuousphp
continuousphpcontinuousphp
continuousphp
 
Top php development companies to outsource
Top php development companies to outsourceTop php development companies to outsource
Top php development companies to outsource
 
Dev ops don't be left behind
Dev ops   don't be left behindDev ops   don't be left behind
Dev ops don't be left behind
 
Youtube marketing lecture
Youtube marketing lectureYoutube marketing lecture
Youtube marketing lecture
 
Five Phases of SAP Internships - Wizcore
Five Phases of SAP Internships - Wizcore Five Phases of SAP Internships - Wizcore
Five Phases of SAP Internships - Wizcore
 
Ephox
EphoxEphox
Ephox
 

Más de Mayflower GmbH

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: SecurityMayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftMayflower GmbH
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientMayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingMayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyMayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming MythbustersMayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im GlückMayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefernMayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsMayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalierenMayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastMayflower GmbH
 

Más de Mayflower GmbH (20)

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Usability im web
Usability im webUsability im web
Usability im web
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
 

Último

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Último (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Continuous Improvement in PHP Projects

  • 1. Continuous Improvement in PHP Projects Thorsten Rinne I 25th February 201 London, UK 1, © 201 Mayflower GmbH 1
  • 2. Team Lead Scrum Master Head of Open Source Labs @ThorstenRinne Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 2
  • 3. Who are you? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 3
  • 4. Continuous Integration? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 4
  • 5. Continuous Inspection? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 5
  • 6. Continuous Delivery? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 6
  • 7. http://www.flickr.com/photos/nataliaromay/3217596831/ Why do we need Continuous Improvement? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 7
  • 8. Look at this real life example... Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 8
  • 9. 1966: This was not a goal. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 9
  • 10. 2010: This was a goal. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 10
  • 11. We are developers. We are not perfect. We‘re not politicians. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I
  • 12. „Continuous Improvement is better than delayed perfection.“ Mark Twain Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 12
  • 13. What exactly is Continuous Improvement? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 13
  • 14. „A continuous improvment process is an ongoing effort to improve products, services or processes. These efforts seek incremental improvment over time or breakthrough improvement all at once.“ Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 14
  • 15. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 15
  • 16. Continuous Improvement ~ KAIZEN Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 16
  • 17. KAI ZEN = = Change Good Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 17
  • 18. Attention! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 18
  • 19. Your Management needs a will for changes! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 19
  • 20. You need 3 steps for Continuous Improvement. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 20
  • 21. 1 What are we trying to accomplish? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 21
  • 22. 2 How will we know that a change is an improvement? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 22
  • 23. 3 What changes will result in improvements? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 23
  • 24. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 24
  • 25. PLAN: How should it be? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 25
  • 26. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 26
  • 27. DO: What and how do we do it? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 27
  • 28. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 28
  • 29. CHECK: What did we achieve? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 29
  • 30. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 30
  • 31. ACT: What else do we have to do? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 31
  • 32. Plan Do Act Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 33. So, how to integrate Continuous Improvement in your daily work? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 33
  • 34. I t‘s ! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 34
  • 35. SCRUM Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 35
  • 36. SCRUM 24 hours Sprint 2 weeks Sprint goal Return Sprint Potentially shippable Return Cancel backlog product increment Gift fixes CS wrap Gift wrap Cancel CS fixes Product backlog Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 36
  • 37. Extreme Programming Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 37
  • 38. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 38
  • 39. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 39
  • 40. Agile methods are about working in iteratons. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 40
  • 41. Conclusion: Combine agile methods! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 41
  • 42. Scrum + XP + Continuous Improvement EPIC WIN Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 42
  • 43. Common problems in PHP projects Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 43
  • 44. Code Aging Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 44
  • 45. Technical Debt Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 45
  • 46. 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 46
  • 47. Now: The slide for your management. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 47
  • 48. Costs per change request rising frequency DEAD END! Benefits per change request Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 48
  • 49. So please pay back your technical debt! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 49
  • 50. Always refactor your codebase! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 50
  • 51. PHP Tool Support Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 51
  • 52. You need a continuous integration server. Even if you don‘t do unittests. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 52
  • 53. But don‘t tell that Sebastian! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 53
  • 54. Jenkins CI Server Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 54
  • 55. Template for Jenkins Jobs for PHP Projects http://jenkins-php.org Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 55
  • 56. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 56
  • 57. $ 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 57
  • 58. PHP_CodeSniffer Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 58
  • 59. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 59
  • 60. Why do we need PHPMD? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 60
  • 61. How does PHPMD work? <?php print "Hello, world!"; PHP_Depends scans your code ?> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 61
  • 62. How does PHPMD work? <?xml version="1.0" encoding="UTF-8"?> <PDepend> <Packages> <Package name="PHP_CodeBrowser"> <Stats> <TotalClasses>10</TotalClasses> <ConcreteClasses>9</ConcreteClasses> ... </PDepend> PHPMD scans the report ... Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 62
  • 63. How does PHPMD work? <?xml version="1.0" encoding="UTF-8" ?> <pmd version="0.2.7" timestamp="2010-10-28T16:27:21+02:00"> <file name="/Users/thorsten/htdocs/PHP_CodeBrowser/src/ CLIController.php"> <violation beginline="201" endline="275" rule="CyclomaticComplexity" ruleset="Code Size Rules" package="PHP_CodeBrowser" externalInfoUrl="http://phpmd.org/rules/ codesize.html#cyclomaticcomplexity" class="CbCLIController" method="run" priority="3"> The method run() has a Cyclomatic Complexity of 10. </violation> ... </pmd> Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 63
  • 64. PHP_CodeBrowser Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 64
  • 65. What is PHP_CodeBrowser? I a code browser :-) I syntax highlighting for PHP files I colored error sections found by PHP QA tools like •PHPUnit •phpcpd •PHP_CodeSniffer •Code Coverage •PHPMD Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 65
  • 66. How to get PHP_CodeBrowser? I Git repository: http://github.com/mayflowergmbh/PHP_CodeBrowser I PHPUnit PEAR channel: $ pear channel-discover pear.phpunit.de $ pear install --alldeps phpunit/PHP_CodeBrowser Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 66
  • 67. PHP_CodeBrowser presentation Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 67
  • 68. Cinder Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 68
  • 69. Why do we need Cinder? I Integrate feedback directly •static code analysis •coding style •unittests results I Decrease number of tools I Based on existing artifacts from Continuous Integration I Conform with IDE usabiliy guidelines Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 69
  • 70. Cinder Features I Eclipse plugin •Eclipse can be used for many languages •Well documentated plugin infrastructure I Reads Hudson or phpUnderControl XML data I Aggregates findings by the CI system I Language of the project doesn‘t matter I Periodic updates of input data Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 70
  • 71. How does Cinder work? periodically request from Cinder plugin Developer Continuous PC with Integration Eclipse Server XML CI data from CI server Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 71
  • 72. How to install Cinder? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 72
  • 73. How to install Cinder? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 73
  • 74. How to install Cinder? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 74
  • 75. How to install Cinder? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 75
  • 76. Cinder presentation Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 76
  • 77. How to get these tools? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 77
  • 78. phpmd.org github.com/mayflowergmbh phpunit.de opensource.mayflower.de jenkins-php.org Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 78
  • 79. How to use that tools? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 79
  • 80. Set up a continuous integration server! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 80
  • 81. Use the artifacts of the PHP QA Tools! Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 81
  • 82. Take some time for refactoring in every sprint. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 82
  • 83. Questions? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 83
  • 84. Gràcies! Thank you very much for your attention! Contact Thorsten Rinne thorsten.rinne@mayflower.de +49 89 242054-31 Mayflower GmbH Mannhardtstr. 6 80538 München Germany © 201 Mayflower GmbH 1