SlideShare a Scribd company logo
© 2010 Mayflower GmbH
Thorsten Rinne I Barcelona, October 30th 2010
Continuous Improvement in PHP projects
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Hola! :-)
2
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Senior Developer
Team Lead
Head of Open Source Labs
3
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Qui és vostè?
4
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Who‘s using Ruby On Rails?
5
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 6
Just a joke.
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Continuous Integration?
7
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Continuous Inspection?
8
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Why do we need
Continuous Improvement?
9
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
„Continuous Improvement is better
than delayed perfection.“
Mark Twain
10
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
What exactly is
Continuous Improvement?
11
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
„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.“
12
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 13
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Continuous Improvement
~
KAIZEN
14
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 15
KAI
=
Change
ZEN
=
Good
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 16
Atenció!
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Your Boss needs a will for
changes!
17
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
You need 3 steps for
Continuous Improvement.
18
1Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
What are we trying to
accomplish?
19
2Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How will we know that a
change is an improvement?
20
3Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
What changes will result in
improvements?
21
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 22
Plan
Act Check
Do
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
PLAN:
How should it be?
23
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 24
Plan
Act Check
Do
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
DO:
What and how do we do it?
25
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 26
Plan
Act Check
Do
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
CHECK:
What did we achieve?
27
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 28
Plan
Act Check
Do
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
ACT:
What else do we have to do?
29
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 30
Plan
Act Check
Do
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
So, how to integrate
Continuous Improvement
in your daily work?
31
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
És fàcil! 32
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
SCRUM
33
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
SCRUM
34
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Extreme Programming
35
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 36
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 37
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Agile methods are about
working in loops.
38
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Conclusion:
Combine agile methods!
39
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Scrum + XP + Continuous Improvement
40
EPIC WIN
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Common problems
in PHP projects
41
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Code Aging
42
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Technical Debt
43
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
„Shipping first time code is like
going into debt. A little debt
speeds development so long as it
is paid back promptly with a
rewrite...
44
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
... the danger occurs when the
debt is not repaid. Every minute
spent on not-quite-right code
counts as interest on that debt ...
45
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
... entire engineering
organizations can be brought to a
stand-still under the debt load of
an unconsolidated
implementation, object-oriented
or otherwise.“
46
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 47
Benefits per change request
Costs per change request
rising requency
DEAD END!
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
So please pay back your
technical debt!
48
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Always improve your
codebase!
49
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
PHP Tool Support
50
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
PHP_CodeBrowser
51
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
What is PHP_CodeBrowser?
52
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 project I Mayflower GmbH I October 30th 2010 I
How to get PHP_CodeBrowser?
I Git repository:
http://github.com/mayflowergmbh/PHP_CodeBrowser
I PHPUnit PEAR channel:
I Hopefully PHP_CodeBrowser 1.0 will be ready the next weeks!
53
$ pear config-set preferred_state beta
$ pear channel-discover pear.phpunit.de
$ pear install --alldeps phpunit/PHP_CodeBrowser
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 54
PHP_CodeBrowser
presentation
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Cinder
55
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Why do we need Cinder?
56
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 project I Mayflower GmbH I October 30th 2010 I
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
57
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How does Cinder work?
58
Developer
PC with
Eclipse
Continuous
Integration
Server
periodically request from Cinder plugin
XML CI data from CI server
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How to install Cinder?
59
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How to install Cinder?
60
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How to install Cinder?
61
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How to install Cinder?
62
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 63
Cinder
presentation
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Padawan
64
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 65
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 66
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Why do we need PHPMD?
67
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How to get PHPMD?
I PHPMD PEAR channel:
68
$ pear config-set preferred_state alpha
$ pear channel-discover pear.phpmd.org
$ pear channel-discover pear.pdepend.org
$ pear install --alldeps phpmd/PHP_PMD
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How does PHPMD work?
69
<?php
print "Hola, món!";
?>
PHP_Depends scans your code
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How does PHPMD work?
70
PHPMD scans the report ...
<?xml version="1.0" encoding="UTF-8"?>
<PDepend>
<Packages>
<Package name="PHP_CodeBrowser">
<Stats>
<TotalClasses>10</TotalClasses>
<ConcreteClasses>9</ConcreteClasses>
...
</PDepend>
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How does PHPMD work?
71
<?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 project I Mayflower GmbH I October 30th 2010 I 72
Currently we‘re adding the
Padawan rules to PHPMD.
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
How to get these tools?
73
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
phpmd.org
github.com/mayflowergmbh
phpunit.de
opensource.mayflower.de
74
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
Questions?
75
Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I
@ThorstenRinne
slideshare.net/mayflowergmbh
76
Gràcies!
Thank you very much for your attention!
© 2010 Mayflower GmbH
Contact Thorsten Rinne
thorsten.rinne@mayflower.de
+49 89 242054-31
Mayflower GmbH
Mannhardtstr. 6
80538 München
Germany

