Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Patroklos Papapetrou @ppapapetrou76
Holding down your
technical debt with
#itakeunconf #SonarQube
Agenda
● Code Quality in a nutshell
● The seven axes of quality
● Technical Debt
● SonarQube Demo Time
private String _ugly_name;
private String ANOTHER_$UGLY___NAME;
private static String am_i_static;
public void please_work...
What is code quality?
private String _ugly_name;
private String ANOTHER_$UGLY___NAME;
private static String am_i_static;
public void please_work...
What is code quality?
“It’s an indicator about how quickly
developers can add business value to a
software system”
Why measure?
Source code is the heart of every system
Why measure?
Developers don't write “new” software. They
maintain “legacy” systems.
The broken window theory
What we should measure;
● Abstract numbers? (Almost) useless
● Evolution through time? Definitely!
● Metrics? Yes but whic...
The seven axes of quality
The seven axes of quality
Design
Duplications
Documentation
Com
plexityUnitTests
Coding rules
PotentialBug
Technical Debt
Technical Debt
“If the debt grows large enough, eventually the company will
spend more on servicing its debt than it inves...
Technical Debt – My take
“Technical debt for software systems what salt is for
cooking. You need it, you can't see it but ...
This is how the source
code looks like when we
don't pay off technical debt
SonarQube star Features
Dashboards
SonarQube star Features
Historical Data
SonarQube star Features
Differential Views
SonarQube star Features
Components drilldown views
SonarQube star Features
Quality Gates
DEMO TIME
The big picture
Track and reduce Technical Debt on an
ongoing basis. (Clean up kitchen every day)
The big picture
Engage all devs from day #1
(Not only mums wash the dishes )
I have a dream…
...that one day code
quality management
will be as much as
important and
essential is today
source code
ma...
Thank you
ppapapetrou76
@ppapapetrou76
http://www.linkedin.com/in/ppapapetrou
1
Patroklos Papapetrou: Holding Down Your Technical Debt With SonarQube at I T.A.K.E. Unconference 2015
Patroklos Papapetrou: Holding Down Your Technical Debt With SonarQube at I T.A.K.E. Unconference 2015
Upcoming SlideShare
Loading in …5
×

Patroklos Papapetrou: Holding Down Your Technical Debt With SonarQube at I T.A.K.E. Unconference 2015

700 views

Published on

Patroklos Papapetrou: Holding Down Your Technical Debt With SonarQube at I T.A.K.E. Unconference 2015

Published in: Software
  • Be the first to comment

Patroklos Papapetrou: Holding Down Your Technical Debt With SonarQube at I T.A.K.E. Unconference 2015

  1. 1. Patroklos Papapetrou @ppapapetrou76 Holding down your technical debt with #itakeunconf #SonarQube
  2. 2. Agenda ● Code Quality in a nutshell ● The seven axes of quality ● Technical Debt ● SonarQube Demo Time
  3. 3. private String _ugly_name; private String ANOTHER_$UGLY___NAME; private static String am_i_static; public void please_work(ArrayList objects){ for (Object object : objects){ if (object == null){ String toString = object.toString(); } else am_i_static = object.toString(); doSomething(object); } } private void doSomething(Object object) throws NullPointerException { throw new NullPointerException(object.toString()); }
  4. 4. What is code quality?
  5. 5. private String _ugly_name; private String ANOTHER_$UGLY___NAME; private static String am_i_static; public void please_work(ArrayList objects){ for (Object object : objects){ if (object == null){ String toString = object.toString(); } else am_i_static = object.toString(); doSomething(object); } } private void doSomething(Object object) throws NullPointerException { throw new NullPointerException(object.toString()); }
  6. 6. What is code quality? “It’s an indicator about how quickly developers can add business value to a software system”
  7. 7. Why measure? Source code is the heart of every system
  8. 8. Why measure? Developers don't write “new” software. They maintain “legacy” systems.
  9. 9. The broken window theory
  10. 10. What we should measure; ● Abstract numbers? (Almost) useless ● Evolution through time? Definitely! ● Metrics? Yes but which ones? ● Welcome to the seven axes of quality
  11. 11. The seven axes of quality
  12. 12. The seven axes of quality Design Duplications Documentation Com plexityUnitTests Coding rules PotentialBug Technical Debt
  13. 13. Technical Debt “If the debt grows large enough, eventually the company will spend more on servicing its debt than it invests in increasing the value of its other assets” Steve McConnell (Author of code complete)
  14. 14. Technical Debt – My take “Technical debt for software systems what salt is for cooking. You need it, you can't see it but if you don't control it it's too late” Patroklos Papapetrou (Yet another software gardener)
  15. 15. This is how the source code looks like when we don't pay off technical debt
  16. 16. SonarQube star Features Dashboards
  17. 17. SonarQube star Features Historical Data
  18. 18. SonarQube star Features Differential Views
  19. 19. SonarQube star Features Components drilldown views
  20. 20. SonarQube star Features Quality Gates
  21. 21. DEMO TIME
  22. 22. The big picture Track and reduce Technical Debt on an ongoing basis. (Clean up kitchen every day)
  23. 23. The big picture Engage all devs from day #1 (Not only mums wash the dishes )
  24. 24. I have a dream… ...that one day code quality management will be as much as important and essential is today source code management
  25. 25. Thank you ppapapetrou76 @ppapapetrou76 http://www.linkedin.com/in/ppapapetrou 1

×