code review is an architectural necessity · pdf filereviewer - the people evaluating the...
TRANSCRIPT
![Page 1: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/1.jpg)
Code review is an architectural necessity
Colin Dean@colindean
1
![Page 2: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/2.jpg)
@ColinDean
Software Engineer
Organizer, Abstractions.io
Wearer of many hats2
![Page 3: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/3.jpg)
My words are my own and not my employer(s), past or present.
Please save questions until the end of the presentation.
3
![Page 4: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/4.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems does code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations4
![Page 5: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/5.jpg)
5
![Page 6: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/6.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems do code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations6
![Page 7: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/7.jpg)
What is code review?
7
![Page 8: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/8.jpg)
Code review is the process by which those who maintain a software codebase evaluate a proposed change to that codebase, regardless of the source of the proposed change.
8
![Page 9: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/9.jpg)
Code review is systematic examination of computer source code.
9
Code Review, Wikipedia
![Page 10: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/10.jpg)
Peer Review
10
![Page 11: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/11.jpg)
Code Review
11
![Page 12: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/12.jpg)
Code Review Vocabulary• Change - an individual unit of work altering what exists
• Submission - a collection of changes
• Submitter - the person proposing the submission
• Reviewer - the people evaluating the submission
• Annotation - remarks or ratings bestowed upon the submission
12
![Page 13: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/13.jpg)
The submitter proposes changes in a submission, which is evaluated by a
reviewer, who annotates or accepts it.
13
![Page 14: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/14.jpg)
Inspection Team review Walkthrough Pair
programmingPeer
deskcheck, passaround
Ad-hoc review
Wiegers’ peer review formality spectrum14
Least formalMost formal
![Page 15: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/15.jpg)
Most formal Least formal
Inspection Team review Walkthrough Pair
programmingPeer
deskcheck, passaround
Ad-hoc review
Wiegers’ peer review formality spectrum15
![Page 16: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/16.jpg)
16
![Page 17: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/17.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems does code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations17
![Page 18: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/18.jpg)
Code review solves two major problems.
18
Aside from the primary goal of reducing defects,
![Page 19: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/19.jpg)
Mental model synchronizationCode review solves
19
![Page 20: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/20.jpg)
20
![Page 21: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/21.jpg)
21
![Page 22: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/22.jpg)
Close enough Need guidanceOn target
22
![Page 23: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/23.jpg)
Tribal knowledge developmentCode review solves
23
![Page 24: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/24.jpg)
Michael KeelingCreating an Architecture Oral History, SATURN 2012
“Architecture oral history requires
that the team is both willing and
able to retell the stories and keep
the oral history alive.”
24
![Page 25: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/25.jpg)
Write it down.Make it searchable.
Code review forces us to
25
![Page 26: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/26.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems does code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations26
![Page 27: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/27.jpg)
MaintainabilityCode review ensures
27
![Page 28: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/28.jpg)
Maintainability
• Learnability
• Understandability
• Serviceability
Code review drives
28
![Page 29: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/29.jpg)
Learnability• Developing Code
• Patterns & Conventions
• Risks & Goals
• Developing People
• Common Vocabulary
• Teaching Moments
Maintainability Learnability Understandability Serviceability
Code review drives
29
![Page 30: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/30.jpg)
Learner
Expert
Coding Reviewing
Coding
Reviewing
SynchronousPairing &Teaching
ExemplaryReading
ConstructivelyCritical
Evaluation
SerendipitousEvaluation of
Example
Maintainability Learnability Understandability Serviceability
30
![Page 31: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/31.jpg)
Understandability
• Establishes common yet evolving mental model
• Builds confidence in direction and design decisions
• Builds tribal knowledge
• Bonus: Enables elevator pitch
Maintainability Learnability Understandability Serviceability
Code review drives
31
![Page 32: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/32.jpg)
Serviceability
• Exposes addressable “gotchas”
• Exposes end-user interaction points
• Establishes consensus on supported workflows
Maintainability Learnability Understandability Serviceability
Code review drives
32
![Page 33: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/33.jpg)
Linus’s Law
“Given enough eyes, all bugs are shallow.”
33
![Page 34: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/34.jpg)
Maintainability
✓Learnability
✓Understandability
✓Serviceability
Code review drives
34
![Page 35: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/35.jpg)
First programming job out of school - B2B imprinting company
if($customer == “spacely_sprockets”) { do_something(); }else { cry(); }
• Version control!
• No code review tooling or process
• Minimal pairing
• Continous integration easily circumvented35
![Page 36: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/36.jpg)
Lack of code review
36
Lost Opportunities
![Page 37: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/37.jpg)
Lack of code review
37
Lost OpportunitiesLost Revenue
![Page 38: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/38.jpg)
Lack of code reviewLost Opportunities
Lost RevenueLost Job
38
![Page 39: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/39.jpg)
ComplianceCode review ensures
39
![Page 40: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/40.jpg)
Compliance
• Accessibility
• Auditability
• Idiomaticity
Code review drives
40
![Page 41: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/41.jpg)
Second job out of school - Consulting
• Lone wolf working alongside other lone wolves
• No version control in proprietary software with custom “IDE” a.k.a. textarea.
• Last modified and modifier only
• No process of our own
41
![Page 42: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/42.jpg)
First professional code review experience was group review
• Subcontractor on government project, 2010-2012
• Lone SME on platform
• Borland StarTeam + in house review system
• My tools for version control integration
• Weekly merge window
• Round robin inspection
42
![Page 43: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/43.jpg)
43
![Page 44: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/44.jpg)
Not a pleasant experience• Three to four hour weekly round robin inspection
• Cutthroat mixture of competing contractors, subcontractors, and employees
• Embarrassment galore ☞ Not a learning environment
• Immediate defensive posture
• “Merge next week” = you failed, possibly delayed project
44
![Page 45: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/45.jpg)
$1,450 per hour
45
![Page 46: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/46.jpg)
$1,450 per hour$5,800 per weekly meeting
46
![Page 47: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/47.jpg)
$1,450 per hour$5,800 per weekly meeting$290,000 per year
47
![Page 48: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/48.jpg)
Effects?
• Waste
• “Get this over with.”
• Obstructionism
• Plenty of bugs
• “I’ll fix that mistake later.”48
![Page 49: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/49.jpg)
Missed opportunities• Accessibility expert was most vocal
• Project manager was vocal on contractual and HF matters
➡Both could have reviewed asynchronously
• Project was behind
➡Too many people could say No49
![Page 50: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/50.jpg)
SecurityCode review ensures
50
![Page 51: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/51.jpg)
Security
• Spot vulnerabilities
• Teach best practices
• Filter unnecessary code
• YAGNI
Code review drives
51
![Page 52: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/52.jpg)
Reviewers are like your lawyerScreening and recommending actions to minimize risk, avoid preventable mistakes
52
![Page 53: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/53.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems does code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations53
![Page 54: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/54.jpg)
When should you integrate code review?
54
![Page 55: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/55.jpg)
Context
• Project
• Technical
55
![Page 56: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/56.jpg)
Keep reviews informal and short.
56
![Page 57: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/57.jpg)
Tips for thorough code review
• Devote time
• Accept debt
• Identify churn
• Minimize pedantry
• Make progress57
![Page 58: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/58.jpg)
Major things we look for• Algorithmic complexity
• Exception & error handling
• Exception, class, & variable naming
• Logging sufficiency & level
• Style conformation (automate!)
• Long lines & methods
• Readability
• Single purpose per commit
58
![Page 59: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/59.jpg)
Most importantly
Does it work?Is it tested?
59
![Page 60: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/60.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems does code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations60
![Page 61: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/61.jpg)
Analyze dynamic structuresCode review cannot
61
![Page 62: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/62.jpg)
Go on endlesslyCode review cannot
62
![Page 63: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/63.jpg)
Solve political problemsCode review cannot
63
![Page 64: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/64.jpg)
Agenda• Quick anecdote
• What is code review?
• What problems do code review solve?
• Quality attributes code review ensures
• Tips for code reviews
• Limitations64
![Page 65: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/65.jpg)
Code Reviewis systemic examination of proposed changes to a codebase.
solves mental model synchronization and tribal knowledge development.
ensures maintainability, compliance, & security.
must be short, thorough, and automated where possible.
will not solve all human problems, but some is better than none.
65
![Page 66: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/66.jpg)
1,500+ software professionals in Pittsburgh in August
abstractions.io
@abstractionscon66
![Page 67: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/67.jpg)
@ColinDean
github.com/colindean/talks
speakerdeck.com/colindean
67
![Page 68: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/68.jpg)
FIN
68
![Page 69: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/69.jpg)
Attributions• Westminster College picture: https://www.flickr.com/photos/westminstercollege/15759678054/in/album-72157649340620016/
• RMU picture: http://cfbarchitects.com/higher-education/selected-projects/academic-buildings-libraries-learning-commons/robert-morris-university/
• Pittsburgh picture: probably Dave DiCello
• On switch https://openclipart.org/detail/180085/switch-on
• Off switch https://openclipart.org/detail/180084/switch-off
• “Their first code review” http://classicprogrammerpaintings.tumblr.com/post/142702963264/their-first-code-review-william-frederick
• Bass, Len; Paul Clements, and Rick Kazman. Software Architecture in Practice. Addison Wesley, 2013.
• Wiegers, Karl E. Peer Reviews in Software. Addison Wesley, 2012.
• Cohen, Jason, Steven Teleki, and Eric Brown. Best Kept Secrets of Peer Code Review. Smart Bear Software, 2006.
• Wilhelm, Alex and Alexia Tsotsis. Julie Ann Horvath Describes Sexism and Intimidation behind Her Github Exit. TechCruch, 2014 March 15. Retrieved 2016 April 26. http://techcrunch.com/2014/03/15/julie-ann-horvath-describes-sexism-and-intimidation-behind-her-github-exit/
• and others mentioned in the slides
69
![Page 70: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/70.jpg)
No, really. Fin. Srsly.
70
![Page 71: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/71.jpg)
Third out of school and current job -Engineering• Highly disciplined team using Java, Scala, and Groovy
• Git + Gerrit
• Constructively critical feedback
• No criticism without alternative solution and reasoning
• Wide experience range: 1-2 yrs to 25+ yrs
• Team split in late 2014, I was asked to be tech lead71
![Page 72: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/72.jpg)
Github Enterprise in 2016
• All new projects
• Same workflow as public Github
72
![Page 73: Code Review Is an Architectural Necessity · PDF fileReviewer - the people evaluating the submission ... and how code review enables these attributes in a system architecture. Created](https://reader036.vdocument.in/reader036/viewer/2022070608/5abb876c7f8b9a441d8cf36f/html5/thumbnails/73.jpg)
Code Review Tools
Used Haven’t Used
Like
Dislike
★Github★Gerrit★Gitlab
• Gitbucket• BitBucket
★StarTeam• Phabricator
• git-assess
73