SlideShare a Scribd company logo
1 of 33
Cross-Functional Code Reviews
Margaret Fero
Technical Writer | Degreed
maggie@degreed.com
@maggiefero
Agenda
Welcome!
Why would I want that?
But for Code Reviews?
How do I do it, then?
Wifi: OReillyCon19
Password: oscon2019
Breakthrough innovation occurs when
we bring down boundaries and
encourage disciplines to learn from one
another.
Gyan Nagpal
Author of Talent Economics and
The Future Ready Organization
“A leader’s job is to build the team with as few blind spots as
possible (‘diverse by construction’), then guide them to their
potential.”
Wienbar, Sharon. “How to Hire Female Engineers,” TechCrunch. https://techcrunch.com/2015/11/05/how-to-hire-female-
engineers/
Diverse teams form a more creative whole by creating more of the
Perspective/Heuristic pairs described in Hong/Page 2004
Hong L, Page SE. “Groups of diverse problem solvers can outperform groups of high-ability problem solvers.” Proc Natl Acad Sci U S A. 2004 Nov
16;101(46):16385-9. Epub 2004 Nov 8.
Functional Diversity
Functional Diversity
Perspective
“The representation of solutions in the
problem solver’s internal language is called
a perspective.”
Heuristic
“A problem solver’s heuristic is a mapping…
from solutions in her internal language to
subsets of solutions. It captures how she
searches for solutions.”
Hong L, Page SE. “Groups of diverse problem solvers can outperform groups of high-ability problem solvers.” Proc Natl Acad Sci U S A. 2004 Nov
16;101(46):16385-9. Epub 2004 Nov 8.
In Process
Perspective
To internal language from solution
Description of solutions
Problem to internal processing
Heuristic
From internal language to solution
Mapping of self-talk to solutions
Internal processing to result
Problem
Internal
Processing
Result
Is it worth it?
Phillips, Katherine W.; Katie A. Liljenquist; and Margaret A. Neale. "Is the Pain Worth the Gain? The Advantages
and Liabilities of Agreeing With Socially Distinct Newcomers." Personality and Social Psychology Bulletin. March
2009 vol. 35 no. 3 336-350 doi: 10.1177/0146167208328062
Diverse groups perceive interactions as
less effective and report low confidence
in performance, but…
Phillips, Lijlenquist, and Neale (2009)
found that their performance was
actually better than homogeneous
groups. Not just because of new ideas,
either.
What about you?
What makes it cross-functional?
Stakeholders from
other teams
Who participates?
Developers Stakeholders from
your team
Developers on your team
Developers on other teams
Product Managers or Product Owners
Technical Writers
Security Team Members
UX Designers
UI Designers
Why?
Who Participates?
Who? Why are they included?
Developers on your team Check for accuracy and use of patterns; adherence to team
norms.
Developers on other teams Create or maintain organizational flexibility by building
institutional knowledge across teams.
Product Managers or Product Owners Early insight into how implementation aligns with
acceptance criteria.
Technical Writers or UX Writers Make sure customer-facing words align with style; build
deep knowledge before documenting.
Security Team Members Look for implementation risks early
UX Designers Find the pain points before customers do!
UI Designers Verify that changes to your style since the work was planned
are implemented correctly.
Benefit from your
whole organization’s
knowledge.
CHOOSING CODE REVIEWERS
• Start from a chart
• List reasons why you would want a function
• Decide which types of changes that function should review
• Decide how to choose specific reviewers in advance
• If you can, make it optional
• Ensure that reviewers (and managers!) see that they add value
CHOOSING SPECIFIC PEOPLE
• Do they enjoy reviewing?
• Do they have a background in the language?
• Do they need to learn more about a product or component?
• Are they already overworked compared to teammates?
• Does the team have capacity?
• Does their manager buy in, and how much?
• Normal team chemistry considerations
How to win friends
and influence process
CC0-licensed image from pexels.com
Changes to review
processes can be hard to
keep track of.
Check in code
Update issue status
Create CR doc
Invite reviewers
Follow up if needed
Use feedback
Create CR folder
Invite reviewers
Review comments
Meet to discuss
Post final version
Check in code
Provide Checklists
Incorporate this when
change is expected
• Process review
• End of sprint
• End of year
• Goal-setting
• Just after a major release
Include Reminders In Your Workflow
Create an issue
Assign the issue
Draft a solution
Code Review
Resolve the issue
Our developers don’t like or need
these other people in their code.
CC0-licensed image from pexels.com
Communicate the Reasons for the Change Thoroughly
Nobody wants to produce bad code.
Provide Resources
Help Reviewers Help You
1. Learn what your reviewers know.
2. Help them fill gaps.
3. Reap success!
But Where Do I Get Resources?
Present it as an
opportunity. All
participants gets to
learn about their
teammates’ jobs.
CC0-licensed image from pexels.com
I don’t want my people
involved so early in the
process. It can be wasteful, and
their time is valuable.
CC0-licensed image from pexels.com
Reduce Other Work
(if you can)
• Find inefficiencies in other processes
• Can you add fewer features while this
process ramps up?
• Are any of these people doing things
that could (or should) go to others?
Emphasize long-term
reduction of labor.
CC0-licensed image from pexels.com
Measure Actual Waste How much do you keep after code review?
Questions?
Rate Today ’s Session
Session page on conference website O’Reilly Events App
Margaret Fero
Technical Writer
Find me on the web:
• Degreed.com/maggiefero
• Linkedin.com/in/margaretfero
Maggie@degreed.com
@maggiefero