More Related Content

PDF
Continuous Improvement in PHP projects
PDF
HTML5 for PHP Developers - DPC11
PDF
Tsvetan stoychev m_mspeakers-edited-final
PDF
Your Future HTML: The Evolution of Site Design with Web Components
PDF
Continuous Improvement in PHP Projects - PHP UK Conference 2011
PDF
One Click Deployment with Jenkins - PHP Unconference 2011
PDF
One click deployment with Jenkins - PHP Munich
PDF
HTML5 for PHP Developers - IPC
Continuous Improvement in PHP projects
HTML5 for PHP Developers - DPC11
Tsvetan stoychev m_mspeakers-edited-final
Your Future HTML: The Evolution of Site Design with Web Components
Continuous Improvement in PHP Projects - PHP UK Conference 2011
One Click Deployment with Jenkins - PHP Unconference 2011
One click deployment with Jenkins - PHP Munich
HTML5 for PHP Developers - IPC

Similar to Continuous Improvement in PHP projects - PBC10 (20)

PDF
Agile php software development
PDF
Top php development companies to outsource
PDF
PixelCrayons: Hire India's Top PHP Developers
PDF
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
PDF
HTML5 for PHP Developers - IPC
PDF
HTML5 Workshop
PDF
Hire Dedicated PHP Developers: Work with India’s Top 2% PHP Programmers
PDF
PHP Developers for hire from PixelCrayons: Work with India’s top 2% PHP Progr...
PDF
One Click Deployment with Jenkins
PDF
Summer training report priyanka
PDF
Custom PHP Development Services
PDF
continuousphp
PDF
Agile == Dynamic?
PPT
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
PPTX
PHP Training Institute in Noida.pptx
PDF
PHP Web Development.pdf
PPTX
Php developer job description
PPTX
Php live project training
PDF
Make the Best of Technologies for Your Projects
PDF
Online php training course is effective for web developers
Agile php software development
Top php development companies to outsource
PixelCrayons: Hire India's Top PHP Developers
PixelCrayons: Hire PHP Developers (60% Cost Saving & 2X Faster Delivery)
HTML5 for PHP Developers - IPC
HTML5 Workshop
Hire Dedicated PHP Developers: Work with India’s Top 2% PHP Programmers
PHP Developers for hire from PixelCrayons: Work with India’s top 2% PHP Progr...
One Click Deployment with Jenkins
Summer training report priyanka
Custom PHP Development Services
continuousphp
Agile == Dynamic?
ZendCon2010 - PHP Industrialization at France Telecom - ORANGE
PHP Training Institute in Noida.pptx
PHP Web Development.pdf
Php developer job description
Php live project training
Make the Best of Technologies for Your Projects
Online php training course is effective for web developers
Ad

More from Mayflower GmbH (20)

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

