SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Software
Quality
You start with good intentions on a
green field project.
It never turns out the way you
envisioned it.
External factors, internal factors.
talk more about risks of bad software
Every application is a
future legacy application.
Writing good code
is hard
‣ It takes time
‣ It takes experience
‣ It requires domain knowledge
‣ The better your communication
the better your team’s result!
You are not your code!
The value of a developer shouldn’t be tied
to the amount or the quality of code.
Many different ideas
Sometimes you
only notice it some
years later
If I look back at old code, I usually
learn a lot about myself.
Ward Cunningham’s original
definition of Technical debt:
[...] a cycle where our
understanding grows so that one
day in the future we see a better
way and put it in.
I am by far not the first to speak on this subject.
There are many books written and talks given. There
is the "Clean Code" and "Code Craftsmanship"
idea. A big proponent of this is
Single Responsibility
Open-Closed (extension, modification)
Liskov substitution (objects replaced by subtypes,
still correct)
Interface segregation (small, focused interfaces)
dependency inversion (depend on abstractions)
Many different ideas try to help and make it easier
‣Sandi Metz
‣Uncle Bob author of the book
“Clean Code” & SOLID rules
‣Kent Beck
‣Ron Jeffries
‣Ward Cunningham
…and many, many more
Duplication of knowledge, not
code!
Other rules perhaps even
more known to Ruby
programmers are the Rules by
Sandi Metz
Simple Code — The
4 rules by Kent
Beck
‣ Pass all tests
‣ Clear, expressive, & consistent
‣ Duplicates no behavior or
configuration
‣ Minimal methods, classes, &
modules
Why rules?
The rules by Sandi Metz
You could run with either of
these lists of rules, or you
Simple code makes
software:
‣ easier to understand
‣ simpler to change
‣ more fun to work with
‣ saves money and time in the
long run
‣ reduces risk of software projects
You adapt existing rules and see what
works best for you and your team.
This will be heavily influenced by
whoever you happen to work with
If you have your own rules, you could
use tools to help you achieve your
goals and stick to the rules.
Create your own rules
Bound to happen with time.
Use tools to help you measure
‣Linters
‣Static Analysis
‣Behavioral Analysis
Linters
‣Editor/IDE or CLI
Static Analysis
‣CLI or CI
Behavioral Analysis
‣Externally with reports
Every application is a future legacy application.
Stick to the rules, evolve, YAGNI your way to a better
future.

Contenu connexe

Similaire à Software quality

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application grows
Carolina Karklis
 

Similaire à Software quality (20)

Are You a SOLID Coder?
Are You a SOLID Coder?Are You a SOLID Coder?
Are You a SOLID Coder?
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPress
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Clean Code Software Engineering
Clean Code Software Engineering Clean Code Software Engineering
Clean Code Software Engineering
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Friday final test
Friday final testFriday final test
Friday final test
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Clean code chpt_1
Clean code chpt_1Clean code chpt_1
Clean code chpt_1
 
Code quality
Code quality Code quality
Code quality
 
2011_esc.pdf
2011_esc.pdf2011_esc.pdf
2011_esc.pdf
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
 
Best pratice
Best praticeBest pratice
Best pratice
 
Put to the Test
Put to the TestPut to the Test
Put to the Test
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
 
Caring about Code Quality
Caring about Code QualityCaring about Code Quality
Caring about Code Quality
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application grows
 
Writing Clean Code
Writing Clean CodeWriting Clean Code
Writing Clean Code
 
From Technical Debt to Technical Health
From Technical Debt to Technical HealthFrom Technical Debt to Technical Health
From Technical Debt to Technical Health
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Software quality

  • 2. You start with good intentions on a green field project. It never turns out the way you envisioned it. External factors, internal factors. talk more about risks of bad software Every application is a future legacy application.
  • 3. Writing good code is hard ‣ It takes time ‣ It takes experience ‣ It requires domain knowledge ‣ The better your communication the better your team’s result!
  • 4. You are not your code! The value of a developer shouldn’t be tied to the amount or the quality of code.
  • 5. Many different ideas Sometimes you only notice it some years later If I look back at old code, I usually learn a lot about myself. Ward Cunningham’s original definition of Technical debt: [...] a cycle where our understanding grows so that one day in the future we see a better way and put it in.
  • 6. I am by far not the first to speak on this subject. There are many books written and talks given. There is the "Clean Code" and "Code Craftsmanship" idea. A big proponent of this is Single Responsibility Open-Closed (extension, modification) Liskov substitution (objects replaced by subtypes, still correct) Interface segregation (small, focused interfaces) dependency inversion (depend on abstractions) Many different ideas try to help and make it easier ‣Sandi Metz ‣Uncle Bob author of the book “Clean Code” & SOLID rules ‣Kent Beck ‣Ron Jeffries ‣Ward Cunningham …and many, many more
  • 7. Duplication of knowledge, not code! Other rules perhaps even more known to Ruby programmers are the Rules by Sandi Metz Simple Code — The 4 rules by Kent Beck ‣ Pass all tests ‣ Clear, expressive, & consistent ‣ Duplicates no behavior or configuration ‣ Minimal methods, classes, & modules
  • 8. Why rules? The rules by Sandi Metz
  • 9. You could run with either of these lists of rules, or you Simple code makes software: ‣ easier to understand ‣ simpler to change ‣ more fun to work with ‣ saves money and time in the long run ‣ reduces risk of software projects
  • 10. You adapt existing rules and see what works best for you and your team. This will be heavily influenced by whoever you happen to work with If you have your own rules, you could use tools to help you achieve your goals and stick to the rules. Create your own rules Bound to happen with time.
  • 11. Use tools to help you measure ‣Linters ‣Static Analysis ‣Behavioral Analysis
  • 15. Every application is a future legacy application. Stick to the rules, evolve, YAGNI your way to a better future.