More Related Content

What's hot

Building & Sustaining Successful UX Teams
Building & Sustaining Successful UX TeamsBuilding & Sustaining Successful UX Teams
Building & Sustaining Successful UX Teamsuxpin
 
Inspiring Alignment and Autonomy - The Leaders Role in Scaling Agile
Inspiring Alignment and Autonomy - The Leaders Role in Scaling AgileInspiring Alignment and Autonomy - The Leaders Role in Scaling Agile
Inspiring Alignment and Autonomy - The Leaders Role in Scaling AgileLeland Newsom CSP-SM, SPC5, SDP
 
How we scale Testautomation with WebdriverIO at myToys
How we scale Testautomation with WebdriverIO at myToysHow we scale Testautomation with WebdriverIO at myToys
How we scale Testautomation with WebdriverIO at myToysBenjamin Schott
 
Epic Champions - Better Software Through Empowered Engineers
Epic Champions - Better Software Through Empowered EngineersEpic Champions - Better Software Through Empowered Engineers
Epic Champions - Better Software Through Empowered EngineersAtlassian
 
PMI ACP Prep Course
PMI ACP Prep CoursePMI ACP Prep Course
PMI ACP Prep Coursesparkagility
 
Lean UX in the Enterprise: A Government Case Study
Lean UX in the Enterprise: A Government Case StudyLean UX in the Enterprise: A Government Case Study
Lean UX in the Enterprise: A Government Case Studyuxpin
 
'The Real Agile Testing Quadrants' with Michael Bolton
'The Real Agile Testing Quadrants' with Michael Bolton'The Real Agile Testing Quadrants' with Michael Bolton
'The Real Agile Testing Quadrants' with Michael BoltonTEST Huddle
 
How Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile DeveloperHow Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile DeveloperLemi Orhan Ergin
 
Product ownership versus product management
Product ownership versus product managementProduct ownership versus product management
Product ownership versus product managementFlavius Stef
 
Advice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsAdvice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsPuppet
 
A New Toolbox: Artifact Providence 2013
A New Toolbox: Artifact Providence 2013A New Toolbox: Artifact Providence 2013
A New Toolbox: Artifact Providence 2013Kevin Sharon
 
DevOps culture: Computer scientists are only human ... ;)
DevOps culture: Computer scientists are only human ... ;)DevOps culture: Computer scientists are only human ... ;)
DevOps culture: Computer scientists are only human ... ;)Jörg Hastreiter
 
UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017Aliza Carpio
 
Building an Awesome Engineering Culture
Building an Awesome Engineering CultureBuilding an Awesome Engineering Culture
Building an Awesome Engineering CultureUri Nativ
 
Practical UX Research for the Enterprise
Practical UX Research for the EnterprisePractical UX Research for the Enterprise
Practical UX Research for the Enterpriseuxpin
 
SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...
SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...
SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...South Tyrol Free Software Conference
 
Agile testing quadrants discussion
Agile testing quadrants discussionAgile testing quadrants discussion
Agile testing quadrants discussionMary Jiang
 
Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...
Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...
Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...Atlassian
 

What's hot (20)

