SlideShare a Scribd company logo
Quality Up Front
How to spend less time debugging
Lars Jarnbo Pedersen
Co-founder Switch-Gears ApS
About me
Partner at Switch-Gears ApS
● Transitioning companies from old
development tools to modern Open Source
ones
Been working for Nokia 2001-2012
● Release manager for S40 software for many
years
● Part of a small team that introduced Git,
Gerrit and Jenkins to S40 development
resulting in BIG productivity gains
Pain in SW Development

50%

COST OF BUGS

of developer time is spent
finding and fixing bugs*

*http://www.businessweekly.co.uk/hi-tech/14898-software-bugs-cost-more-than-double-eurozone-bailout
Why?
Programming is hard…
● you have to map the problem domain to
the programming language in use
● its usually a collaborative effort
● time pressure
● best practises are not shared
Bugs are discovered late…
● context is lost
● often it is not the programmer who
introduced the bug, who is fixing it
Luckily

90%

COST OF BUGS

of the bugs can be
caught during
development*

*http://www.codinghorror.com/blog/2006/01/code-reviews-just-do-it.html
Because
Average defect detection rate is 25 percent for
unit testing, 35 percent for function testing, and
45 percent for integration testing. [McConnell93]
Furthermore, the average effectiveness of
design and code inspections are 55 and 60
percent. [McConnell93]
How?
Peer Code Review
● Beneficial for “quality of review” if the author
pre-reviews and leaves comments for
subsequent reviewers [Cohen2006]
● The longer a reviewer spends on the initial
read-through, the more defects will ultimately
be found [Uwano2006]
● Defect detection drops dramatically after ~60
minutes, to zero after ~90 minutes [Dunsmore2000]
Peer Code Review
● Long methods and loops are very time
consuming to understand [Uwano2006]
● Review 100 to 300 LOC at a time, in 30-60
minutes chunks, with a break between each
sitting [Cohen2006]
● Spend at least 5 minutes reviewing a single
line of code [Cohen2006]
● Limit reviewing to 1 hour per day [Ganssle2009]
Mental Model

Platform Knowledge
+
Development Process
=
Platform Quality
Increase Platform Knowledge
Write Readable Code!!!
● You spend much more time reading code than
writing it - so make it nice to read!
● Refactor if necessary
● Include test-code

Commit changes in logical units
● Always commit working code
● Never mix error-fixes and feature implementations

Write descriptive commit messages
● Make sure the reason for the change is clearly
explained
Optimize Development Process
Make it simple on the developers,
● allow multiple workflows at the developers
desk
● don’t let the release/integration process
stop the development flow
● minimize manual process steps
while keeping a strict process
● automatically build and test all commits
● require code-review of all commits
This is NOT rocket science!
So why don’t we do it already?
● Waterfall development
● Code Reviews are perceived expensive
● Last generation of tools do not support
this easily
What is enabling it now?
● Agile development
● New breed of Open Source tools
Git / Gerrit / Jenkins
Git (DVCS) changes everything!
Git is NOT subversion++
● all operations except for push/pull are
local => well suited for continuous
integration
● allows for multiple workflows
○ development
○ integration / releasing

● is a first class citizen during development
AND debugging!
○ gitk for code analysis
○ git bisect for debugging
Gerrit
A developer codes - and asks for feedback
Peer Code Review
Another developer reviews and comments
Continuous Integration
Actually you saw it in action already!
Good tools help you without getting in the way
Our experiences - Low Gain Example

[Anonymized and obscured]
Our experiences - High Gain Example

[Anonymized and obscured]
References
Books
●
●

Code Complete: A Practical Handbook of Software Construction, Second
Edition by Steve McConnell (Jun 16, 2004)
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C.
Martin (Aug 11, 2008)

Articles
●
●
●
●
●

SCM Ranking (Switch-Gears)
CI Ranking (Switch-Gears)
Best Kept Secrets of Peer Code Review (Smartbear)
The Cost of Software Bugs (Business Weekly)
Code Review - Just Do It (Coding Horror)

Videos
●
●

Linus Torvalds on Git (Google TechTalk)
Development at the Speed and Scale of Google (InfoQ)

More Related Content

What's hot (20)

Dev ops
Dev opsDev ops
Dev ops
farzanehvar
 
Teamcity CI Server
Teamcity CI ServerTeamcity CI Server
Teamcity CI Server
Knoldus Inc.
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
Denis Ristic
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
Mukta Aphale
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
Knoldus Inc.
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Abraham Marin-Perez
 
Continuous Integration for Beginners
Continuous Integration for BeginnersContinuous Integration for Beginners
Continuous Integration for Beginners
Yüce Çelikel
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
Jean-Philippe Briend
 
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Anatoliy Okhotnikov
 
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
Sauce Labs
 
