SlideShare a Scribd company logo
Code Club
An internal presentation from 2002
Dr Simon Price
Academic Research IT Manager
1
Developers, welcome to Code Club.
• First rule of Code Club is you do
not talk about Code Club.
• Second rule of Code Club is YOU DO
NOT TALK ABOUT CODE CLUB!
"Doh!"
Initial idea: a "coding clinic " for our techies
• Objectives:
• meet regularly to review code
• produce some ID coding standards
• share experiences and expertise
Getting Started
Kick-off meeting (15 Oct 2002)
• "Real" rather than "virtual" meeting.
• The name Code Clinic - suggestive of some embarrassing
compliant that you don't want to mention in public.
• We have a Kieren Pitts in the team and edit distance
distedit (“K. Pitts”, “B. Pitt”) is small, so...
• …Code Club was born.
Kick-off Decisions
• Start fairly informally and build up structures/documents as
required.
• Meet every 2 weeks. (Decide if this is the right frequency once
we've run for a few meetings).
• Each meeting, someone will present code for review (emailing
out beforehand with an explanation if needed).
• Review from various perspectives – eg. efficiency, standards,
readability, design, reuse, documentation.
Rule #3
Third rule of Code Club, someone yells stop,
goes limp, taps out, the review is over.
• It's not managerial
• It's not personal*
• It's about code
* unless you forget the donuts!!!
Kick-off Ideas
• Standards for coding
• where possible across languages
• sometimes language-specific (eg. perl conventions for capitals
being reserved for specific purpose)
• will emerge from review meetings and grow over time
• defining standards will have an impact on the amount of code
we can review in a given time (ie. reducing it);
• written standards will make it easier for new dev. staff to get
up to speed and learn how we work
More Ideas
• Code Repository
• We all keep snippets of code for reuse (or know where to find
them in our old projects).
• One of the useful things the code club could do is identify
potential reuse...
• building up a shared repository. (A simple version would just
be a searchable list of what to find where!)
Ahead of First Meeting
• Reviewee emailed CC members
• code for review
• explanation
• reminder of meeting details
First CC Meeting (29 Oct 2002)
Present: IMS, ETC, SNP, KP, PS
Summary: Reviewed the main path VTS3/Calnet the code looking
for ways of improving the efficiency (particularly - reducing
execution time). Also looked at style, design, readability, mistakes,
areas for re-use etc.
Files reviewed: gen.pl, constants.pl, util.pl, ...
Rule #4
Forth rule only two guys to a review.
Well, about 5-6 is a manageable number.
More Decisions
• This was a worthwhile exercise!
• Use Bugzilla as way of recording/tracking issues raised in reviews.
• Person whose code will be reviewed responsible for:
• booking room
• taking notes at the meeting
• entering issues into Bugzilla
• circulating brief note of meeting by email
• and...
Rule #5
Fifth rule: one review at a time, fellas.
Yes, but we do start with a report back on the previous
review from the reviewee.
Rule #6
Sixth rule: no shirts no shoes.
Worrying, huh?
Rule #7
Seventh rule: Reviews will go on as long as
they have to.
Well, we book the room for 2 hours.
Rule #8
And the eighth and final rule: If this is your
first day at Code Club, you have to review.
• Actually, we each take a turn to provide the code for review.
• Reviewee books room, circulates code (& notes) and
provides donuts.
• Reviewee leads through the code and takes notes of issues
raised.
Where Next?
• Walk before running, but...
• ... CC is producing standards and guidelines documents
• initially, internal facing
• but eventually, external facing
• ... CC might also experiment with a formalised process
called Software Inspections
Software Inspections
Design and code inspections to reduce errors in program development,
Michael E. Fagan, IBM Systems Journal, Vol. 15(3), pp 182-211, 1976.
• Substantial net improvements in programming quality and productivity.
• Formal inspections of design and code.
• Systematic and efficient design and code verification process.
• Well-defined roles for inspection participants.
• Inspection data is categorized and made suitable for process analysis.
• By using inspection results, a mechanism for initial error reduction
followed by ever-improving error rates can be achieved.
Recommended Reading
Software Inspection, Tom Gilb and Dorothy
Graham, Addison-Wesley, 1993.
• historical background
• benefits and cost
• individual phases of inspection
• inspection leader
• installation and training
• case studies
Summary
• Early days, but...
• enjoyable
• going well so far
• but yet to tackle issue of bug resolution

More Related Content

Viewers also liked

A Higher-Order Data Flow Model for Heterogeneous Big Data
A Higher-Order Data Flow Model for Heterogeneous Big DataA Higher-Order Data Flow Model for Heterogeneous Big Data
A Higher-Order Data Flow Model for Heterogeneous Big Data
Simon Price
 
Co-designing Research IT and Research Data Services
Co-designing Research IT and Research Data ServicesCo-designing Research IT and Research Data Services
Co-designing Research IT and Research Data Services
Simon Price
 
NewsPatterns - visualisation layer of news feed mining
NewsPatterns - visualisation layer of news feed miningNewsPatterns - visualisation layer of news feed mining
NewsPatterns - visualisation layer of news feed mining
Simon Price
 
Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...
Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...
Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...
Simon Price
 
Managing Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development ProjectsManaging Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development Projects
Simon Price
 
Managing research data at Bristol
Managing research data at BristolManaging research data at Bristol
Managing research data at Bristol
Simon Price
 
Mobile Apps for Research Data Collection
Mobile Apps for Research Data CollectionMobile Apps for Research Data Collection
Mobile Apps for Research Data Collection
Simon Price
 
A review of the state of the art in Machine Learning on the Semantic Web
A review of the state of the art in Machine Learning on the Semantic WebA review of the state of the art in Machine Learning on the Semantic Web
A review of the state of the art in Machine Learning on the Semantic Web
Simon Price
 
Best of Bristol Media City - MyMobileBristol, NatureLocator, Visualising China
Best of Bristol Media City - MyMobileBristol, NatureLocator, Visualising ChinaBest of Bristol Media City - MyMobileBristol, NatureLocator, Visualising China
Best of Bristol Media City - MyMobileBristol, NatureLocator, Visualising China
Simon Price
 
Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...
Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...
Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...
Simon Price
 
Adapting CARDIO for BOS
Adapting CARDIO for BOSAdapting CARDIO for BOS
Adapting CARDIO for BOS
Simon Price
 
Webs of People, Webs of Data
Webs of People, Webs of DataWebs of People, Webs of Data
Webs of People, Webs of Data
Simon Price
 
Clinical Experience Recorder
Clinical Experience RecorderClinical Experience Recorder
Clinical Experience Recorder
Simon Price
 
data.bris - Use case, role and functionality for CKAN adoption
data.bris - Use case, role and functionality for CKAN adoptiondata.bris - Use case, role and functionality for CKAN adoption
data.bris - Use case, role and functionality for CKAN adoption
Simon Price
 
Visualising China - historical photos of China
Visualising China - historical photos of ChinaVisualising China - historical photos of China
Visualising China - historical photos of China
Simon Price
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
Arun Saha
 
Web Design - The Forgotten Nuts and Bolts
Web Design - The Forgotten Nuts and Bolts Web Design - The Forgotten Nuts and Bolts
Web Design - The Forgotten Nuts and Bolts
kenobi
 
SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...
Simon Price
 
Laravel 5 and SOLID
Laravel 5 and SOLIDLaravel 5 and SOLID
Laravel 5 and SOLID
Igor Talevski
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
Phill Sparks
 

Viewers also liked (20)

A Higher-Order Data Flow Model for Heterogeneous Big Data
A Higher-Order Data Flow Model for Heterogeneous Big DataA Higher-Order Data Flow Model for Heterogeneous Big Data
A Higher-Order Data Flow Model for Heterogeneous Big Data
 
Co-designing Research IT and Research Data Services
Co-designing Research IT and Research Data ServicesCo-designing Research IT and Research Data Services
Co-designing Research IT and Research Data Services
 
NewsPatterns - visualisation layer of news feed mining
NewsPatterns - visualisation layer of news feed miningNewsPatterns - visualisation layer of news feed mining
NewsPatterns - visualisation layer of news feed mining
 
Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...
Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...
Cost of Migrating Large-Scale Computer Assisted Learning (CAL) Software to We...
 
Managing Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development ProjectsManaging Large-scale Multimedia Development Projects
Managing Large-scale Multimedia Development Projects
 
Managing research data at Bristol
Managing research data at BristolManaging research data at Bristol
Managing research data at Bristol
 
Mobile Apps for Research Data Collection
Mobile Apps for Research Data CollectionMobile Apps for Research Data Collection
Mobile Apps for Research Data Collection
 
A review of the state of the art in Machine Learning on the Semantic Web
A review of the state of the art in Machine Learning on the Semantic WebA review of the state of the art in Machine Learning on the Semantic Web
A review of the state of the art in Machine Learning on the Semantic Web
 
Best of Bristol Media City - MyMobileBristol, NatureLocator, Visualising China
Best of Bristol Media City - MyMobileBristol, NatureLocator, Visualising ChinaBest of Bristol Media City - MyMobileBristol, NatureLocator, Visualising China
Best of Bristol Media City - MyMobileBristol, NatureLocator, Visualising China
 
Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...
Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...
Querying and Merging Heterogeneous Data by Approximate Joins on Higher-Order ...
 
Adapting CARDIO for BOS
Adapting CARDIO for BOSAdapting CARDIO for BOS
Adapting CARDIO for BOS
 
Webs of People, Webs of Data
Webs of People, Webs of DataWebs of People, Webs of Data
Webs of People, Webs of Data
 
Clinical Experience Recorder
Clinical Experience RecorderClinical Experience Recorder
Clinical Experience Recorder
 
data.bris - Use case, role and functionality for CKAN adoption
data.bris - Use case, role and functionality for CKAN adoptiondata.bris - Use case, role and functionality for CKAN adoption
data.bris - Use case, role and functionality for CKAN adoption
 
Visualising China - historical photos of China
Visualising China - historical photos of ChinaVisualising China - historical photos of China
Visualising China - historical photos of China
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
 
Web Design - The Forgotten Nuts and Bolts
Web Design - The Forgotten Nuts and Bolts Web Design - The Forgotten Nuts and Bolts
Web Design - The Forgotten Nuts and Bolts
 
SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...
 
Laravel 5 and SOLID
Laravel 5 and SOLIDLaravel 5 and SOLID
Laravel 5 and SOLID
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
 

Similar to Code Club - a Fight Club inspired approach to software inspection and review

Code reviews: a short introduction
Code reviews: a short introductionCode reviews: a short introduction
Code reviews: a short introduction
FreekDB
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Development
bsadd
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
Peter Kofler
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
ssusercaf6c1
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
Nacho Cougil
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
Shafiul Azam Chowdhury
 
What designers can learn from (code) review
What designers can learn from (code) reviewWhat designers can learn from (code) review
What designers can learn from (code) review
Ida Aalen
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
Nacho Cougil
 
Clean code chpt_1
Clean code chpt_1Clean code chpt_1
Clean code chpt_1
saber tabatabaee
 
Code Reviews @ Quatico
Code Reviews @ QuaticoCode Reviews @ Quatico
Code Reviews @ Quatico
Jan Wloka
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
Nacho Cougil
 
Code Review and other aspects of project organization
Code Review and other aspects of project organizationCode Review and other aspects of project organization
Code Review and other aspects of project organization
Łukasz Dumiszewski
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
Shaun Abram
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming
PostSharp Technologies
 
Coding Standard And Code Review
Coding Standard And Code ReviewCoding Standard And Code Review
Coding Standard And Code Review
Milan Vukoje
 
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
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
Shawn Jones
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
sarah david
 
A Second Set Of Eyes: Getting The Most From Code Reviews
A Second Set Of Eyes: Getting The Most From Code ReviewsA Second Set Of Eyes: Getting The Most From Code Reviews
A Second Set Of Eyes: Getting The Most From Code Reviews
Ben McCormick
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
Lalit Kale
 

Similar to Code Club - a Fight Club inspired approach to software inspection and review (20)

Code reviews: a short introduction
Code reviews: a short introductionCode reviews: a short introduction
Code reviews: a short introduction
 
Introducing Systems Analysis Design Development
Introducing Systems Analysis Design DevelopmentIntroducing Systems Analysis Design Development
Introducing Systems Analysis Design Development
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)
 
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
What designers can learn from (code) review
What designers can learn from (code) reviewWhat designers can learn from (code) review
What designers can learn from (code) review
 
TDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech WeekTDD - Seriously, try it! - Bucarest Tech Week
TDD - Seriously, try it! - Bucarest Tech Week
 
Clean code chpt_1
Clean code chpt_1Clean code chpt_1
Clean code chpt_1
 
Code Reviews @ Quatico
Code Reviews @ QuaticoCode Reviews @ Quatico
Code Reviews @ Quatico
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
Code Review and other aspects of project organization
Code Review and other aspects of project organizationCode Review and other aspects of project organization
Code Review and other aspects of project organization
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming
 
Coding Standard And Code Review
Coding Standard And Code ReviewCoding Standard And Code Review
Coding Standard And Code Review
 
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...
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
 
A Second Set Of Eyes: Getting The Most From Code Reviews
A Second Set Of Eyes: Getting The Most From Code ReviewsA Second Set Of Eyes: Getting The Most From Code Reviews
A Second Set Of Eyes: Getting The Most From Code Reviews
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 

Recently uploaded

一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
LAXMAREDDY22
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
Roger Rozario
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
RamonNovais6
 
Material for memory and display system h
Material for memory and display system hMaterial for memory and display system h
Material for memory and display system h
gowrishankartb2005
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 

Recently uploaded (20)

一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
 
Material for memory and display system h
Material for memory and display system hMaterial for memory and display system h
Material for memory and display system h
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 

