Code quality and its business value, Nikita Belov

CzechDreamin
CzechDreaminCzechDreamin
Code quality and its business value
by Nikita Belov
#CD22
● Born in Uzbekistan, live in Prague
● Graduated from Computer Physics
● Working with Salesforce since 2016
● 4,5 years in consultancy
● 4x Salesforce certified
● Passionate about code quality
Nikita Belov
Salesforce Technical Lead
#CD22
● What is code quality?
○ Low quality origin
○ Low quality issues
● Why it is important?
● How to improve it?
○ Coding standards
○ Code review
○ Static code analyzer
● What is business value?
● Q&A
Agenda
#CD22
● Good code or bad code?
○ no unified definition
● Good code
○ Simple
○ Readable
○ Performant
○ Secure
○ Reliable
○ Well tested
○ Bug-free
○ Scalable
○ Documented
What is code quality?
#CD22
What is code quality?
#CD22
Low quality origin
● Many origins
● The most common – lack of time
#CD22
Low quality origin
● We need it yesterday!
#CD22
Low quality origin
● We need it yesterday!
● Less time, same scope and resources!
#CD22
Low quality origin
● We need it yesterday!
● Less time, same scope and resources!
Result?
#CD22
Low quality issues – front-end vs back-end
#CD22
Low quality issues – front-end vs back-end
#CD22
Low quality issues – front-end vs back-end
#CD22
Low quality issues – unstructured code
#CD22
Low quality issues – readability
#CD22
Low quality issues – duplicate code
#CD22
Low quality issues – duplicate code
#CD22
Low quality issues – duplicate code
#CD22
Low quality issues – duplicate code
#CD22
Low quality issues – fixing bugs
#CD22
● Hidden bugs and security vulnerabilities
● Lack of good tests
● Unstable code base for new features
● Salesforce governor limits exceeding
● Data issues
● Unreadable and confusing code
● Higher maintenance efforts
● Longer delivery time of new features
● Demotivated developers
● Performance impacts
Why it is important?
#CD22
A set of rules, techniques, and best practices to
create cleaner, more readable, more efficient
code with minimal errors.
Benefits
● Uniform format
● Easier to detect errors
● Reusable code
● Easier to maintain
● Developer efficiency
How to improve it? – Coding standards
#CD22
How to improve it? – Code review
A quality assurance activity where someone
other than the author of a code reviews that code
Benefits
● Quality of code
● Finding bugs and security vulnerabilities
● Knowledge sharing
● Collective ownership
#CD22
How to improve it? – Code review
#CD22
● Scans your code to detect common bad practices, catch bugs, find
vulnerabilities and make sure development adheres to coding
standards.
● Analyzers for Salesforce
○ PMD
○ SonarQube
○ CodeScan
○ Veracode
○ Salesforce Code Analyzer
● IDE plugins or part of CI/CD pipelines
How to improve it? – Static code analyzer
#CD22
What is business value?
● Stable and secured code base
● Less maintenance efforts
● Faster delivery of new features
● Optimized performance
● Easier migrations or upgrades
● Less time for developer on-
boarding
● Highly motivated development
team
#CD22
What is business value?
● Stable and secured code base
● Less maintenance efforts
● Faster delivery of new features
● Optimized performance
● Easier migrations or upgrades
● Less time for developer on-
boarding
● Highly motivated development
team
Does it still bring no business value?
#CD22
Q&A
Q&A
#CD22
● How many Salesforce developers does it take to change a light bulb?
Bonus
#CD22
● How many Salesforce developers does it take to change a light bulb?
● As many as you want! It doesn’t count against Salesforce governor
limits.
Bonus
Thank you! #CD22
#CD22
● https://www.codescan.io/
● https://www.sonarqube.org/
● https://forcedotcom.github.io/sfdx-scanner/
● https://pmd.github.io/
● https://lvivity.com/how-to-write-good-code
● https://www.browserstack.com/guide/coding-standards-best-practices
● https://en.wikipedia.org/wiki/Coding_conventions
● https://www.codegrip.tech/productivity/why-is-code-quality-important/
● https://www.perforce.com/blog/sca/what-code-quality-overview-how-improve-code-quality
● https://www.atlassian.com/blog/add-ons/4-tips-to-improve-code-quality
● https://smartbear.com/learn/code-review/what-is-code-review/
● https://about.gitlab.com/topics/version-control/what-is-code-review/
● https://www.atlassian.com/agile/software-development/code-reviews
● https://en.wikipedia.org/wiki/Code_review
References
#CD22
● Very often the importance of the code quality is underestimated
especially by business people who usually don’t see the business
value of it. In this session we will try to discover all the advantages of
well written code and discuss how coding standards, code reviews and
static code analyzer can help to maintain the level of quality and bring
the business value.
Abstract
1 of 32