Overview the Challenges and Limitations of Android App Automation with Espres...
Overview the Challenges and Limitations of Android App Automation with Espres...Overview the Challenges and Limitations of Android App Automation with Espres...
Overview the Challenges and Limitations of Android App Automation with Espres...
Sauce Labs
 
Overview of Gitlab usage
Overview of Gitlab usageOverview of Gitlab usage
Overview of Gitlab usage
OluDouglas
 
How Vanguard Got to a CD-CD World by Craig Schwarzwald
How Vanguard Got to a CD-CD World by Craig SchwarzwaldHow Vanguard Got to a CD-CD World by Craig Schwarzwald
How Vanguard Got to a CD-CD World by Craig Schwarzwald
Sauce Labs
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
Poonam Panday
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
renard_vardy
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Vijaya K
 
Continuous Development: Supporting a Release Model
Continuous Development: Supporting a Release ModelContinuous Development: Supporting a Release Model
Continuous Development: Supporting a Release Model
Perforce
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - Milan
Simone Pasquini
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Alea Soluciones, S.L.
 
Teamcity CI Server
Teamcity CI ServerTeamcity CI Server
Teamcity CI Server
Knoldus Inc.
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
Denis Ristic
 
Observability at Scale
Observability at Scale Observability at Scale
Observability at Scale
Knoldus Inc.
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Abraham Marin-Perez
 
Continuous Integration for Beginners
Continuous Integration for BeginnersContinuous Integration for Beginners
Continuous Integration for Beginners
Yüce Çelikel
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
Jean-Philippe Briend
 
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Project Management: Burn-Down Chart / OrangeHRM Project MOD (eng)
Anatoliy Okhotnikov
 
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
Sauce Labs
 
Overview the Challenges and Limitations of Android App Automation with Espres...
Overview the Challenges and Limitations of Android App Automation with Espres...Overview the Challenges and Limitations of Android App Automation with Espres...
Overview the Challenges and Limitations of Android App Automation with Espres...
Sauce Labs
 
Overview of Gitlab usage
Overview of Gitlab usageOverview of Gitlab usage
Overview of Gitlab usage
OluDouglas
 
How Vanguard Got to a CD-CD World by Craig Schwarzwald
How Vanguard Got to a CD-CD World by Craig SchwarzwaldHow Vanguard Got to a CD-CD World by Craig Schwarzwald
How Vanguard Got to a CD-CD World by Craig Schwarzwald
Sauce Labs
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
Poonam Panday
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
renard_vardy
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Vijaya K
 
Continuous Development: Supporting a Release Model
Continuous Development: Supporting a Release ModelContinuous Development: Supporting a Release Model
Continuous Development: Supporting a Release Model
Perforce
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - Milan
Simone Pasquini
 

Viewers also liked (16)

Debugging 2013- Kim christensen
Debugging 2013- Kim christensenDebugging 2013- Kim christensen
Debugging 2013- Kim christensen
Mediehuset Ingeniøren Live
 
Fangel consulting: Proaktiv projektledelse
Fangel consulting:  Proaktiv projektledelseFangel consulting:  Proaktiv projektledelse
Fangel consulting: Proaktiv projektledelse
Mediehuset Ingeniøren Live
 
DTU Diplom: Om projektledelse hos FlSmidth A/S
DTU Diplom: Om projektledelse hos FlSmidth A/SDTU Diplom: Om projektledelse hos FlSmidth A/S
DTU Diplom: Om projektledelse hos FlSmidth A/S
Mediehuset Ingeniøren Live
 
Styrk din rekruttering af specialister med sociale medier- Christina Just - C...
Styrk din rekruttering af specialister med sociale medier- Christina Just - C...Styrk din rekruttering af specialister med sociale medier- Christina Just - C...
Styrk din rekruttering af specialister med sociale medier- Christina Just - C...
Mediehuset Ingeniøren Live
 
Insight live om It-sikkerhed- Peter Schjøtt
Insight live om It-sikkerhed- Peter SchjøttInsight live om It-sikkerhed- Peter Schjøtt
Insight live om It-sikkerhed- Peter Schjøtt
Mediehuset Ingeniøren Live
 
PA Consulting: VPL – et nyt værktøj til visuel programledelse
PA Consulting: VPL – et nyt værktøj til visuel programledelsePA Consulting: VPL – et nyt værktøj til visuel programledelse
PA Consulting: VPL – et nyt værktøj til visuel programledelse
Mediehuset Ingeniøren Live
 
The two stonemasons
The two stonemasonsThe two stonemasons
The two stonemasons
Dick Noort
 
Cobbtf summit 2015 Introduction and Agenda
Cobbtf summit 2015 Introduction and AgendaCobbtf summit 2015 Introduction and Agenda
Cobbtf summit 2015 Introduction and Agenda
Central Ohio Bed Bug Task Force
 
