SlideShare a Scribd company logo
1 of 30
Software Quality for
Programmersversion 1.0
Paweł Klimczyk
Gemotial 2016
About me
• Software engineer
• Running Gemotial Software Studio
• Co-organizer ofWrocNET
• Blog: http://blog.klimczyk.pl
• Contact:
• Twitter @pwlklm
• Mail: pawel@klimczyk.pl
Software quality definition
"capability of a software product to conform to
requirements." (ISO/IEC 9001)
Deming:”The problem inherent in attempts to define the quality of a product, almost
any product……….”
Feigenbaum:”Quality is a customer determination, not an engineer's determination,
not a marketing determination, nor a general management determination”
Juran:”Two of these meanings dominate the use of the word: 1. Quality consists of
those product features which meet the need of customers and thereby provide product
satisfaction. 2. Quality consists of freedom from deficiencies. ”
@pwlklm blog.klimczyk.pl
Wikipedia
Quality in construction
@pwlklm blog.klimczyk.pl
http://www.leica-geosystems.es/images/new/product_solution/app_eng_siterunner.jpg
https://s-media-cache-
ak0.pinimg.com/originals/97/ea/a4/97eaa4fb3555decb132dc12064072e8c.jpg
„Quality” in code
@pwlklm blog.klimczyk.pl
Quality check
@pwlklm blog.klimczyk.pl
http://www.e-architect.co.uk/images/jpgs/singapore/uob_plaza_one_two_tr010709_1.jpg
https://i.kinja-img.com/gawker-media/image/upload/18mllspae8l8tjpg.jpg
„Great refactor”
@pwlklm blog.klimczyk.pl
https://assets.bwbx.io/images/users/iqjWHBFdfxIU/i0dwq8cFhDmE/v1/-1x-1.jpg
How do it in IT ?
@pwlklm blog.klimczyk.pl
How check quality in software ?
Measurement - WTF per minute measurement
aka Code Review
@pwlklm blog.klimczyk.pl
Measurement – Code Review
@pwlklm blog.klimczyk.pl
https://www.jetbrains.com/upsource/features/screenshots/Features-team-collaboration.png
Measurement - It’s not a bug, it’s a feature
@pwlklm blog.klimczyk.pl
Measurement - ROI
@pwlklm blog.klimczyk.pl
Quality and Quantity- what do you choose?
@pwlklm blog.klimczyk.pl
Technical debt and maintenace
@pwlklm blog.klimczyk.pl
Producing more
code leads to
technical debt
Effective QualityTriangle
@pwlklm blog.klimczyk.pl
Bad Quality Examples
https://pl.wikipedia.org/wiki/ExoMars
@pwlklm blog.klimczyk.pl
Code Quality Core
@pwlklm blog.klimczyk.pl
Correctness
Readability
Performance
Formal Software Quality Measurement Models
@pwlklm blog.klimczyk.pl
Dromey (1992)
McCall (1977)
Ghezzi (1991)
FURPS+ (1992) IEEE 1061 (1993)
ISO/IEC 9126-1 (1991)
Boehm (1978)
ISO/IEC 25010:2011 (2011)
ISO/IEC 9126:2001 (2001)
SATC (1995)
Kazman (2003)
CMM (1991)
Formal Software Quality Measurement Metrics
@pwlklm blog.klimczyk.pl
Integrity Usability
Reliability
Correctness
Efficiency
Testability
Maintanability
Flexibility
Portability
Reusability
Interoperability
Performance
Supportability
Compability
Configurability
Security
Operability
Stability
Safety
Analizability
Changeability
Maturity
Accuracy
Formal Code Quality Measurement Methods
@pwlklm blog.klimczyk.pl
Cyclomatic Complexity
Lines of code
Cohesion
Code Coupling Circular Dependency
Temporal Coupling
SOLID, Design Patterns,TDD, XP.
@pwlklm blog.klimczyk.pl
SOLID
Design Patterns
Extreme programming
Test driver development
Domain driven development
Best practicesContinuous Integration
Continuous deployment
Tooling
@pwlklm blog.klimczyk.pl
Jira
TeamCity
Jenkins
SonarQube
UpSource
NDepend/JDepend
JUnit/NUnit
FindBugs
JarAnalyzer
UCDetector
Cobertura
Checkstyle
FxCop
StyleCop Bamboo
Developer skills
@pwlklm blog.klimczyk.pl
http://manifesto.softwarecraftsmanship.org/
Not only working software,
but also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships
The Software Craftsman
@pwlklm blog.klimczyk.pl
Sandro Mancuso
Specifications
@pwlklm blog.klimczyk.pl
Organization quality triangle
@pwlklm blog.klimczyk.pl
Conclusions (I)
Whole organization contributes in
delivering quality
What quality do we deliver?
@pwlklm blog.klimczyk.pl
Conclusions (II)
What developers can do to improve quality?
@pwlklm blog.klimczyk.pl
•Craftmanship
•SOLID + Design Patterns + tooling
•XP,TDD, BDD, DDD
•Change organization or change
organization
Conclusions (III)
Maintenance costs is ~75% of total
costs in application life-cycle
@pwlklm blog.klimczyk.pl
Thank you!
Contact
• Blog: http://blog.klimczyk.pl
• Twitter: @pwlklm
• E-mail: pawel@klimczyk.pl
Q&A

