SlideShare a Scribd company logo
Avoid the Zone of Chaos:
  Economics of Quality and
Productivity via Code Review
Reducing software development risk and cost
while improving speed, quality and
maintainability by applying review at all levels

Presented by: Joshua Gough
Atlanta ALT.NET Meetup
http://www.meetup/com/AtlAltDotNet
6/19/2012
Topic Outline
● Avoiding the Ultimate Risk
● Software Development Processes
● Risks associated with poor code-review
  and lack of defect prevention
● Automated .NET tools to support
  "continuous inspection", code-review,
  and defect prevention
● Demo of static source-code analysis with
  Visual Studio and NDepend
Avoiding The Ultimate Risk
● How to validate that you're building the
  product your customers or users want
  and need?
● What untested assumptions and risks can
  lurk in requirements and design docs?
● What kinds of reviews can happen
  before or in parallel with coding to test
  assumptions and mitigate risks?
Danger! Don't Go There!




Say
      Wha
         t?
Royce Strawman Waterfall Model
Royce's Observations
Final Royce Model
(Shame on our industry for not reading his whole paper)
Generic Iterative and Incremental Model
Boehm Spiral Model
Generic Agile
Extreme Programming (XP) Feedback Loops
Scrum Agile Process Framework
Whirlpool Model
(A "violent water metaphor" we can live with and enjoy)
Scrum Agile Process Framework
Software Defect Prevention via Continuous Inspection
Let's Review...
Traditional: Known | Known
Agile: Known | Unknown
Lean Startup: Unknown| Unknown
And Now: Code Review...
Types of Code Review
● Formal code review: involves a careful and detailed
  process with multiple participants and multiple phases:
  Example: Fagan Inspection
● Over-the-shoulder : One developer looks over the
  author's shoulder as the latter walks through the code.
● Email pass-around – Source code management
  system emails code to reviewers automatically after
  checkin is made.
● Pair Programming – Two authors develop code
  together at the same workstation, such is common in
  Extreme Programming.
● Tool-assisted code review – Authors and reviewers
  use specialized tools designed for peer code review.
Economic Reasons : Defect Cost Increase
Productivity Reasons: Faster Schedule




                                                         t!
                                                      Spo
                                                  eet
                                                Sw




