SlideShare a Scribd company logo
1 of 12
Download to read offline
Product Excellence
Best Practices
Update: 10/2018
@greenido
GreenIdo
Goal
Create a baseline that developers could follow and be in
a quality level with regards to product excellence:
1. Testing
2. Code reviews
3. Static analysis
4. Health: availability, resilience, etc’.
Product Excellence
Product Excellence is
a culture, not a checklist
Tests
1. It’s FAST – The tests should run fast in order to encourage developers to
use them constantly during the development process.
2. Stable – The test doesn’t break often. You wish to minimize the
false-positive ratio as much as you can. This is why you need ‘small’ tests
that are encapsulated and give you a clear sign on what is working (or not).
3. Easy to read, maintain, run and understand.
4. Catches Bugs! When a test fails it’s most probably a bug.
5. Does not impact customers.
6. Automated.
Code Reviews
...and the best part?
We don’t have a style guide.
(You might want to have one for your team)
Code Reviews - Benefits
● Accidental errors (e.g., typos) as well as structural errors (e.g., dead code, logic or
algorithm bugs, performance or architecture concerns) are often much easier to spot
for critical reviewers.
● Legible code is more reusable, bug-free, and future-proof.
● Committers are motivated by the notion of a viewer who will look over the change
request: the committer tends to clean up loose ends, consolidate TODOs, and
improve the commit.
● Sharing knowledge: Reviewers may possess knowledge about programming
techniques or the code base that can help improve or consolidate the change.
● Consistency in a code base makes code easier to read and understand.
Static Analysis
Why?
1. Helps identify potential software
issues during development.
2. Helps to detect code that needs:
simplification, readability,
testability etc’.
3. It also improves communication in
the development team and helps to
produce high quality code.
How?
1. SAAS option like Sonarsource
2. SpotBugs – part of your build/dev
process.
3. Many other options to use linting
extensions/plug-in so you will catch
many issues during development
time.
(!) Low Effort → High ROI
How?
If you want to build a ship,
don't drum up the people
to gather wood, divide the
work, and give orders.
Instead, teach them to yearn
for the vast and endless sea.
Freedom and
Responsibility
Highly Aligned, Loosely
Coupled
In our case, it’s a
spaceship.
What is the level
of quality you will
tolerate?
How?1. Have a good coverage of your code.
a. ~70% with unit tests which are ‘small’ tests that run fast
and encapsulated
b. 20% for integration tests
c. 10% for UI (or end-to-end) tests.
2. ROI - A good coverage to effort ratio.
3. Make sure you have:
a. Unit tests
b. Integration tests
c. Functional tests / End-to-end tests
d. Performance test
4. It’s all automated and part of your build process.
5. You can also divide the world of ‘test type’ to S/M/L.
How?
1. When you have an issue with production → You creating a test to cover it in the
future.
2. Learn from your (and others!) history.
3. Build a process of debriefing after each time something happened (or almost
happened) and create a test that covers this case for the future.
4. You can test in production but think carefully if it’s the right thing to do for your
specific case.
Can you use Mocks, Stubs?
High standards are contagious
Bring a new person onto a high
standards team, and they’ll quickly
adapt.
The opposite is also true.
Thank you!
@greenido
GreenIdo

More Related Content

More from Ido Green

Google Assistant - Why? How?
Google Assistant - Why? How?Google Assistant - Why? How?
Google Assistant - Why? How?Ido Green
 
The Google Assistant - Macro View (October 2017)
The Google Assistant - Macro View (October 2017)The Google Assistant - Macro View (October 2017)
The Google Assistant - Macro View (October 2017)Ido Green
 
Actions On Google - GDD Europe 2017
Actions On Google - GDD Europe 2017Actions On Google - GDD Europe 2017
Actions On Google - GDD Europe 2017Ido Green
 
Building conversational experiences with Actions on Google
Building conversational experiences with Actions on GoogleBuilding conversational experiences with Actions on Google
Building conversational experiences with Actions on GoogleIdo Green
 