More Related Content

What's hot

Clean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipClean Code III - Software Craftsmanship
Clean Code III - Software Craftsmanship
Theo Jungeblut
 
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Theo Jungeblut
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best Practices
Theo Jungeblut
 

What's hot (15)

Clean Code I - Design Patterns and Best Practices at SoCal Code Camp San Dieg...
Clean Code I - Design Patterns and Best Practices at SoCal Code Camp San Dieg...Clean Code I - Design Patterns and Best Practices at SoCal Code Camp San Dieg...
Clean Code I - Design Patterns and Best Practices at SoCal Code Camp San Dieg...
 
Designing with tests
Designing with testsDesigning with tests
Designing with tests
 
Polyglot
PolyglotPolyglot
Polyglot
 
Refactoring for Software Design Smells
Refactoring for Software Design SmellsRefactoring for Software Design Smells
Refactoring for Software Design Smells
 
Refactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech TalkRefactoring for Software Design Smells - Tech Talk
Refactoring for Software Design Smells - Tech Talk
 
Clean Code III - Software Craftsmanship
Clean Code III - Software CraftsmanshipClean Code III - Software Craftsmanship
Clean Code III - Software Craftsmanship
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
Computer software specialists wikki verma
Computer software specialists   wikki vermaComputer software specialists   wikki verma
Computer software specialists wikki verma
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresBig Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
 
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
Clean Code III - Software Craftsmanship at SoCal Code Camp San Diego (07/27/2...
 
Illustrated Code (ASE 2021)
Illustrated Code (ASE 2021)Illustrated Code (ASE 2021)
Illustrated Code (ASE 2021)
 
About Dewey Hong
About Dewey HongAbout Dewey Hong
About Dewey Hong
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
Refactoring Applications using SOLID Principles
Refactoring Applications using SOLID PrinciplesRefactoring Applications using SOLID Principles
Refactoring Applications using SOLID Principles
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best Practices
 

Viewers also liked

Google maps street view power point presentation
Google maps street view power point presentationGoogle maps street view power point presentation
Google maps street view power point presentation
mireya921
 

Viewers also liked (20)

Google Maps Guiding Your Classroom
Google Maps  Guiding Your ClassroomGoogle Maps  Guiding Your Classroom
Google Maps Guiding Your Classroom
 
12 Cool Google Maps Mashups
12 Cool Google Maps Mashups12 Cool Google Maps Mashups
12 Cool Google Maps Mashups
 
No pain, no gain. CSS Code Reviews FTW.
No pain, no gain. CSS Code Reviews FTW.No pain, no gain. CSS Code Reviews FTW.
No pain, no gain. CSS Code Reviews FTW.
 
Google Products & Google Maps
Google Products & Google MapsGoogle Products & Google Maps
Google Products & Google Maps
 
12 Values and Skills Gained Through Contemplative Practices in Higher Education
12 Values and Skills Gained Through Contemplative Practices in Higher Education12 Values and Skills Gained Through Contemplative Practices in Higher Education
12 Values and Skills Gained Through Contemplative Practices in Higher Education
 
Let's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming LanguageLet's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming Language
 
Challenge Your Students, Don't Trick Them
Challenge Your Students, Don't Trick ThemChallenge Your Students, Don't Trick Them
Challenge Your Students, Don't Trick Them
 
Google maps street view power point presentation
Google maps street view power point presentationGoogle maps street view power point presentation
Google maps street view power point presentation
 
Google Maps Presentation
Google Maps PresentationGoogle Maps Presentation
Google Maps Presentation
 
How to Implement Hybrid Cloud Solutions Successfully
How to Implement Hybrid Cloud Solutions SuccessfullyHow to Implement Hybrid Cloud Solutions Successfully
How to Implement Hybrid Cloud Solutions Successfully
 
Bangalore Container Conference 2017 - Poster
Bangalore Container Conference 2017 - PosterBangalore Container Conference 2017 - Poster
Bangalore Container Conference 2017 - Poster
 
1099 Problems: Self-Employment and the Future of Financial Services
1099 Problems: Self-Employment and the Future of Financial Services1099 Problems: Self-Employment and the Future of Financial Services
1099 Problems: Self-Employment and the Future of Financial Services
 
Startup Technology: Cheatsheet for Non-Techies
Startup Technology: Cheatsheet for Non-TechiesStartup Technology: Cheatsheet for Non-Techies
Startup Technology: Cheatsheet for Non-Techies
 
Five Tips To Help You Tackle Programming
Five Tips To Help You Tackle ProgrammingFive Tips To Help You Tackle Programming
Five Tips To Help You Tackle Programming
 
10 books that every developer must read
10 books that every developer must read10 books that every developer must read
10 books that every developer must read
 
How to Make Great Software Estimates
How to Make Great Software EstimatesHow to Make Great Software Estimates
How to Make Great Software Estimates
 
10 key marketing_trends_for_2016
10 key marketing_trends_for_201610 key marketing_trends_for_2016
10 key marketing_trends_for_2016
 
10 Tips to Improve your Daily Stand up
10 Tips to Improve your Daily Stand up10 Tips to Improve your Daily Stand up
10 Tips to Improve your Daily Stand up
 
Prepare for Speech Success - Tips, Tricks and Hacks
Prepare for Speech Success - Tips, Tricks and HacksPrepare for Speech Success - Tips, Tricks and Hacks
Prepare for Speech Success - Tips, Tricks and Hacks
 
[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?
 

Similar to Software Quality for Programmers

Software quality
Software qualitySoftware quality
Software quality
jagadeesan
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
SmartBear
 
Code Review | 2010
Code Review | 2010Code Review | 2010
Code Review | 2010
Klocwork
 

Similar to Software Quality for Programmers (20)

Software quality
Software qualitySoftware quality
Software quality
 
Introducing: Klocwork Insight Pro | November 2009
Introducing: Klocwork Insight Pro | November 2009Introducing: Klocwork Insight Pro | November 2009
Introducing: Klocwork Insight Pro | November 2009
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
 
Dream QA: Designing the QA team where we'd love to work
Dream QA: Designing the QA team where we'd love to workDream QA: Designing the QA team where we'd love to work
Dream QA: Designing the QA team where we'd love to work
 
Software quality management lecture notes
Software quality management lecture notesSoftware quality management lecture notes
Software quality management lecture notes
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Code Review | 2010
Code Review | 2010Code Review | 2010
Code Review | 2010
 
How To Ensure Quality With Automation
How To Ensure Quality With AutomationHow To Ensure Quality With Automation
How To Ensure Quality With Automation
 
Rhonda Software Quality Assurance Services
Rhonda Software Quality Assurance ServicesRhonda Software Quality Assurance Services
Rhonda Software Quality Assurance Services
 
The computer says no v2
The computer says no v2The computer says no v2
The computer says no v2
 
Intro
IntroIntro
Intro
 
Module1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdfModule1 - Introduction to Software Engineering.pdf
Module1 - Introduction to Software Engineering.pdf
 
02
0202
02
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
Analisis iso 25010
Analisis iso 25010Analisis iso 25010
Analisis iso 25010
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Software testing
Software testingSoftware testing
Software testing
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 

More from Pawel Klimczyk (12)

Wrocnet.meeting.info.20180515.109
Wrocnet.meeting.info.20180515.109Wrocnet.meeting.info.20180515.109
Wrocnet.meeting.info.20180515.109
 
Wrocnet.meeting.info.20180320.107
Wrocnet.meeting.info.20180320.107Wrocnet.meeting.info.20180320.107
Wrocnet.meeting.info.20180320.107
 
Code Crime Scene
Code Crime SceneCode Crime Scene
Code Crime Scene
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Product Roadmap vs Development
Product Roadmap vs DevelopmentProduct Roadmap vs Development
Product Roadmap vs Development
 
Code Crime Scene pawel klimczyk
Code Crime Scene   pawel klimczykCode Crime Scene   pawel klimczyk
Code Crime Scene pawel klimczyk
 
Wrocnet #88
Wrocnet #88Wrocnet #88
Wrocnet #88
 
GeekWeekWro TechSaturdays
GeekWeekWro TechSaturdaysGeekWeekWro TechSaturdays
GeekWeekWro TechSaturdays
 
GeekWeekWro hack4culture
GeekWeekWro hack4cultureGeekWeekWro hack4culture
GeekWeekWro hack4culture
 
Wrocnet #87
Wrocnet #87Wrocnet #87
Wrocnet #87
 
Wrocnet 86
Wrocnet 86Wrocnet 86
Wrocnet 86
 
Wrocnet spotkanie 85
Wrocnet spotkanie 85Wrocnet spotkanie 85
Wrocnet spotkanie 85
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Software Quality for Programmers