Relationship between defect rate and development time. As a rule,
the projects that achieve the lowest defect rates also achieve the
shortest schedules. -- Capers Jones
Cisco Case Study Data : Defect Counts
Formal Code Review
Hope This Guy Gets Lost in Elevator
Email Pass-Around Pre Check-In
Email Pass-Around Post Check-In
Email Pass-Around Code Review
(Pray Uncle Bob Doesn't Get The Email, Unless You Crave Discipline! )
Over-The-Shoulder Walkthrough
Don't Be This Guy (Either of Them!)
Pair Programming
●   Agile software development technique wherein two
    programmers work together at one workstation
●   One drives and writes codes while the other observes
    (or navigates) and reviews each line of code
●   The two programmers switch roles frequently
●   While reviewing, the observer also considers the
    strategic direction of the work in order to:
     ○ Devise ideas for improvements and likely future

        problems to address
     ○ Free the driver to focus all of his or her attention on

        the "tactical" aspects of completing the current task,
        using the observer as a safety net and guide
In Other Words...
But, What Does the Science Say?
● Isolated studies of pair-programming reveal
  results ranging all across the map

● Some meta-analyses also reveal wide-
  ranging results

● I suspect the answer to be "It depends",
  therefore proceed without dogma and use
  pragmatism
Example Study
Study Summary
● 48% increase in correctness for complex systems
  ○ No significant time difference

● Simple systems had 20% time decrease
  ○ No significant correctness difference

● Overall no general time reduction or correctness
  increase
   ○ But an overall 84% effort increase

● Limitations: this was a one day experiment with 99
  individuals and 98 pairs
    How would working together longer affect results?
Tool-Assisted Code Review!
Demo: Visual Studio Code Analysis
Demo: NDepend Critical Warnings
11 Lessons from SmartBear Cisco Case Study
1. Review fewer than 200-400 lines of code at a time.
2. Aim for an inspection rate of less than 300-500 LOC/hour
3. Take enough time for a proper, slow review, but not
              more than 60-90 minutes




                           K
                           e
                           y
4. Authors should annotate source code before the review
Additional Tactical Tips...
● 5. Establish quantifiable goals for code
  review and capture metrics so you can
  improve your processes

● 6. Checklists substantially improve results for
  both authors and reviewers

● 7. Verify that defects are actually fixed!
And Managerial Tips...
● 8. Managers must foster a good code review
  culture in which finding defects is viewed
  positively

● 9. Beware the “Big Brother” effect

● 10. The Ego Effect: Do at least some code
  review, even if you don't have time to review
  it all
11.Lightweight-style code reviews are efficient,
    practical, and effective at finding bugs
Many Thanks to SmartBear Software!
(See CodeCollaborator Free Trial and Jason Cohen's Free Book)




                  Free!
Contact
● Meetup: http://www.meetup.com/AtlAltDotNet
● Email: jsgough@gmail.com
● Web: http://agilefromthegroundup.blogspot.com

More Related Content

What's hot (20)

PDF
Serena Business Manager Visualizing 2016
Serena Software
 
PPTX
Building Quality into Your DevSecOps Pipelines
Inflectra
 
PDF
Definition Driven API Development: How OAS & Swagger Help Teams Streamline Th...
SmartBear
 
PPTX
Continuous Integration Testing for SAP
Worksoft
 
PPTX
Agile-plus-DevOps Testing for Packaged Applications
Worksoft
 
PDF
Creating High Performance teams by using a DevOps culture (FUG presentation)
Serena Software
 
PDF
FUG Agile software engineering practices
Serena Software
 
PDF
Dimensions CM 14.3 launch webcast (slides)
Serena Software
 
PPTX
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Susmitha Vakkalanka
 
PPTX
Insurance for your Assurance Team
Worksoft
 
PDF
Continuous Testing- A Key Ingredient for Success in Agile & DevOps
SmartBear
 
PPTX
Salesforce – Proven Platform Development with DevOps & Agile
Sai Jithesh ☁️
 
PPTX
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
XebiaLabs
 
PPTX
DOES15 - Rosalind Radcliffe - Test Automation For Mainframe Applications
Gene Kim
 
PDF
Infrastructure as Code in Large Scale Organizations
XebiaLabs
 
PDF
5 Principles to Managing Your Application Lifecycle with SpiraTeam
Adam Sandman
 
PPTX
Packaged vs. Custom Application Testing
Worksoft
 
PDF
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
Edureka!
 
PPTX
Webinar: DevOps challenges facing QA
Qualitest
 
PPTX
ATAGTR2017 Testing in DevOps Culture
Agile Testing Alliance
 
Serena Business Manager Visualizing 2016
Serena Software
 
Building Quality into Your DevSecOps Pipelines
Inflectra
 
Definition Driven API Development: How OAS & Swagger Help Teams Streamline Th...
SmartBear
 
Continuous Integration Testing for SAP
Worksoft
 
Agile-plus-DevOps Testing for Packaged Applications
Worksoft
 
Creating High Performance teams by using a DevOps culture (FUG presentation)
Serena Software
 
FUG Agile software engineering practices
Serena Software
 
Dimensions CM 14.3 launch webcast (slides)
Serena Software
 
Automate Salesforce Releases with DevOps: Crawl, Walk, Run!
Susmitha Vakkalanka
 
Insurance for your Assurance Team
Worksoft
 
Continuous Testing- A Key Ingredient for Success in Agile & DevOps
SmartBear
 
Salesforce – Proven Platform Development with DevOps & Agile
Sai Jithesh ☁️
 
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
XebiaLabs
 
DOES15 - Rosalind Radcliffe - Test Automation For Mainframe Applications
Gene Kim
 
Infrastructure as Code in Large Scale Organizations
XebiaLabs
 
5 Principles to Managing Your Application Lifecycle with SpiraTeam
Adam Sandman
 
Packaged vs. Custom Application Testing
Worksoft
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
Edureka!
 
Webinar: DevOps challenges facing QA
Qualitest
 
ATAGTR2017 Testing in DevOps Culture
Agile Testing Alliance
 

Similar to Software Defect Prevention via Continuous Inspection (20)

PPTX
Code Reviews
phildenoncourt
 
PPT
Peer Code Review An Agile Process
gsporar
 
PDF
Agile Code Reviews for Better Software—Sooner
TechWell
 
PPT
Lecture 10 Static Testing.ppt
ssuser9a23691
 
PDF
How To Handle Your Tech Debt Better - Sean Moir
Mike Harris
 
PDF
Code Review Tool Evaluation
Kate Semizhon
 
PPT
Agile Austin - Peer Code Review An Agile Process
gsporar
 
PPTX
Code reviews
Robert Lee
 
PPTX
Code quality
Sunil Prasad
 
PPS
ISTQB Foundation - Chapter 3
Chandukar
 
PPTX
Agile Programming Live - AgilePrague2012
Johannes Brodwall
 
PDF
Code Review: How And When
Paul Gower
 
PPTX
The Best Kept Secrets of Code Review | SmartBear Webinar
SmartBear
 
PDF
Debugging 2013- Lars pedersen
Mediehuset Ingeniøren Live
 
PPT
Software Inspection And Defect Management
Ajay K
 
PPT
Introduction to Software Review
Philip Johnson
 
PDF
11 best practices_for_peer_code_review
SmartBear Software
 
PPT
Code Review
Ravi Raj
 
PDF
Code Review
Lukas Rypl
 
PPTX
Code Review
R M Shahidul Islam Shahed
 
Code Reviews
phildenoncourt
 
Peer Code Review An Agile Process
gsporar
 
Agile Code Reviews for Better Software—Sooner
TechWell
 
Lecture 10 Static Testing.ppt
ssuser9a23691
 
How To Handle Your Tech Debt Better - Sean Moir
Mike Harris
 
Code Review Tool Evaluation
Kate Semizhon
 
Agile Austin - Peer Code Review An Agile Process
gsporar
 
Code reviews
Robert Lee
 
Code quality
Sunil Prasad
 
ISTQB Foundation - Chapter 3
Chandukar
 
Agile Programming Live - AgilePrague2012
Johannes Brodwall
 
Code Review: How And When
Paul Gower
 
The Best Kept Secrets of Code Review | SmartBear Webinar
SmartBear
 
Debugging 2013- Lars pedersen
Mediehuset Ingeniøren Live
 
Software Inspection And Defect Management
Ajay K
 
Introduction to Software Review
Philip Johnson
 
11 best practices_for_peer_code_review
SmartBear Software
 
Code Review
Ravi Raj
 
Code Review
Lukas Rypl
 
Ad

Recently uploaded (20)

PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Ad

Software Defect Prevention via Continuous Inspection

  • 1. Avoid the Zone of Chaos: Economics of Quality and Productivity via Code Review Reducing software development risk and cost while improving speed, quality and maintainability by applying review at all levels Presented by: Joshua Gough Atlanta ALT.NET Meetup http://www.meetup/com/AtlAltDotNet 6/19/2012
  • 2. Topic Outline ● Avoiding the Ultimate Risk ● Software Development Processes ● Risks associated with poor code-review and lack of defect prevention ● Automated .NET tools to support "continuous inspection", code-review, and defect prevention ● Demo of static source-code analysis with Visual Studio and NDepend
  • 3. Avoiding The Ultimate Risk ● How to validate that you're building the product your customers or users want and need? ● What untested assumptions and risks can lurk in requirements and design docs? ● What kinds of reviews can happen before or in parallel with coding to test assumptions and mitigate risks?
  • 4. Danger! Don't Go There! Say Wha t?
  • 7. Final Royce Model (Shame on our industry for not reading his whole paper)
  • 8. Generic Iterative and Incremental Model
  • 11. Extreme Programming (XP) Feedback Loops
  • 12. Scrum Agile Process Framework
  • 13. Whirlpool Model (A "violent water metaphor" we can live with and enjoy)
  • 14. Scrum Agile Process Framework
  • 18. Agile: Known | Unknown
  • 20. And Now: Code Review...
  • 21. Types of Code Review ● Formal code review: involves a careful and detailed process with multiple participants and multiple phases: Example: Fagan Inspection ● Over-the-shoulder : One developer looks over the author's shoulder as the latter walks through the code. ● Email pass-around – Source code management system emails code to reviewers automatically after checkin is made. ● Pair Programming – Two authors develop code together at the same workstation, such is common in Extreme Programming. ● Tool-assisted code review – Authors and reviewers use specialized tools designed for peer code review.
  • 22. Economic Reasons : Defect Cost Increase
  • 23. Productivity Reasons: Faster Schedule t! Spo eet Sw Relationship between defect rate and development time. As a rule, the projects that achieve the lowest defect rates also achieve the shortest schedules. -- Capers Jones
  • 24. Cisco Case Study Data : Defect Counts
  • 26. Hope This Guy Gets Lost in Elevator
  • 29. Email Pass-Around Code Review (Pray Uncle Bob Doesn't Get The Email, Unless You Crave Discipline! )
  • 31. Don't Be This Guy (Either of Them!)
  • 32. Pair Programming ● Agile software development technique wherein two programmers work together at one workstation ● One drives and writes codes while the other observes (or navigates) and reviews each line of code ● The two programmers switch roles frequently ● While reviewing, the observer also considers the strategic direction of the work in order to: ○ Devise ideas for improvements and likely future problems to address ○ Free the driver to focus all of his or her attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide
  • 34. But, What Does the Science Say? ● Isolated studies of pair-programming reveal results ranging all across the map ● Some meta-analyses also reveal wide- ranging results ● I suspect the answer to be "It depends", therefore proceed without dogma and use pragmatism
  • 36. Study Summary ● 48% increase in correctness for complex systems ○ No significant time difference ● Simple systems had 20% time decrease ○ No significant correctness difference ● Overall no general time reduction or correctness increase ○ But an overall 84% effort increase ● Limitations: this was a one day experiment with 99 individuals and 98 pairs How would working together longer affect results?
  • 38. Demo: Visual Studio Code Analysis
  • 40. 11 Lessons from SmartBear Cisco Case Study
  • 41. 1. Review fewer than 200-400 lines of code at a time.
  • 42. 2. Aim for an inspection rate of less than 300-500 LOC/hour
  • 43. 3. Take enough time for a proper, slow review, but not more than 60-90 minutes K e y
  • 44. 4. Authors should annotate source code before the review
  • 45. Additional Tactical Tips... ● 5. Establish quantifiable goals for code review and capture metrics so you can improve your processes ● 6. Checklists substantially improve results for both authors and reviewers ● 7. Verify that defects are actually fixed!
  • 46. And Managerial Tips... ● 8. Managers must foster a good code review culture in which finding defects is viewed positively ● 9. Beware the “Big Brother” effect ● 10. The Ego Effect: Do at least some code review, even if you don't have time to review it all
  • 47. 11.Lightweight-style code reviews are efficient, practical, and effective at finding bugs
  • 48. Many Thanks to SmartBear Software! (See CodeCollaborator Free Trial and Jason Cohen's Free Book) Free!
  • 49. Contact ● Meetup: http://www.meetup.com/AtlAltDotNet ● Email: [email protected] ● Web: http://agilefromthegroundup.blogspot.com