SlideShare a Scribd company logo
Code Quality
as a built-in process
By Elad Maimon
When to start with
code quality ?
When to start with
code quality ?
Quality
does not
s t a r t
after you
submit
PAIR PROGRAMMING
What is pair programming ?
What is pair programming ?
1 monitor
What is pair programming ?
1 monitor
1 keyboard
What is pair programming ?
1 monitor
1 keyboard
1 mouse
What is pair programming ?
1 monitor
1 keyboard
1 mouse
What is pair programming ?
1 monitor
1 keyboard
1 mouse
2 developers
Driver Navigator
Tactician Strategist
switch frequently...
Pros
Higher code quality
Pros
Higher code quality
Pros
Encourage discussions
Higher code quality
Pros
Encourage discussions
Knowledge sharing
Higher code quality
Pros
Encourage discussions
Knowledge sharing
Shared code ownership
Higher code quality
Pros
Encourage discussions
Knowledge sharing
Shared code ownership
Teaching tool
Higher code quality
Pros
Encourage discussions
Knowledge sharing
Shared code ownership
Focus
Teaching tool
Code quality as a built-in process
1 + 1 > 2 ?
Might reduce creativity
1 + 1 > 2 ?
Reduce independency
Might reduce creativity
1 + 1 > 2 ?
Reduce independency
Might reduce creativity
1 + 1 > 2 ?
Soloist teammate
- Be stubborn
- Get attached to your code
- Dominate
- Distract yourself
- Late
- Overuse
DOs DONTs
- Find proper environment
- Talk a lot
- Postpone hard decisions
- Take shared breaks
- Switch roles frequently
- Switch pairs often
Test Driven
Development
Why
automated
tests ?
It’s all about trust ...
our job is NOT to CODE
our job is NOT to TEST
we are software engineers
we SHIP software that
SOLVES problems. (Uri Nativ)
TDD & BDD
Code quality as a built-in process
Who writes this ?
Code quality as a built-in process
Code Reviews
Online
vs.
Formal
WHEN ?
Every line of code!
WHAT ?
Search for...
Search for...
Bugs
Search for...
Bugs Design
Search for...
Bugs Design Requirements
Bugs Design Requirements
UI
Bugs Design Requirements
UI Readability
Bugs Design Requirements
UI Readability Styleguide
Code quality as a built-in process
Code comments...
Code comments...
documentation = {
how: “code”,
why: “comments”
}
# TODO documents ?
Self documenting code
➭ Function and variable names
➭ Naming conventions
Self documenting code
➭ Function and variable names
➭ Naming conventions
This:
Self documenting code
➭ Function and variable names
➭ Naming conventions
vs. This:
This:
- Write extensive commit
comment
- Split to short commits
- Don’t get attached to your
code
- Understand the reviewer
is a better reference to
readability than you
Reviewer Reviewee
- Don’t insist on perfect
solution
- Different approaches are
OK
- Ask for explanations
- Separate faults that are
not “NO GO” ( open ticket )
- Don’t argue back and
forth more than twice -
talk F2F

More Related Content

What's hot (20)

PDF
TDD vs. ATDD - What, Why, Which, When & Where
Daniel Davis
 
PPTX
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
UXDXConf
 
PDF
Code review in practice
Edorian
 
PDF
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 
PDF
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
PDF
BDD in Action - building software that matters
John Ferguson Smart Limited
 
PDF
How to successfully grow a code review culture
Nina Zakharenko
 
PPTX
Importance of the quality of code
Shwe Yee
 
PPTX
Agile and ATDD the perfect couple
Stephen Tucker
 
PPTX
Behavior driven development (bdd)
Rohit Bisht
 
PPT
Behavior Driven Development Pros and Cons
Iosif Itkin
 
PDF
Agile Test Driven Development
Viraf Karai
 
PDF
Agile Testing
Intelliware Development Inc.
 
PPTX
Evolution of Software Engineering in NCTR Projects
Mohammed Abbas
 
ODP
TDD - Test Driven Development
Lim Chanmann
 
PPTX
Tdd 4 everyone full version
Lior Israel
 
PDF
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
PPTX
(A)TDD The what, why and how
Alexander van Trijffel
 
PPTX
BDD presentation
temebele
 
PPTX
TDD That Was Easy!
Kaizenko
 
TDD vs. ATDD - What, Why, Which, When & Where
Daniel Davis
 
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
UXDXConf
 
Code review in practice
Edorian
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
BDD in Action - building software that matters
John Ferguson Smart Limited
 
How to successfully grow a code review culture
Nina Zakharenko
 
Importance of the quality of code
Shwe Yee
 
Agile and ATDD the perfect couple
Stephen Tucker
 
Behavior driven development (bdd)
Rohit Bisht
 
Behavior Driven Development Pros and Cons
Iosif Itkin
 
Agile Test Driven Development
Viraf Karai
 
Evolution of Software Engineering in NCTR Projects
Mohammed Abbas
 
TDD - Test Driven Development
Lim Chanmann
 
Tdd 4 everyone full version
Lior Israel
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
(A)TDD The what, why and how
Alexander van Trijffel
 
BDD presentation
temebele
 
TDD That Was Easy!
Kaizenko
 

Viewers also liked (20)

PPTX
Tailor-Made Tax Practice Quality Controls presented at the West Michigan Tax ...
Jina Etiennne
 
PDF
What is exactly anti fragile in dev ops - v3
Asher Sterkin
 
PDF
Increasing code quality with code reviews (poetry version)
David Stockton
 
PPT
Code Quality Learn, Measure And Organize Awareness
Jaibeer Malik
 
