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

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

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 

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.