Recommended

Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith... by
Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith...Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith...
Our Tale from the Trail of Shadows at REI Co-op - Chris Phillips & Dale Smith...Lucidworks
581 views41 slides
Deliberate Practice (Agile Slovenia 2015) by
Deliberate Practice (Agile Slovenia 2015)Deliberate Practice (Agile Slovenia 2015)
Deliberate Practice (Agile Slovenia 2015)Peter Kofler
1.4K views64 slides
Clean application development (talk) by
Clean application development (talk)Clean application development (talk)
Clean application development (talk)Adam Culp
3K views37 slides
You cant be agile if your code sucks by
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
25.6K views83 slides
The Complete AEM Content Lifecycle by
The Complete AEM Content LifecycleThe Complete AEM Content Lifecycle
The Complete AEM Content LifecycleDaniel Klco
986 views26 slides
Agile & Test Driven Development: The Ampersand Commerce Approach by
Agile & Test Driven Development: The Ampersand Commerce ApproachAgile & Test Driven Development: The Ampersand Commerce Approach
Agile & Test Driven Development: The Ampersand Commerce ApproachAmpersand
1.2K views28 slides

More Related Content

Similar to Code quality and its business value, Nikita Belov

"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy NakonechnyyFwdays
49 views21 slides
Balancing Technical Debt and Clean Code by
Balancing Technical Debt and Clean CodeBalancing Technical Debt and Clean Code
Balancing Technical Debt and Clean CodeDave Hulbert
957 views68 slides
Managing Complexity in Salesforce, David Felkel by
Managing Complexity in Salesforce, David FelkelManaging Complexity in Salesforce, David Felkel
Managing Complexity in Salesforce, David FelkelCzechDreamin
92 views41 slides
Managing Technical Debt by
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAdam Culp
216 views34 slides
Designing Test Cases for the Gilded Rose Kata (2013) by
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Peter Kofler
1.7K views14 slides
Code with Honor – on the importance and beauty of software programming - RMOU... by
Code with Honor – on the importance and beauty of software programming - RMOU...Code with Honor – on the importance and beauty of software programming - RMOU...
Code with Honor – on the importance and beauty of software programming - RMOU...Lucas Jellema
199 views86 slides

Similar to Code quality and its business value, Nikita Belov(20)

"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by Fwdays
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
Fwdays49 views
Balancing Technical Debt and Clean Code by Dave Hulbert
Balancing Technical Debt and Clean CodeBalancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Dave Hulbert957 views
Managing Complexity in Salesforce, David Felkel by CzechDreamin
Managing Complexity in Salesforce, David FelkelManaging Complexity in Salesforce, David Felkel
Managing Complexity in Salesforce, David Felkel
CzechDreamin92 views
Managing Technical Debt by Adam Culp
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
Adam Culp216 views
Designing Test Cases for the Gilded Rose Kata (2013) by Peter Kofler
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
Peter Kofler1.7K views
Code with Honor – on the importance and beauty of software programming - RMOU... by Lucas Jellema
Code with Honor – on the importance and beauty of software programming - RMOU...Code with Honor – on the importance and beauty of software programming - RMOU...
Code with Honor – on the importance and beauty of software programming - RMOU...
Lucas Jellema199 views
Test-Driven Development.pptx by Tomas561914
Test-Driven Development.pptxTest-Driven Development.pptx
Test-Driven Development.pptx
Tomas56191416 views
Prashant technical practices-tdd for xebia event by Xebia India
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
Xebia India110 views
Voxxed days 2015-hakansaglam-codereview by Hakan Saglam
Voxxed days 2015-hakansaglam-codereviewVoxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereview
Hakan Saglam3K views
How to migrate to Apex Enterprise Patterns?, David Fernandez by CzechDreamin
How to migrate to Apex Enterprise Patterns?, David FernandezHow to migrate to Apex Enterprise Patterns?, David Fernandez
How to migrate to Apex Enterprise Patterns?, David Fernandez
CzechDreamin182 views
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev... by DevOpsDays Tel Aviv
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
Technical debt management strategies by Raquel Pau
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
Raquel Pau1.4K views
Pair Programming (2015) by Peter Kofler
Pair Programming (2015)Pair Programming (2015)
Pair Programming (2015)
Peter Kofler851 views
Does Your Code Measure Up? by Adam Culp
Does Your Code Measure Up?Does Your Code Measure Up?
Does Your Code Measure Up?
Adam Culp1.8K views
Building Sustainable Software: An Introduction to Software Engineering by Muhammad Shehata
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
Muhammad Shehata144 views