Code Club - a Fight Club inspired approach to software inspection and review

  • 1. Code Club An internal presentation from 2002 Dr Simon Price Academic Research IT Manager 1
  • 2. Developers, welcome to Code Club. • First rule of Code Club is you do not talk about Code Club. • Second rule of Code Club is YOU DO NOT TALK ABOUT CODE CLUB! "Doh!"
  • 3. Initial idea: a "coding clinic " for our techies • Objectives: • meet regularly to review code • produce some ID coding standards • share experiences and expertise
  • 4. Getting Started Kick-off meeting (15 Oct 2002) • "Real" rather than "virtual" meeting. • The name Code Clinic - suggestive of some embarrassing compliant that you don't want to mention in public. • We have a Kieren Pitts in the team and edit distance distedit (“K. Pitts”, “B. Pitt”) is small, so... • …Code Club was born.
  • 5. Kick-off Decisions • Start fairly informally and build up structures/documents as required. • Meet every 2 weeks. (Decide if this is the right frequency once we've run for a few meetings). • Each meeting, someone will present code for review (emailing out beforehand with an explanation if needed). • Review from various perspectives – eg. efficiency, standards, readability, design, reuse, documentation.
  • 6. Rule #3 Third rule of Code Club, someone yells stop, goes limp, taps out, the review is over. • It's not managerial • It's not personal* • It's about code * unless you forget the donuts!!!
  • 7. Kick-off Ideas • Standards for coding • where possible across languages • sometimes language-specific (eg. perl conventions for capitals being reserved for specific purpose) • will emerge from review meetings and grow over time • defining standards will have an impact on the amount of code we can review in a given time (ie. reducing it); • written standards will make it easier for new dev. staff to get up to speed and learn how we work
  • 8. More Ideas • Code Repository • We all keep snippets of code for reuse (or know where to find them in our old projects). • One of the useful things the code club could do is identify potential reuse... • building up a shared repository. (A simple version would just be a searchable list of what to find where!)
  • 9. Ahead of First Meeting • Reviewee emailed CC members • code for review • explanation • reminder of meeting details
  • 10. First CC Meeting (29 Oct 2002) Present: IMS, ETC, SNP, KP, PS Summary: Reviewed the main path VTS3/Calnet the code looking for ways of improving the efficiency (particularly - reducing execution time). Also looked at style, design, readability, mistakes, areas for re-use etc. Files reviewed: gen.pl, constants.pl, util.pl, ...
  • 11. Rule #4 Forth rule only two guys to a review. Well, about 5-6 is a manageable number.
  • 12. More Decisions • This was a worthwhile exercise! • Use Bugzilla as way of recording/tracking issues raised in reviews. • Person whose code will be reviewed responsible for: • booking room • taking notes at the meeting • entering issues into Bugzilla • circulating brief note of meeting by email • and...
  • 13. Rule #5 Fifth rule: one review at a time, fellas. Yes, but we do start with a report back on the previous review from the reviewee.
  • 14. Rule #6 Sixth rule: no shirts no shoes. Worrying, huh?
  • 15. Rule #7 Seventh rule: Reviews will go on as long as they have to. Well, we book the room for 2 hours.
  • 16. Rule #8 And the eighth and final rule: If this is your first day at Code Club, you have to review. • Actually, we each take a turn to provide the code for review. • Reviewee books room, circulates code (& notes) and provides donuts. • Reviewee leads through the code and takes notes of issues raised.
  • 17. Where Next? • Walk before running, but... • ... CC is producing standards and guidelines documents • initially, internal facing • but eventually, external facing • ... CC might also experiment with a formalised process called Software Inspections
  • 18. Software Inspections Design and code inspections to reduce errors in program development, Michael E. Fagan, IBM Systems Journal, Vol. 15(3), pp 182-211, 1976. • Substantial net improvements in programming quality and productivity. • Formal inspections of design and code. • Systematic and efficient design and code verification process. • Well-defined roles for inspection participants. • Inspection data is categorized and made suitable for process analysis. • By using inspection results, a mechanism for initial error reduction followed by ever-improving error rates can be achieved.
  • 19. Recommended Reading Software Inspection, Tom Gilb and Dorothy Graham, Addison-Wesley, 1993. • historical background • benefits and cost • individual phases of inspection • inspection leader • installation and training • case studies
  • 20. Summary • Early days, but... • enjoyable • going well so far • but yet to tackle issue of bug resolution