SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Continuous Inspection
Fight back the 7 deadly sins of a developer!

Sebastian Marek
✤   a Pole living in Sheffield

✤   over 12 years in development

✤   Pascal, C++, PHP, perl, python, Java

✤   co-author of 2 PHP Books

✤   big fan of process automation

✤   TDD and CI

✤   occasionally contributes to open-source
    projects

✤   wants to be a knight
                                                      @proofek
                                           h"ps://joind.in/7802
PRIDE

     WRATH




            LUST




           ENVY
                   7 DEADLY
                     SINS
                           SLOTH
                                   GREED




                                   GLUTTONY
© beartoons.com
1. Lust


                       ✤   Over-engineering

                       ✤   Design patterns

                       ✤   Abstraction



     © beartoons.com
2. Gluttony

   ✤   Over-engineering

   ✤   Refactoring

   ✤   “Spaghetti code”

   ✤   Feature-rich

   ✤   Inefficiency
                          © beartoons.com
3. Greed



                       ✤   Competing across teams

                       ✤   (Don’t) Reinvent the wheel

                       ✤   Power struggle




     © beartoons.com
5. Wrath

                       ✤   A vehement denial of the truth

                       ✤   Documentation

                       ✤   Coding standards

                       ✤   Unit tests

                       ✤   Commit messages

     © beartoons.com   ✤   Rushing to production
4. Sloth

 ✤   Input validation

 ✤   Duplications

 ✤   Coding standards

 ✤   Lazy coding
                                     © beartoons.com
 ✤   Self-development

 ✤   Configuration “out-of-the-box”
6. Envy


✤   Not using version control

✤   Not needed features

✤   Contributions to open source projects



                                            © beartoons.com
7. Pride

                       ✤   (Don’t) Reinvent the wheel

                       ✤   Unit tests

                       ✤   Acceptance tests

                       ✤   Software metrics

                       ✤   Documentation

     © beartoons.com
Technical Debt under control

   ✤   drill down to source code

   ✤   coding rules

   ✤   unit tests

   ✤   standard metrics

   ✤   time machine

   ✤   plugins
Sonar plugins - languages
Sonar plugins - integration
C
    I
        vs

             C
                 I
Continuous
 Integration
       vs

            C
                I
Continuous
 Integration
       vs

            Continuous
             Inspection
Running analysis


    ✤   Sonar runner

    ✤   Ant

    ✤   Maven
Dynamic vs static analysis
PHP Plugin


  ✤   PHPUnit

  ✤   PHP CodeSniffer

  ✤   PHP Depend

  ✤   PHP Mess Detector
Sonar widgets - Size metrics, Comments & Duplications, Unit tests coverage
Sonar widgets - Time machine, Rules compliance, Complexity
Sonar - Source code browser
Sonar - Source code violations
Sonar - Hotspots
Sonar - Hotspots
Sonar - Time machine
Sonar - Time machine
Sonar - Developers cockpit
Links


✤   http://www.sonarsource.org/

✤   http://www.sonarsource.com/

✤   Sonar Demo - http://nemo.sonarsource.org/

✤   Sonar as a Service (SaaS) - http://www.cloudbees.com
Credits


✤   http://beartoons.com (the little devils)

✤   http://www.flickr.com/photos/e_tavares/3499009813/sizes/l/in/photostream/
Q &A


       Thank you!

             h"ps://joind.in/7802

Contenu connexe

Similaire à Continuous Inspection: Fight back the 7 deadly sins of a developer!

Continuous inspection with Sonar
Continuous inspection with SonarContinuous inspection with Sonar
Continuous inspection with Sonar
gaudol
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
Lingoport (www.lingoport.com)
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
Brian LeRoux
 
A Simple 8-Step Guide to Setting Up a Dev Shop
A Simple 8-Step Guide to Setting Up a Dev ShopA Simple 8-Step Guide to Setting Up a Dev Shop
A Simple 8-Step Guide to Setting Up a Dev Shop
Scott Porad
 
The Seven Deadly Coding Sins Slides
The Seven Deadly Coding Sins SlidesThe Seven Deadly Coding Sins Slides
The Seven Deadly Coding Sins Slides
mobiledevnj
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
Theo Jungeblut
 