More from CzechDreamin

Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi... by
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...CzechDreamin
1.1K views32 slides
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ... by
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...CzechDreamin
1K views27 slides
How we should include Devops Center to get happy developers?, David Fernandez... by
How we should include Devops Center to get happy developers?, David Fernandez...How we should include Devops Center to get happy developers?, David Fernandez...
How we should include Devops Center to get happy developers?, David Fernandez...CzechDreamin
1K views20 slides
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G... by
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...CzechDreamin
1K views18 slides
Architecting for Analytics, Aaron Crear by
Architecting for Analytics, Aaron CrearArchitecting for Analytics, Aaron Crear
Architecting for Analytics, Aaron CrearCzechDreamin
1.1K views16 slides
Ape to API, Filip Dousek by
Ape to API, Filip DousekApe to API, Filip Dousek
Ape to API, Filip DousekCzechDreamin
1.1K views32 slides

More from CzechDreamin(20)

Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi... by CzechDreamin
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
CzechDreamin1.1K views
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ... by CzechDreamin
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
CzechDreamin1K views
How we should include Devops Center to get happy developers?, David Fernandez... by CzechDreamin
How we should include Devops Center to get happy developers?, David Fernandez...How we should include Devops Center to get happy developers?, David Fernandez...
How we should include Devops Center to get happy developers?, David Fernandez...
CzechDreamin1K views
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G... by CzechDreamin
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
CzechDreamin1K views
Architecting for Analytics, Aaron Crear by CzechDreamin
Architecting for Analytics, Aaron CrearArchitecting for Analytics, Aaron Crear
Architecting for Analytics, Aaron Crear
CzechDreamin1.1K views
Ape to API, Filip Dousek by CzechDreamin
Ape to API, Filip DousekApe to API, Filip Dousek
Ape to API, Filip Dousek
CzechDreamin1.1K views
How do you know you’re solving the right problem? Design Thinking for Salesfo... by CzechDreamin
How do you know you’re solving the right problem? Design Thinking for Salesfo...How do you know you’re solving the right problem? Design Thinking for Salesfo...
How do you know you’re solving the right problem? Design Thinking for Salesfo...
CzechDreamin1.1K views
Real-time communication with Account Engagement (Pardot). Marketers meet deve... by CzechDreamin
Real-time communication with Account Engagement (Pardot). Marketers meet deve...Real-time communication with Account Engagement (Pardot). Marketers meet deve...
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
CzechDreamin1.1K views
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian... by CzechDreamin
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
CzechDreamin1.2K views
5 key ideas for robust and flexible REST API integrations with Apex, Lucian M... by CzechDreamin
5 key ideas for robust and flexible REST API integrations with Apex, Lucian M...5 key ideas for robust and flexible REST API integrations with Apex, Lucian M...
5 key ideas for robust and flexible REST API integrations with Apex, Lucian M...
CzechDreamin1.1K views
Report & Dashboard REST API : Get your report accessible anywhere !, Romain Q... by CzechDreamin
Report & Dashboard REST API : Get your report accessible anywhere !, Romain Q...Report & Dashboard REST API : Get your report accessible anywhere !, Romain Q...
Report & Dashboard REST API : Get your report accessible anywhere !, Romain Q...
CzechDreamin1.1K views
No Such Thing as Best Practice in Design, Nati Asher and Pat Fragoso by CzechDreamin
No Such Thing as Best Practice in Design, Nati Asher and Pat FragosoNo Such Thing as Best Practice in Design, Nati Asher and Pat Fragoso
No Such Thing as Best Practice in Design, Nati Asher and Pat Fragoso
CzechDreamin1.2K views
Why do you Need to Migrate to Salesforce Flow?, Andrew Cook by CzechDreamin
Why do you Need to Migrate to Salesforce Flow?, Andrew CookWhy do you Need to Migrate to Salesforce Flow?, Andrew Cook
Why do you Need to Migrate to Salesforce Flow?, Andrew Cook
CzechDreamin1.1K views
Be kind to your future admin self, Silvia Denaro & Nathaniel Sombu by CzechDreamin
Be kind to your future admin self, Silvia Denaro & Nathaniel SombuBe kind to your future admin self, Silvia Denaro & Nathaniel Sombu
Be kind to your future admin self, Silvia Denaro & Nathaniel Sombu
CzechDreamin1.1K views
Monitoring Automation Performance in Marketing Cloud Engagement, Daniela Vrbk... by CzechDreamin
Monitoring Automation Performance in Marketing Cloud Engagement, Daniela Vrbk...Monitoring Automation Performance in Marketing Cloud Engagement, Daniela Vrbk...
Monitoring Automation Performance in Marketing Cloud Engagement, Daniela Vrbk...
CzechDreamin1.2K views
The minimum-profile approach – the modern way to design an efficient security... by CzechDreamin
The minimum-profile approach – the modern way to design an efficient security...The minimum-profile approach – the modern way to design an efficient security...
The minimum-profile approach – the modern way to design an efficient security...
CzechDreamin1.2K views
Restriction Rules – The Whole Picture, Louise Lockie by CzechDreamin
Restriction Rules – The Whole Picture, Louise LockieRestriction Rules – The Whole Picture, Louise Lockie
Restriction Rules – The Whole Picture, Louise Lockie
CzechDreamin1.5K views
Introduction to Custom Journey Builder Activities, Orkhan Alakbarli by CzechDreamin
Introduction to Custom Journey Builder Activities, Orkhan AlakbarliIntroduction to Custom Journey Builder Activities, Orkhan Alakbarli
Introduction to Custom Journey Builder Activities, Orkhan Alakbarli
CzechDreamin1.2K views
Taking control of your queries with GraphQL, Alba Rivas by CzechDreamin
Taking control of your queries with GraphQL, Alba RivasTaking control of your queries with GraphQL, Alba Rivas
Taking control of your queries with GraphQL, Alba Rivas
CzechDreamin1.2K views
“Soft Skills” are the new “Hard Skills” – Tips & Tricks for Salesforce Projec... by CzechDreamin
“Soft Skills” are the new “Hard Skills” – Tips & Tricks for Salesforce Projec...“Soft Skills” are the new “Hard Skills” – Tips & Tricks for Salesforce Projec...
“Soft Skills” are the new “Hard Skills” – Tips & Tricks for Salesforce Projec...
CzechDreamin1.1K views