Building & Sustaining Successful UX Teams
Building & Sustaining Successful UX TeamsBuilding & Sustaining Successful UX Teams
Building & Sustaining Successful UX Teams
 
Inspiring Alignment and Autonomy - The Leaders Role in Scaling Agile
Inspiring Alignment and Autonomy - The Leaders Role in Scaling AgileInspiring Alignment and Autonomy - The Leaders Role in Scaling Agile
Inspiring Alignment and Autonomy - The Leaders Role in Scaling Agile
 
Empowerment through collaboration - Alex Zananiri
Empowerment through collaboration - Alex ZananiriEmpowerment through collaboration - Alex Zananiri
Empowerment through collaboration - Alex Zananiri
 
How we scale Testautomation with WebdriverIO at myToys
How we scale Testautomation with WebdriverIO at myToysHow we scale Testautomation with WebdriverIO at myToys
How we scale Testautomation with WebdriverIO at myToys
 
Epic Champions - Better Software Through Empowered Engineers
Epic Champions - Better Software Through Empowered EngineersEpic Champions - Better Software Through Empowered Engineers
Epic Champions - Better Software Through Empowered Engineers
 
PMI ACP Prep Course
PMI ACP Prep CoursePMI ACP Prep Course
PMI ACP Prep Course
 
Lean UX in the Enterprise: A Government Case Study
Lean UX in the Enterprise: A Government Case StudyLean UX in the Enterprise: A Government Case Study
Lean UX in the Enterprise: A Government Case Study
 
'The Real Agile Testing Quadrants' with Michael Bolton
'The Real Agile Testing Quadrants' with Michael Bolton'The Real Agile Testing Quadrants' with Michael Bolton
'The Real Agile Testing Quadrants' with Michael Bolton
 
How Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile DeveloperHow Do You Build Software? Software Engineering Practices of an Agile Developer
How Do You Build Software? Software Engineering Practices of an Agile Developer
 
Product ownership versus product management
Product ownership versus product managementProduct ownership versus product management
Product ownership versus product management
 
Advice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsAdvice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOps
 
A New Toolbox: Artifact Providence 2013
A New Toolbox: Artifact Providence 2013A New Toolbox: Artifact Providence 2013
A New Toolbox: Artifact Providence 2013
 
DevOps culture: Computer scientists are only human ... ;)
DevOps culture: Computer scientists are only human ... ;)DevOps culture: Computer scientists are only human ... ;)
DevOps culture: Computer scientists are only human ... ;)
 
UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017UC Irvine WICS workshop feb 2017
UC Irvine WICS workshop feb 2017
 
Building an Awesome Engineering Culture
Building an Awesome Engineering CultureBuilding an Awesome Engineering Culture
Building an Awesome Engineering Culture
 
Practical UX Research for the Enterprise
Practical UX Research for the EnterprisePractical UX Research for the Enterprise
Practical UX Research for the Enterprise
 
SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...
SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...
SFScon21 - Xiaofeng Wang - SAFe, or not SAFe? Pitfalls to Avoid in Agile Tran...
 
Agile testing quadrants discussion
Agile testing quadrants discussionAgile testing quadrants discussion
Agile testing quadrants discussion
 
Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...
Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...
Integrate Confluence and JIRA Agile for Collaborative Agile Program Managemen...
 
Agile numbers
Agile numbersAgile numbers
Agile numbers
 

Similar to Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019

Work is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive TeamsWork is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive TeamsShawn Rider
 
Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...
Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...
Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...Sendachi
 
AgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptxAgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptxRajaNagendraKumar1
 
Scale at Reddit: Triple Your Team Size Without Losing Control
Scale at Reddit: Triple Your Team Size Without Losing ControlScale at Reddit: Triple Your Team Size Without Losing Control
Scale at Reddit: Triple Your Team Size Without Losing ControlAtlassian
 
Agile Basics / Fundamentals
Agile Basics / FundamentalsAgile Basics / Fundamentals
Agile Basics / Fundamentalssparkagility
 
How to Maximize Effectiveness of Developers Contributing to Free Software
How to Maximize Effectiveness of Developers Contributing to Free SoftwareHow to Maximize Effectiveness of Developers Contributing to Free Software
How to Maximize Effectiveness of Developers Contributing to Free SoftwareStefano Maffulli
 