Actions On Google - How? Why?
Actions On Google - How? Why?Actions On Google - How? Why?
Actions On Google - How? Why?Ido Green
 
Startups Best Practices
Startups Best PracticesStartups Best Practices
Startups Best PracticesIdo Green
 
Progressive Web Apps For Startups
Progressive Web Apps For StartupsProgressive Web Apps For Startups
Progressive Web Apps For StartupsIdo Green
 
Earn More Revenue With Firebase and AdMob
Earn More Revenue With Firebase and AdMobEarn More Revenue With Firebase and AdMob
Earn More Revenue With Firebase and AdMobIdo Green
 
How To Grow Your User Base?
How To Grow Your User Base?How To Grow Your User Base?
How To Grow Your User Base?Ido Green
 
Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Ido Green
 
AMP - Accelerated Mobile Pages
AMP - Accelerated Mobile PagesAMP - Accelerated Mobile Pages
AMP - Accelerated Mobile PagesIdo Green
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWAIdo Green
 
Google Innovation 101
Google Innovation 101Google Innovation 101
Google Innovation 101Ido Green
 
סטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמהסטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמהIdo Green
 
איך להתחיל סטארטאפ 2016
איך להתחיל סטארטאפ 2016איך להתחיל סטארטאפ 2016
איך להתחיל סטארטאפ 2016Ido Green
 
Building a Progressive Web App
Building a  Progressive Web AppBuilding a  Progressive Web App
Building a Progressive Web AppIdo Green
 
How to start? - The Execution
How to start? - The Execution How to start? - The Execution
How to start? - The Execution Ido Green
 
How to make (more) money on the web?
How to make (more) money on the web?How to make (more) money on the web?
How to make (more) money on the web?Ido Green
 
How to start? (and excel with the elephants)
How to start? (and excel with the elephants)How to start? (and excel with the elephants)
How to start? (and excel with the elephants)Ido Green
 
How to start? The Product
How to start? The Product How to start? The Product
How to start? The Product Ido Green
 

More from Ido Green (20)

Google Assistant - Why? How?
Google Assistant - Why? How?Google Assistant - Why? How?
Google Assistant - Why? How?
 
The Google Assistant - Macro View (October 2017)
The Google Assistant - Macro View (October 2017)The Google Assistant - Macro View (October 2017)
The Google Assistant - Macro View (October 2017)
 
Actions On Google - GDD Europe 2017
Actions On Google - GDD Europe 2017Actions On Google - GDD Europe 2017
Actions On Google - GDD Europe 2017
 
Building conversational experiences with Actions on Google
Building conversational experiences with Actions on GoogleBuilding conversational experiences with Actions on Google
Building conversational experiences with Actions on Google
 
Actions On Google - How? Why?
Actions On Google - How? Why?Actions On Google - How? Why?
Actions On Google - How? Why?
 
Startups Best Practices
Startups Best PracticesStartups Best Practices
Startups Best Practices
 
Progressive Web Apps For Startups
Progressive Web Apps For StartupsProgressive Web Apps For Startups
Progressive Web Apps For Startups
 
Earn More Revenue With Firebase and AdMob
Earn More Revenue With Firebase and AdMobEarn More Revenue With Firebase and AdMob
Earn More Revenue With Firebase and AdMob
 
How To Grow Your User Base?
How To Grow Your User Base?How To Grow Your User Base?
How To Grow Your User Base?
 
Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Amp Overview #YGLF 2016
Amp Overview #YGLF 2016
 
AMP - Accelerated Mobile Pages
AMP - Accelerated Mobile PagesAMP - Accelerated Mobile Pages
AMP - Accelerated Mobile Pages
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWA
 
Google Innovation 101
Google Innovation 101Google Innovation 101
Google Innovation 101
 
סטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמהסטארטאפ - איך? כמה? ולמה
סטארטאפ - איך? כמה? ולמה
 
