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

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Último (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

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