Abusing bleeding edge web standards for appsec glory
Abusing bleeding edge web standards for appsec gloryAbusing bleeding edge web standards for appsec glory
Abusing bleeding edge web standards for appsec glory
Priyanka Aash
 
LyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best Practices
LyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best PracticesLyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best Practices
LyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best Practices
Eric Bottard
 

Similaire à Continuous Inspection: Fight back the 7 deadly sins of a developer! (20)

Continuous inspection with Sonar
Continuous inspection with SonarContinuous inspection with Sonar
Continuous inspection with Sonar
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging Server
 
Javascript Unit Testing Tools
Javascript Unit Testing ToolsJavascript Unit Testing Tools
Javascript Unit Testing Tools
 
Bug hunting through_reverse_engineering
Bug hunting through_reverse_engineeringBug hunting through_reverse_engineering
Bug hunting through_reverse_engineering
 
Phonegap for Engineers
Phonegap for EngineersPhonegap for Engineers
Phonegap for Engineers
 
A Simple 8-Step Guide to Setting Up a Dev Shop
A Simple 8-Step Guide to Setting Up a Dev ShopA Simple 8-Step Guide to Setting Up a Dev Shop
A Simple 8-Step Guide to Setting Up a Dev Shop
 
Cloud tools
Cloud toolsCloud tools
Cloud tools
 
The Seven Deadly Coding Sins Slides
The Seven Deadly Coding Sins SlidesThe Seven Deadly Coding Sins Slides
The Seven Deadly Coding Sins Slides
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
 
Badneedles
BadneedlesBadneedles
Badneedles
 
DevOps Culture at Amazon
DevOps Culture at AmazonDevOps Culture at Amazon
DevOps Culture at Amazon
 
Abusing bleeding edge web standards for appsec glory
Abusing bleeding edge web standards for appsec gloryAbusing bleeding edge web standards for appsec glory
Abusing bleeding edge web standards for appsec glory
 
DevOps Unleashed: Strategies that Speed Deployments
DevOps Unleashed: Strategies that Speed DeploymentsDevOps Unleashed: Strategies that Speed Deployments
DevOps Unleashed: Strategies that Speed Deployments
 
Php|tek '12 It's More Than Just Style
Php|tek '12  It's More Than Just StylePhp|tek '12  It's More Than Just Style
Php|tek '12 It's More Than Just Style
 
LyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best Practices
LyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best PracticesLyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best Practices
LyonJUG - Combo - Quick Cloud Foundry Intro + Cloud Best Practices
 
Ci of js and apex using jasmine, phantom js and drone io df14
Ci of js and apex using jasmine, phantom js and drone io   df14Ci of js and apex using jasmine, phantom js and drone io   df14
Ci of js and apex using jasmine, phantom js and drone io df14
 
Os Alrubaie
Os AlrubaieOs Alrubaie
Os Alrubaie
 
Os Alrubaie
Os AlrubaieOs Alrubaie
Os Alrubaie
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
 

Plus de Sebastian Marek

vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking
Sebastian Marek
 

Plus de Sebastian Marek (15)

The Journey Towards Continuous Integration
The Journey Towards Continuous IntegrationThe Journey Towards Continuous Integration
The Journey Towards Continuous Integration
 
Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPl
 
Managing and Monitoring Application Performance
Managing and Monitoring Application PerformanceManaging and Monitoring Application Performance
Managing and Monitoring Application Performance
 
Ten Commandments Of A Software Engineer
Ten Commandments Of A Software EngineerTen Commandments Of A Software Engineer
Ten Commandments Of A Software Engineer
 
Test your code like a pro - PHPUnit in practice
Test your code like a pro - PHPUnit in practiceTest your code like a pro - PHPUnit in practice
Test your code like a pro - PHPUnit in practice
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
 
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practicePHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
PHP Forum Paris 2012: Magic behind the numbers. Software metrics in practice
 