איך להתחיל סטארטאפ 2016
איך להתחיל סטארטאפ 2016איך להתחיל סטארטאפ 2016
איך להתחיל סטארטאפ 2016
 
Building a Progressive Web App
Building a  Progressive Web AppBuilding a  Progressive Web App
Building a Progressive Web App
 
How to start? - The Execution
How to start? - The Execution How to start? - The Execution
How to start? - The Execution
 
How to make (more) money on the web?
How to make (more) money on the web?How to make (more) money on the web?
How to make (more) money on the web?
 
How to start? (and excel with the elephants)
How to start? (and excel with the elephants)How to start? (and excel with the elephants)
How to start? (and excel with the elephants)
 
How to start? The Product
How to start? The Product How to start? The Product
How to start? The Product
 

Recently uploaded

Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 

Recently uploaded (20)

Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 

Product Excellence Best Practices

  • 1. Product Excellence Best Practices Update: 10/2018 @greenido GreenIdo
  • 2. Goal Create a baseline that developers could follow and be in a quality level with regards to product excellence: 1. Testing 2. Code reviews 3. Static analysis 4. Health: availability, resilience, etc’.
  • 3. Product Excellence Product Excellence is a culture, not a checklist
  • 4. Tests 1. It’s FAST – The tests should run fast in order to encourage developers to use them constantly during the development process. 2. Stable – The test doesn’t break often. You wish to minimize the false-positive ratio as much as you can. This is why you need ‘small’ tests that are encapsulated and give you a clear sign on what is working (or not). 3. Easy to read, maintain, run and understand. 4. Catches Bugs! When a test fails it’s most probably a bug. 5. Does not impact customers. 6. Automated.
  • 5. Code Reviews ...and the best part? We don’t have a style guide. (You might want to have one for your team)
  • 6. Code Reviews - Benefits ● Accidental errors (e.g., typos) as well as structural errors (e.g., dead code, logic or algorithm bugs, performance or architecture concerns) are often much easier to spot for critical reviewers. ● Legible code is more reusable, bug-free, and future-proof. ● Committers are motivated by the notion of a viewer who will look over the change request: the committer tends to clean up loose ends, consolidate TODOs, and improve the commit. ● Sharing knowledge: Reviewers may possess knowledge about programming techniques or the code base that can help improve or consolidate the change. ● Consistency in a code base makes code easier to read and understand.
  • 7. Static Analysis Why? 1. Helps identify potential software issues during development. 2. Helps to detect code that needs: simplification, readability, testability etc’. 3. It also improves communication in the development team and helps to produce high quality code. How? 1. SAAS option like Sonarsource 2. SpotBugs – part of your build/dev process. 3. Many other options to use linting extensions/plug-in so you will catch many issues during development time. (!) Low Effort → High ROI
  • 8. How? If you want to build a ship, don't drum up the people to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea. Freedom and Responsibility Highly Aligned, Loosely Coupled In our case, it’s a spaceship. What is the level of quality you will tolerate?
  • 9. How?1. Have a good coverage of your code. a. ~70% with unit tests which are ‘small’ tests that run fast and encapsulated b. 20% for integration tests c. 10% for UI (or end-to-end) tests. 2. ROI - A good coverage to effort ratio. 3. Make sure you have: a. Unit tests b. Integration tests c. Functional tests / End-to-end tests d. Performance test 4. It’s all automated and part of your build process. 5. You can also divide the world of ‘test type’ to S/M/L.
  • 10. How? 1. When you have an issue with production → You creating a test to cover it in the future. 2. Learn from your (and others!) history. 3. Build a process of debriefing after each time something happened (or almost happened) and create a test that covers this case for the future. 4. You can test in production but think carefully if it’s the right thing to do for your specific case. Can you use Mocks, Stubs?
  • 11. High standards are contagious Bring a new person onto a high standards team, and they’ll quickly adapt. The opposite is also true.