Building Scalable Organizations
Building Scalable OrganizationsBuilding Scalable Organizations
Building Scalable Organizationsmfisher5kavika
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open DevelopmentRoss Gardler
 
The complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumThe complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumAgile ME
 
How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...
How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...
How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...Scrum Day Bandung
 
Quality, Cost, and Governance of Open Source Software
Quality, Cost, and Governance of Open Source SoftwareQuality, Cost, and Governance of Open Source Software
Quality, Cost, and Governance of Open Source SoftwareGirl Geek Dinners Milano
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference SpeakerSven Peters
 
How to Do Kick-Ass Software Development
How to Do Kick-Ass Software DevelopmentHow to Do Kick-Ass Software Development
How to Do Kick-Ass Software DevelopmentJosiah Renaudin
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageBuiltvisible
 
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...Greg Laugero
 

Similar to Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019 (20)

Agile Technical Leadership
Agile Technical LeadershipAgile Technical Leadership
Agile Technical Leadership
 
UXBC #26: Lean UX
UXBC #26: Lean UXUXBC #26: Lean UX
UXBC #26: Lean UX
 
Work is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive TeamsWork is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive Teams
 
Agile testing
Agile testingAgile testing
Agile testing
 
Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...
Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...
Sendachi | 451 | GitHub Webinar: Demystifying Collaboration at Scale: DevOp...
 
AgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptxAgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptx
 
Scale at Reddit: Triple Your Team Size Without Losing Control
Scale at Reddit: Triple Your Team Size Without Losing ControlScale at Reddit: Triple Your Team Size Without Losing Control
Scale at Reddit: Triple Your Team Size Without Losing Control
 
Agile Basics / Fundamentals
Agile Basics / FundamentalsAgile Basics / Fundamentals
Agile Basics / Fundamentals
 
How to Maximize Effectiveness of Developers Contributing to Free Software
How to Maximize Effectiveness of Developers Contributing to Free SoftwareHow to Maximize Effectiveness of Developers Contributing to Free Software
How to Maximize Effectiveness of Developers Contributing to Free Software
 
Building Scalable Organizations
Building Scalable OrganizationsBuilding Scalable Organizations
Building Scalable Organizations
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open Development
 
The complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumThe complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van Bennekum
 
How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...
How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...
How (can) Scrum and DevOps Walk Together to Build a High-Quality Product Deli...
 
Clark "Building An Agile Team"
Clark "Building An Agile Team"Clark "Building An Agile Team"
Clark "Building An Agile Team"
 
Quality, Cost, and Governance of Open Source Software
Quality, Cost, and Governance of Open Source SoftwareQuality, Cost, and Governance of Open Source Software
Quality, Cost, and Governance of Open Source Software
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
How to Do Kick-Ass Software Development
How to Do Kick-Ass Software DevelopmentHow to Do Kick-Ass Software Development
How to Do Kick-Ass Software Development
 
How to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs languageHow to make change happen in your organisation by talking your devs language
How to make change happen in your organisation by talking your devs language
 