Ten Commandments Of A Software Engineer
Ten Commandments Of A Software EngineerTen Commandments Of A Software Engineer
Ten Commandments Of A Software Engineer
 
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice PHP Benelux 2012: Magic behind the numbers. Software metrics in practice
PHP Benelux 2012: Magic behind the numbers. Software metrics in practice
 
Magic behind the numbers - software metrics in practice
Magic behind the numbers - software metrics in practiceMagic behind the numbers - software metrics in practice
Magic behind the numbers - software metrics in practice
 
Back to basics - PHPUnit
Back to basics - PHPUnitBack to basics - PHPUnit
Back to basics - PHPUnit
 
Back to basics - PHP_Codesniffer
Back to basics - PHP_CodesnifferBack to basics - PHP_Codesniffer
Back to basics - PHP_Codesniffer
 
Sonar - the ring to rule them all
Sonar - the ring to rule them allSonar - the ring to rule them all
Sonar - the ring to rule them all
 
vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking vfsStream - effective filesystem mocking
vfsStream - effective filesystem mocking
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
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
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Continuous Inspection: Fight back the 7 deadly sins of a developer!

  • 1. Continuous Inspection Fight back the 7 deadly sins of a developer! Sebastian Marek
  • 2. a Pole living in Sheffield ✤ over 12 years in development ✤ Pascal, C++, PHP, perl, python, Java ✤ co-author of 2 PHP Books ✤ big fan of process automation ✤ TDD and CI ✤ occasionally contributes to open-source projects ✤ wants to be a knight @proofek h"ps://joind.in/7802
  • 3. PRIDE WRATH LUST ENVY 7 DEADLY SINS SLOTH GREED GLUTTONY © beartoons.com
  • 4. 1. Lust ✤ Over-engineering ✤ Design patterns ✤ Abstraction © beartoons.com
  • 5. 2. Gluttony ✤ Over-engineering ✤ Refactoring ✤ “Spaghetti code” ✤ Feature-rich ✤ Inefficiency © beartoons.com
  • 6. 3. Greed ✤ Competing across teams ✤ (Don’t) Reinvent the wheel ✤ Power struggle © beartoons.com
  • 7. 5. Wrath ✤ A vehement denial of the truth ✤ Documentation ✤ Coding standards ✤ Unit tests ✤ Commit messages © beartoons.com ✤ Rushing to production
  • 8. 4. Sloth ✤ Input validation ✤ Duplications ✤ Coding standards ✤ Lazy coding © beartoons.com ✤ Self-development ✤ Configuration “out-of-the-box”
  • 9. 6. Envy ✤ Not using version control ✤ Not needed features ✤ Contributions to open source projects © beartoons.com
  • 10. 7. Pride ✤ (Don’t) Reinvent the wheel ✤ Unit tests ✤ Acceptance tests ✤ Software metrics ✤ Documentation © beartoons.com
  • 11. Technical Debt under control ✤ drill down to source code ✤ coding rules ✤ unit tests ✤ standard metrics ✤ time machine ✤ plugins
  • 12. Sonar plugins - languages
  • 13. Sonar plugins - integration
  • 14. C I vs C I
  • 16. Continuous Integration vs Continuous Inspection
  • 17. Running analysis ✤ Sonar runner ✤ Ant ✤ Maven
  • 18. Dynamic vs static analysis
  • 19. PHP Plugin ✤ PHPUnit ✤ PHP CodeSniffer ✤ PHP Depend ✤ PHP Mess Detector
  • 20.
  • 21. Sonar widgets - Size metrics, Comments & Duplications, Unit tests coverage
  • 22. Sonar widgets - Time machine, Rules compliance, Complexity
  • 23. Sonar - Source code browser
  • 24. Sonar - Source code violations
  • 27. Sonar - Time machine
  • 28. Sonar - Time machine
  • 30. Links ✤ http://www.sonarsource.org/ ✤ http://www.sonarsource.com/ ✤ Sonar Demo - http://nemo.sonarsource.org/ ✤ Sonar as a Service (SaaS) - http://www.cloudbees.com
  • 31. Credits ✤ http://beartoons.com (the little devils) ✤ http://www.flickr.com/photos/e_tavares/3499009813/sizes/l/in/photostream/
  • 32. Q &A Thank you! h"ps://joind.in/7802