Recently uploaded

nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 views7 slides
SAP FOR CONTRACT MANUFACTURING.pdf by
SAP FOR CONTRACT MANUFACTURING.pdfSAP FOR CONTRACT MANUFACTURING.pdf
SAP FOR CONTRACT MANUFACTURING.pdfVirendra Rai, PMP
13 views2 slides
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...TomHalpin9
6 views29 slides
Airline Booking Software by
Airline Booking SoftwareAirline Booking Software
Airline Booking SoftwareSharmiMehta
7 views26 slides
Quality Engineer: A Day in the Life by
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the LifeJohn Valentino
7 views18 slides
Software evolution understanding: Automatic extraction of software identifier... by
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
10 views33 slides

Recently uploaded(20)

Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta7 views
Quality Engineer: A Day in the Life by John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino7 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... by Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller42 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert26 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views
Copilot Prompting Toolkit_All Resources.pdf by Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana16 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app7 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller41 views
FIMA 2023 Neo4j & FS - Entity Resolution.pptx by Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j17 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino6 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ10 views

Code quality and its business value, Nikita Belov

  • 1. Code quality and its business value by Nikita Belov
  • 2. #CD22 ● Born in Uzbekistan, live in Prague ● Graduated from Computer Physics ● Working with Salesforce since 2016 ● 4,5 years in consultancy ● 4x Salesforce certified ● Passionate about code quality Nikita Belov Salesforce Technical Lead
  • 3. #CD22 ● What is code quality? ○ Low quality origin ○ Low quality issues ● Why it is important? ● How to improve it? ○ Coding standards ○ Code review ○ Static code analyzer ● What is business value? ● Q&A Agenda
  • 4. #CD22 ● Good code or bad code? ○ no unified definition ● Good code ○ Simple ○ Readable ○ Performant ○ Secure ○ Reliable ○ Well tested ○ Bug-free ○ Scalable ○ Documented What is code quality?
  • 6. #CD22 Low quality origin ● Many origins ● The most common – lack of time
  • 7. #CD22 Low quality origin ● We need it yesterday!
  • 8. #CD22 Low quality origin ● We need it yesterday! ● Less time, same scope and resources!
  • 9. #CD22 Low quality origin ● We need it yesterday! ● Less time, same scope and resources! Result?
  • 10. #CD22 Low quality issues – front-end vs back-end
  • 11. #CD22 Low quality issues – front-end vs back-end
  • 12. #CD22 Low quality issues – front-end vs back-end
  • 13. #CD22 Low quality issues – unstructured code
  • 14. #CD22 Low quality issues – readability
  • 15. #CD22 Low quality issues – duplicate code
  • 16. #CD22 Low quality issues – duplicate code
  • 17. #CD22 Low quality issues – duplicate code
  • 18. #CD22 Low quality issues – duplicate code
  • 19. #CD22 Low quality issues – fixing bugs
  • 20. #CD22 ● Hidden bugs and security vulnerabilities ● Lack of good tests ● Unstable code base for new features ● Salesforce governor limits exceeding ● Data issues ● Unreadable and confusing code ● Higher maintenance efforts ● Longer delivery time of new features ● Demotivated developers ● Performance impacts Why it is important?
  • 21. #CD22 A set of rules, techniques, and best practices to create cleaner, more readable, more efficient code with minimal errors. Benefits ● Uniform format ● Easier to detect errors ● Reusable code ● Easier to maintain ● Developer efficiency How to improve it? – Coding standards
  • 22. #CD22 How to improve it? – Code review A quality assurance activity where someone other than the author of a code reviews that code Benefits ● Quality of code ● Finding bugs and security vulnerabilities ● Knowledge sharing ● Collective ownership
  • 23. #CD22 How to improve it? – Code review
  • 24. #CD22 ● Scans your code to detect common bad practices, catch bugs, find vulnerabilities and make sure development adheres to coding standards. ● Analyzers for Salesforce ○ PMD ○ SonarQube ○ CodeScan ○ Veracode ○ Salesforce Code Analyzer ● IDE plugins or part of CI/CD pipelines How to improve it? – Static code analyzer
  • 25. #CD22 What is business value? ● Stable and secured code base ● Less maintenance efforts ● Faster delivery of new features ● Optimized performance ● Easier migrations or upgrades ● Less time for developer on- boarding ● Highly motivated development team
  • 26. #CD22 What is business value? ● Stable and secured code base ● Less maintenance efforts ● Faster delivery of new features ● Optimized performance ● Easier migrations or upgrades ● Less time for developer on- boarding ● Highly motivated development team Does it still bring no business value?
  • 28. #CD22 ● How many Salesforce developers does it take to change a light bulb? Bonus
  • 29. #CD22 ● How many Salesforce developers does it take to change a light bulb? ● As many as you want! It doesn’t count against Salesforce governor limits. Bonus
  • 31. #CD22 ● https://www.codescan.io/ ● https://www.sonarqube.org/ ● https://forcedotcom.github.io/sfdx-scanner/ ● https://pmd.github.io/ ● https://lvivity.com/how-to-write-good-code ● https://www.browserstack.com/guide/coding-standards-best-practices ● https://en.wikipedia.org/wiki/Coding_conventions ● https://www.codegrip.tech/productivity/why-is-code-quality-important/ ● https://www.perforce.com/blog/sca/what-code-quality-overview-how-improve-code-quality ● https://www.atlassian.com/blog/add-ons/4-tips-to-improve-code-quality ● https://smartbear.com/learn/code-review/what-is-code-review/ ● https://about.gitlab.com/topics/version-control/what-is-code-review/ ● https://www.atlassian.com/agile/software-development/code-reviews ● https://en.wikipedia.org/wiki/Code_review References
  • 32. #CD22 ● Very often the importance of the code quality is underestimated especially by business people who usually don’t see the business value of it. In this session we will try to discover all the advantages of well written code and discuss how coding standards, code reviews and static code analyzer can help to maintain the level of quality and bring the business value. Abstract