24
Continuous Inspection Fight back the 7 deadly sins of the developer! Olivier Gaudin [email protected] @gaudol XP Days Ukraine

Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Continuous InspectionFight back the 7 deadly sinsof the developer!

Olivier [email protected]@gaudol

XP Days Ukraine

Page 2: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Back in old times

Page 3: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

The genius

Page 4: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

The super hero

Au fin fond de l'Univers, à des années et des années-lumière de la Terre,Veille celui que le gouvernement intersidéral appelle quand il n'est plusCapable de trouver une solution à ses problèmes, quand il ne reste plusAucun espoir :

le Capitaine FLAM !

Page 5: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

This is my toy

Page 6: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Fear of changes

Page 7: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Industrialisation has entered the game...

● Project under version control● Project under continuous

integration● Technical and functional

traceability

Page 8: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

…and software factories evolved

Makefile

SCM

Issue Tracker

ContinuousIntegration

IDERefactoring

VI /Emacs

Unit Tests

ContinuousInspection

Page 9: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

What is the mission of today's developer ?

?

Page 10: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

The end does not justify the means

Doing the right software

Doing the software right

Page 11: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Developing for others

Page 12: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Methodology

Page 13: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Transparency

Page 14: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Nothing is more important than codeBut source code is nothing alone

Page 15: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

(Almost) Everything is maintenance !

Creation of anapplication

Maintenance of an application

Page 16: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Internal quality

« A well-written program is a program where the cost of implementing a feature

is constant throughout the program's lifetime. »

Itay Maman

Page 17: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

How to measure internal quality ?

Page 18: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

The technical debt

Page 19: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

The 7 deadly sinsof the developer

Sins

TechnicalDebt

Page 20: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

● Duplicated code● Bad distribution of complexity● Spaghetti Design● Lack of unit tests● Lack coding standards● Potential bugs● Not enough or too many comments

The 7 deadly sinsApplied to source code

Page 21: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly
Page 22: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Sonar is only a tool !

● What should happen in case new defects are added ?

● How, when and who should make quality standards evolve ?

● How to train new joiners ?● Any measure reported must be analysed

Page 23: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

The « Done, Done, Done, Done »

● Developed● Tested● Approved by the « Product Owner »

● Technical debt under control

Page 24: Continuous Inspection€¦ · Bad distribution of complexity Spaghetti Design Lack of unit tests Lack coding standards Potential bugs Not enough or too many comments The 7 deadly

Thank You ! http://www.sonarsource.org http://www.sonarsource.com