Continuous Improvement in PHP projects - PBC10

  • 1. © 2010 Mayflower GmbH Thorsten Rinne I Barcelona, October 30th 2010 Continuous Improvement in PHP projects
  • 2. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Hola! :-) 2
  • 3. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Senior Developer Team Lead Head of Open Source Labs 3
  • 4. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Qui és vostè? 4
  • 5. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Who‘s using Ruby On Rails? 5
  • 6. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 6 Just a joke.
  • 7. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Continuous Integration? 7
  • 8. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Continuous Inspection? 8
  • 9. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Why do we need Continuous Improvement? 9
  • 10. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I „Continuous Improvement is better than delayed perfection.“ Mark Twain 10
  • 11. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I What exactly is Continuous Improvement? 11
  • 12. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I „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.“ 12
  • 13. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 13
  • 14. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Continuous Improvement ~ KAIZEN 14
  • 15. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 15 KAI = Change ZEN = Good
  • 16. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 16 Atenció!
  • 17. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Your Boss needs a will for changes! 17
  • 18. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I You need 3 steps for Continuous Improvement. 18
  • 19. 1Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I What are we trying to accomplish? 19
  • 20. 2Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How will we know that a change is an improvement? 20
  • 21. 3Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I What changes will result in improvements? 21
  • 22. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 22 Plan Act Check Do
  • 23. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I PLAN: How should it be? 23
  • 24. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 24 Plan Act Check Do
  • 25. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I DO: What and how do we do it? 25
  • 26. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 26 Plan Act Check Do
  • 27. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I CHECK: What did we achieve? 27
  • 28. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 28 Plan Act Check Do
  • 29. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I ACT: What else do we have to do? 29
  • 30. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 30 Plan Act Check Do
  • 31. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I So, how to integrate Continuous Improvement in your daily work? 31
  • 32. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I És fàcil! 32
  • 33. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I SCRUM 33
  • 34. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I SCRUM 34
  • 35. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Extreme Programming 35
  • 36. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 36
  • 37. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 37
  • 38. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Agile methods are about working in loops. 38
  • 39. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Conclusion: Combine agile methods! 39
  • 40. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Scrum + XP + Continuous Improvement 40 EPIC WIN
  • 41. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Common problems in PHP projects 41
  • 42. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Code Aging 42
  • 43. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Technical Debt 43
  • 44. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I „Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite... 44
  • 45. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I ... the danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt ... 45
  • 46. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I ... entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise.“ 46
  • 47. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 47 Benefits per change request Costs per change request rising requency DEAD END!
  • 48. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I So please pay back your technical debt! 48
  • 49. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Always improve your codebase! 49
  • 50. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I PHP Tool Support 50
  • 51. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I PHP_CodeBrowser 51
  • 52. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I What is PHP_CodeBrowser? 52 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
  • 53. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to get PHP_CodeBrowser? I Git repository: http://github.com/mayflowergmbh/PHP_CodeBrowser I PHPUnit PEAR channel: I Hopefully PHP_CodeBrowser 1.0 will be ready the next weeks! 53 $ pear config-set preferred_state beta $ pear channel-discover pear.phpunit.de $ pear install --alldeps phpunit/PHP_CodeBrowser
  • 54. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 54 PHP_CodeBrowser presentation
  • 55. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Cinder 55
  • 56. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Why do we need Cinder? 56 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
  • 57. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 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 57
  • 58. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How does Cinder work? 58 Developer PC with Eclipse Continuous Integration Server periodically request from Cinder plugin XML CI data from CI server
  • 59. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to install Cinder? 59
  • 60. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to install Cinder? 60
  • 61. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to install Cinder? 61
  • 62. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to install Cinder? 62
  • 63. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 63 Cinder presentation
  • 64. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Padawan 64
  • 65. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 65
  • 66. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 66
  • 67. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Why do we need PHPMD? 67
  • 68. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to get PHPMD? I PHPMD PEAR channel: 68 $ pear config-set preferred_state alpha $ pear channel-discover pear.phpmd.org $ pear channel-discover pear.pdepend.org $ pear install --alldeps phpmd/PHP_PMD
  • 69. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How does PHPMD work? 69 <?php print "Hola, món!"; ?> PHP_Depends scans your code
  • 70. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How does PHPMD work? 70 PHPMD scans the report ... <?xml version="1.0" encoding="UTF-8"?> <PDepend> <Packages> <Package name="PHP_CodeBrowser"> <Stats> <TotalClasses>10</TotalClasses> <ConcreteClasses>9</ConcreteClasses> ... </PDepend>
  • 71. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How does PHPMD work? 71 <?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>
  • 72. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I 72 Currently we‘re adding the Padawan rules to PHPMD.
  • 73. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I How to get these tools? 73
  • 74. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I phpmd.org github.com/mayflowergmbh phpunit.de opensource.mayflower.de 74
  • 75. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I Questions? 75
  • 76. Continuous Improvement in PHP project I Mayflower GmbH I October 30th 2010 I @ThorstenRinne slideshare.net/mayflowergmbh 76
  • 77. Gràcies! Thank you very much for your attention! © 2010 Mayflower GmbH Contact Thorsten Rinne thorsten.rinne@mayflower.de +49 89 242054-31 Mayflower GmbH Mannhardtstr. 6 80538 München Germany