Your SlideShare is downloading. ×
Continuous Improvement in PHP Projects - PHP UK Conference 2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Continuous Improvement in PHP Projects - PHP UK Conference 2011

4,727

Published on

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,727
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
220
Comments
0
Likes
12
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Continuous Improvement in PHP ProjectsThorsten Rinne I 25th February 201 London, UK 1, © 201 Mayflower GmbH 1
  • 2. Team LeadScrum MasterHead 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 isContinuous Improvement? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 13
  • 14. „A continuous improvmentprocess is an ongoing effort toimprove 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 forContinuous Improvement. Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 20
  • 21. 1What 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 achange is an improvement? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 22
  • 23. 3What changes will result in improvements? Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 23
  • 24. Plan DoAct 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 DoAct 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 DoAct 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 DoAct 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 DoAct Check Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 32
  • 33. So, how to integrateContinuous 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 wrapGift 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?<?phpprint "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 filesI 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_CodeBrowserI 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 resultsI Decrease number of toolsI Based on existing artifacts from Continuous IntegrationI Conform with IDE usabiliy guidelines Continuous Improvement in PHP Projects I Mayflower GmbH I 25th February I 69
  • 70. Cinder FeaturesI Eclipse plugin •Eclipse can be used for many languages •Well documentated plugin infrastructureI Reads Hudson or phpUnderControl XML dataI Aggregates findings by the CI systemI Language of the project doesn‘t matterI 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. Cinderpresentation 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.orggithub.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 continuousintegration 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 forrefactoring 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

×