Os Leung
Os LeungOs Leung
Os Leung
 
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
How UXD Can Provide Leadership Skills for Complex Software Projects: A 4-Day ...
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019

  • 1. Cross-Functional Code Reviews Margaret Fero Technical Writer | Degreed maggie@degreed.com @maggiefero
  • 2. Agenda Welcome! Why would I want that? But for Code Reviews? How do I do it, then? Wifi: OReillyCon19 Password: oscon2019
  • 3. Breakthrough innovation occurs when we bring down boundaries and encourage disciplines to learn from one another. Gyan Nagpal Author of Talent Economics and The Future Ready Organization
  • 4. “A leader’s job is to build the team with as few blind spots as possible (‘diverse by construction’), then guide them to their potential.” Wienbar, Sharon. “How to Hire Female Engineers,” TechCrunch. https://techcrunch.com/2015/11/05/how-to-hire-female- engineers/
  • 5. Diverse teams form a more creative whole by creating more of the Perspective/Heuristic pairs described in Hong/Page 2004 Hong L, Page SE. “Groups of diverse problem solvers can outperform groups of high-ability problem solvers.” Proc Natl Acad Sci U S A. 2004 Nov 16;101(46):16385-9. Epub 2004 Nov 8. Functional Diversity
  • 6. Functional Diversity Perspective “The representation of solutions in the problem solver’s internal language is called a perspective.” Heuristic “A problem solver’s heuristic is a mapping… from solutions in her internal language to subsets of solutions. It captures how she searches for solutions.” Hong L, Page SE. “Groups of diverse problem solvers can outperform groups of high-ability problem solvers.” Proc Natl Acad Sci U S A. 2004 Nov 16;101(46):16385-9. Epub 2004 Nov 8.
  • 7. In Process Perspective To internal language from solution Description of solutions Problem to internal processing Heuristic From internal language to solution Mapping of self-talk to solutions Internal processing to result Problem Internal Processing Result
  • 8. Is it worth it? Phillips, Katherine W.; Katie A. Liljenquist; and Margaret A. Neale. "Is the Pain Worth the Gain? The Advantages and Liabilities of Agreeing With Socially Distinct Newcomers." Personality and Social Psychology Bulletin. March 2009 vol. 35 no. 3 336-350 doi: 10.1177/0146167208328062 Diverse groups perceive interactions as less effective and report low confidence in performance, but… Phillips, Lijlenquist, and Neale (2009) found that their performance was actually better than homogeneous groups. Not just because of new ideas, either.
  • 10. What makes it cross-functional?
  • 11. Stakeholders from other teams Who participates? Developers Stakeholders from your team Developers on your team Developers on other teams Product Managers or Product Owners Technical Writers Security Team Members UX Designers UI Designers
  • 12. Why?
  • 13. Who Participates? Who? Why are they included? Developers on your team Check for accuracy and use of patterns; adherence to team norms. Developers on other teams Create or maintain organizational flexibility by building institutional knowledge across teams. Product Managers or Product Owners Early insight into how implementation aligns with acceptance criteria. Technical Writers or UX Writers Make sure customer-facing words align with style; build deep knowledge before documenting. Security Team Members Look for implementation risks early UX Designers Find the pain points before customers do! UI Designers Verify that changes to your style since the work was planned are implemented correctly.
  • 14. Benefit from your whole organization’s knowledge.
  • 15. CHOOSING CODE REVIEWERS • Start from a chart • List reasons why you would want a function • Decide which types of changes that function should review • Decide how to choose specific reviewers in advance • If you can, make it optional • Ensure that reviewers (and managers!) see that they add value
  • 16. CHOOSING SPECIFIC PEOPLE • Do they enjoy reviewing? • Do they have a background in the language? • Do they need to learn more about a product or component? • Are they already overworked compared to teammates? • Does the team have capacity? • Does their manager buy in, and how much? • Normal team chemistry considerations
  • 17. How to win friends and influence process CC0-licensed image from pexels.com
  • 18. Changes to review processes can be hard to keep track of.
  • 19. Check in code Update issue status Create CR doc Invite reviewers Follow up if needed Use feedback Create CR folder Invite reviewers Review comments Meet to discuss Post final version Check in code Provide Checklists
  • 20. Incorporate this when change is expected • Process review • End of sprint • End of year • Goal-setting • Just after a major release
  • 21. Include Reminders In Your Workflow Create an issue Assign the issue Draft a solution Code Review Resolve the issue
  • 22. Our developers don’t like or need these other people in their code. CC0-licensed image from pexels.com
  • 23. Communicate the Reasons for the Change Thoroughly Nobody wants to produce bad code.
  • 24. Provide Resources Help Reviewers Help You 1. Learn what your reviewers know. 2. Help them fill gaps. 3. Reap success!
  • 25. But Where Do I Get Resources?
  • 26. Present it as an opportunity. All participants gets to learn about their teammates’ jobs. CC0-licensed image from pexels.com
  • 27. I don’t want my people involved so early in the process. It can be wasteful, and their time is valuable. CC0-licensed image from pexels.com
  • 28. Reduce Other Work (if you can) • Find inefficiencies in other processes • Can you add fewer features while this process ramps up? • Are any of these people doing things that could (or should) go to others?
  • 29. Emphasize long-term reduction of labor. CC0-licensed image from pexels.com
  • 30. Measure Actual Waste How much do you keep after code review?
  • 32. Rate Today ’s Session Session page on conference website O’Reilly Events App
  • 33. Margaret Fero Technical Writer Find me on the web: • Degreed.com/maggiefero • Linkedin.com/in/margaretfero Maggie@degreed.com @maggiefero