2015 City of Columbus Bed Bug Complaints
2015 City of Columbus Bed Bug Complaints2015 City of Columbus Bed Bug Complaints
2015 City of Columbus Bed Bug Complaints
Central Ohio Bed Bug Task Force
 
Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...
Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...
Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...
Mediehuset Ingeniøren Live
 
Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015
Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015
Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015
Central Ohio Bed Bug Task Force
 
Poverty
PovertyPoverty
Poverty
Yi Ttkjuig
 
DevOps Culture as a tool
DevOps Culture as a toolDevOps Culture as a tool
DevOps Culture as a tool
Dick Noort
 
Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by.
Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by. Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by.
Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by.
Mediehuset Ingeniøren Live
 
Susanne Høiberg: Tak til ensartede afgørelser for patenters gyldighed
Susanne Høiberg: Tak til ensartede afgørelser for patenters gyldighedSusanne Høiberg: Tak til ensartede afgørelser for patenters gyldighed
Susanne Høiberg: Tak til ensartede afgørelser for patenters gyldighed
Mediehuset Ingeniøren Live
 
Gry Husby Larsen: Langt billigere og bedre for os
Gry Husby Larsen: Langt billigere og bedre for os Gry Husby Larsen: Langt billigere og bedre for os
Gry Husby Larsen: Langt billigere og bedre for os
Mediehuset Ingeniøren Live
 
Styrk din rekruttering af specialister med sociale medier- Christina Just - C...
Styrk din rekruttering af specialister med sociale medier- Christina Just - C...Styrk din rekruttering af specialister med sociale medier- Christina Just - C...
Styrk din rekruttering af specialister med sociale medier- Christina Just - C...
Mediehuset Ingeniøren Live
 
PA Consulting: VPL – et nyt værktøj til visuel programledelse
PA Consulting: VPL – et nyt værktøj til visuel programledelsePA Consulting: VPL – et nyt værktøj til visuel programledelse
PA Consulting: VPL – et nyt værktøj til visuel programledelse
Mediehuset Ingeniøren Live
 
The two stonemasons
The two stonemasonsThe two stonemasons
The two stonemasons
Dick Noort
 
Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...
Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...
Styrk din rekruttering af specialister med sociale medier- Susanne Junge og D...
Mediehuset Ingeniøren Live
 
Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015
Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015
Bed Bug biology and Research by Dr. Susan Jones at COBBTF Summit 2015
Central Ohio Bed Bug Task Force
 
DevOps Culture as a tool
DevOps Culture as a toolDevOps Culture as a tool
DevOps Culture as a tool
Dick Noort
 
Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by.
Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by. Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by.
Birgit Bech Jensen - Energimetropol Esbjerg. Sådan brander man en hel by.
Mediehuset Ingeniøren Live
 
Susanne Høiberg: Tak til ensartede afgørelser for patenters gyldighed
Susanne Høiberg: Tak til ensartede afgørelser for patenters gyldighedSusanne Høiberg: Tak til ensartede afgørelser for patenters gyldighed
Susanne Høiberg: Tak til ensartede afgørelser for patenters gyldighed
Mediehuset Ingeniøren Live
 
Gry Husby Larsen: Langt billigere og bedre for os
Gry Husby Larsen: Langt billigere og bedre for os Gry Husby Larsen: Langt billigere og bedre for os
Gry Husby Larsen: Langt billigere og bedre for os
Mediehuset Ingeniøren Live
 

Similar to Debugging 2013- Lars pedersen (20)

CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
C4Media
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHP
Rogério Vicente
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open Source
DevOps.com
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
Brett Child
 
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean CodeBalancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Dave Hulbert
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
Yshay Yaacobi
 
meetup version of Paving the road to production
  meetup version of Paving the road to production    meetup version of Paving the road to production
meetup version of Paving the road to production
Matthew Reynolds
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
dcieslak
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
Paris Apostolopoulos
 
Why every Tester should also aspire to be a Developer on his project!-Sandee...
Why every Tester should  also aspire to be a Developer on his project!-Sandee...Why every Tester should  also aspire to be a Developer on his project!-Sandee...
Why every Tester should also aspire to be a Developer on his project!-Sandee...
bhumika2108
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Gibran Badrulzaman
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ambientia
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
Alexandru Bolboaca
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
Moataz Nabil
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
Vinothini Raju
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
Pekka Klärck
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
C4Media
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
Test Driven Development with PHP
Test Driven Development with PHPTest Driven Development with PHP
Test Driven Development with PHP
Rogério Vicente
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open Source
DevOps.com
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
Brett Child
 
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean CodeBalancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Dave Hulbert
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
Yshay Yaacobi
 
meetup version of Paving the road to production
  meetup version of Paving the road to production    meetup version of Paving the road to production