KEY
Code Quality Analysis
martin_j_andrews
 
PDF
Measuring Code Quality in WTF/min.
David Gómez García
 
PDF
Code Quality Assurance v4 (2013)
Peter Kofler
 
PDF
Managing code quality with SonarQube - Radu Vunvulea
ITSpark Community
 
PDF
טלפונים חכמים ואתם
Idan ofek
 
PPTX
1953 and all that. A tale of two sciences (Kitcher, 1984)
Yoav Francis
 
PDF
Guice - dependency injection framework
Evgeny Barabanov
 
PPTX
User-Perceived Source Code Quality Estimation based on Static Analysis Metrics
ISSEL
 
PDF
מכתב המלצה - לירן פרידמן
Liran Fridman
 
PPTX
Measuring the Code Quality Using Software Metrics
Geetha Anjali
 
PPTX
NUnit Features Presentation
Shir Brass
 
PDF
Responsive Web Design
Nir Elbaz
 
PPTX
Agile code quality metrics
Gil Nahmias
 
PDF
Work-for-hire Game Studios: Elevate Your Game
Gur Dotan
 
PPTX
Code Review
Mikalai Alimenkou
 
PPTX
SonarQube - The leading platform for Continuous Code Quality
Larry Nung
 
Tailor-Made Tax Practice Quality Controls presented at the West Michigan Tax ...
Jina Etiennne
 
What is exactly anti fragile in dev ops - v3
Asher Sterkin
 
Increasing code quality with code reviews (poetry version)
David Stockton
 
Code Quality Learn, Measure And Organize Awareness
Jaibeer Malik
 
Code Quality Analysis
martin_j_andrews
 
Measuring Code Quality in WTF/min.
David Gómez García
 
Code Quality Assurance v4 (2013)
Peter Kofler
 
Managing code quality with SonarQube - Radu Vunvulea
ITSpark Community
 
טלפונים חכמים ואתם
Idan ofek
 
1953 and all that. A tale of two sciences (Kitcher, 1984)
Yoav Francis
 
Guice - dependency injection framework
Evgeny Barabanov
 
User-Perceived Source Code Quality Estimation based on Static Analysis Metrics
ISSEL
 
מכתב המלצה - לירן פרידמן
Liran Fridman
 
Measuring the Code Quality Using Software Metrics
Geetha Anjali
 
NUnit Features Presentation
Shir Brass
 
Responsive Web Design
Nir Elbaz
 
Agile code quality metrics
Gil Nahmias
 
Work-for-hire Game Studios: Elevate Your Game
Gur Dotan
 
Code Review
Mikalai Alimenkou
 
SonarQube - The leading platform for Continuous Code Quality
Larry Nung
 
Ad

Similar to Code quality as a built-in process (20)

PDF
Hidden sides of Code Review (Do-iOS)
Dmitrii Ivanov
 
PDF
How To Do Kick-Ass Software Development, by Sven Peters
ZeroTurnaround
 
PPTX
Make a better with clean code
Keattiwut Kosittaruk
 
PPTX
You cant be agile if your code sucks
Peter Gfader
 
PDF
TDD - Cultivating a Beginner's Mind
Shai Yallin
 
PPTX
“One man” development process model
Silicon Straits
 
PDF
Mob Programming for Continuous Learning
Mike Clement
 
PDF
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Bosnia Agile
 
ODP
Documenting Code - Patterns and Anti-patterns - NLPW 2016
Søren Lund
 
PDF
Tdd in practice
Andrew Meredith
 
PDF
How to Do Kick-Ass Software Development
Josiah Renaudin
 
KEY
Development tools
Robert Deutz
 
ODP
Documenting code yapceu2016
Søren Lund
 
PPSX
sitHVR - The Hitchhikers Guide to the Legacy
Laurens van Rijn
 
PPSX
sitBRU - The Hitchhikers Guide to the Legacy
Laurens van Rijn
 
PDF
Good behaviors
Rawin Windygallery
 
PDF
Talk or Not to Talk @ CSCW 2012
Adrian Schroeter
 
PDF
高品質軟體的基本動作 101 + 102 for NUU
Su Jan
 
PPTX
Coding Introductory Lesson Upper Elementary
Brittany Pike
 
Hidden sides of Code Review (Do-iOS)
Dmitrii Ivanov
 
How To Do Kick-Ass Software Development, by Sven Peters
ZeroTurnaround
 
Make a better with clean code
Keattiwut Kosittaruk
 
You cant be agile if your code sucks
Peter Gfader
 
TDD - Cultivating a Beginner's Mind
Shai Yallin
 
“One man” development process model
Silicon Straits
 
Mob Programming for Continuous Learning
Mike Clement
 
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Bosnia Agile
 
Documenting Code - Patterns and Anti-patterns - NLPW 2016
Søren Lund
 
Tdd in practice
Andrew Meredith
 
How to Do Kick-Ass Software Development
Josiah Renaudin
 
Development tools
Robert Deutz
 
Documenting code yapceu2016
Søren Lund
 
sitHVR - The Hitchhikers Guide to the Legacy
Laurens van Rijn
 
sitBRU - The Hitchhikers Guide to the Legacy
Laurens van Rijn
 
Good behaviors
Rawin Windygallery
 
Talk or Not to Talk @ CSCW 2012
Adrian Schroeter
 
高品質軟體的基本動作 101 + 102 for NUU
Su Jan
 
Coding Introductory Lesson Upper Elementary
Brittany Pike
 
Ad

Recently uploaded (20)

PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 

Code quality as a built-in process