Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad

Patroklos Papapetrou @ppapapetrou76
Holding down your
technical debt with
#itakeunconf #SonarQube

Ad

Agenda
● Code Quality in a nutshell
● The seven axes of quality
● Technical Debt
● SonarQube Demo Time

Ad

private String _ugly_name;
private String ANOTHER_$UGLY___NAME;
private static String am_i_static;
public void please_work...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 27 Ad
1 of 27 Ad
Advertisement

More Related Content

More from Mozaic Works (20)

Advertisement

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

×