meetup version of Paving the road to production
Matthew Reynolds
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
dcieslak
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
Paris Apostolopoulos
 
Why every Tester should also aspire to be a Developer on his project!-Sandee...
Why every Tester should  also aspire to be a Developer on his project!-Sandee...Why every Tester should  also aspire to be a Developer on his project!-Sandee...
Why every Tester should also aspire to be a Developer on his project!-Sandee...
bhumika2108
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Gibran Badrulzaman
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ambientia
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
Moataz Nabil
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
Vinothini Raju
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
Pekka Klärck
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 

Recently uploaded (20)

IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 

Debugging 2013- Lars pedersen

  • 1. Quality Up Front How to spend less time debugging Lars Jarnbo Pedersen Co-founder Switch-Gears ApS
  • 2. About me Partner at Switch-Gears ApS ● Transitioning companies from old development tools to modern Open Source ones Been working for Nokia 2001-2012 ● Release manager for S40 software for many years ● Part of a small team that introduced Git, Gerrit and Jenkins to S40 development resulting in BIG productivity gains
  • 3. Pain in SW Development 50% COST OF BUGS of developer time is spent finding and fixing bugs* *http://www.businessweekly.co.uk/hi-tech/14898-software-bugs-cost-more-than-double-eurozone-bailout
  • 4. Why? Programming is hard… ● you have to map the problem domain to the programming language in use ● its usually a collaborative effort ● time pressure ● best practises are not shared Bugs are discovered late… ● context is lost ● often it is not the programmer who introduced the bug, who is fixing it
  • 5. Luckily 90% COST OF BUGS of the bugs can be caught during development* *http://www.codinghorror.com/blog/2006/01/code-reviews-just-do-it.html
  • 6. Because Average defect detection rate is 25 percent for unit testing, 35 percent for function testing, and 45 percent for integration testing. [McConnell93] Furthermore, the average effectiveness of design and code inspections are 55 and 60 percent. [McConnell93]
  • 8. Peer Code Review ● Beneficial for “quality of review” if the author pre-reviews and leaves comments for subsequent reviewers [Cohen2006] ● The longer a reviewer spends on the initial read-through, the more defects will ultimately be found [Uwano2006] ● Defect detection drops dramatically after ~60 minutes, to zero after ~90 minutes [Dunsmore2000]
  • 9. Peer Code Review ● Long methods and loops are very time consuming to understand [Uwano2006] ● Review 100 to 300 LOC at a time, in 30-60 minutes chunks, with a break between each sitting [Cohen2006] ● Spend at least 5 minutes reviewing a single line of code [Cohen2006] ● Limit reviewing to 1 hour per day [Ganssle2009]
  • 10. Mental Model Platform Knowledge + Development Process = Platform Quality
  • 11. Increase Platform Knowledge Write Readable Code!!! ● You spend much more time reading code than writing it - so make it nice to read! ● Refactor if necessary ● Include test-code Commit changes in logical units ● Always commit working code ● Never mix error-fixes and feature implementations Write descriptive commit messages ● Make sure the reason for the change is clearly explained
  • 12. Optimize Development Process Make it simple on the developers, ● allow multiple workflows at the developers desk ● don’t let the release/integration process stop the development flow ● minimize manual process steps while keeping a strict process ● automatically build and test all commits ● require code-review of all commits
  • 13. This is NOT rocket science! So why don’t we do it already? ● Waterfall development ● Code Reviews are perceived expensive ● Last generation of tools do not support this easily What is enabling it now? ● Agile development ● New breed of Open Source tools
  • 14. Git / Gerrit / Jenkins
  • 15. Git (DVCS) changes everything! Git is NOT subversion++ ● all operations except for push/pull are local => well suited for continuous integration ● allows for multiple workflows ○ development ○ integration / releasing ● is a first class citizen during development AND debugging! ○ gitk for code analysis ○ git bisect for debugging
  • 16. Gerrit A developer codes - and asks for feedback
  • 17. Peer Code Review Another developer reviews and comments
  • 18. Continuous Integration Actually you saw it in action already! Good tools help you without getting in the way
  • 19. Our experiences - Low Gain Example [Anonymized and obscured]
  • 20. Our experiences - High Gain Example [Anonymized and obscured]
  • 21. References Books ● ● Code Complete: A Practical Handbook of Software Construction, Second Edition by Steve McConnell (Jun 16, 2004) Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin (Aug 11, 2008) Articles ● ● ● ● ● SCM Ranking (Switch-Gears) CI Ranking (Switch-Gears) Best Kept Secrets of Peer Code Review (Smartbear) The Cost of Software Bugs (Business Weekly) Code Review - Just Do It (Coding Horror) Videos ● ● Linus Torvalds on Git (Google TechTalk) Development at the Speed and Scale of Google (InfoQ)