Code Reviewing in the Trenches: Challenges and Best Practices

Code review has been widely adopted by and adapted to open source and industrial projects. Code review practices have undergone extensive research, with most studies relying on trace data from tool reviews, sometimes augmented by surveys and interviews. Several recent industrial research studies, al...

Full description

Saved in:
Bibliographic Details
Published inIEEE software Vol. 35; no. 4; pp. 34 - 42
Main Authors MacLeod, Laura, Greiler, Michaela, Storey, Margaret-Anne, Bird, Christian, Czerwonka, Jacek
Format Journal Article
LanguageEnglish
Published Los Alamitos IEEE 01.07.2018
IEEE Computer Society
Subjects
Online AccessGet full text
ISSN0740-7459
1937-4194
DOI10.1109/MS.2017.265100500

Cover

Loading…
Abstract Code review has been widely adopted by and adapted to open source and industrial projects. Code review practices have undergone extensive research, with most studies relying on trace data from tool reviews, sometimes augmented by surveys and interviews. Several recent industrial research studies, along with blog posts and white papers, have revealed additional insights on code reviewing "from the trenches." Unfortunately, the lessons learned about code reviewing are widely dispersed and poorly summarized by the existing literature. In particular, practitioners wishing to adopt or reflect on an existing or new code review process might have difficulty determining what challenges to expect and which best practices to adopt for their development context. Building on the existing literature, this article adds insights from a recent large-scale study of Microsoft developers to summarize the challenges that code-change authors and reviewers face, suggest best code-reviewing practices, and discuss tradeoffs that practitioners should consider. This article is part of a theme issue on Process Improvement.
AbstractList Code review has been widely adopted by and adapted to open source and industrial projects. Code review practices have undergone extensive research, with most studies relying on trace data from tool reviews, sometimes augmented by surveys and interviews. Several recent industrial research studies, along with blog posts and white papers, have revealed additional insights on code reviewing “from the trenches.” Unfortunately, the lessons learned about code reviewing are widely dispersed and poorly summarized by the existing literature. In particular, practitioners wishing to adopt or reflect on an existing or new code review process might have difficulty determining what challenges to expect and which best practices to adopt for their development context. Building on the existing literature, this article adds insights from a recent large-scale study of Microsoft developers to summarize the challenges that code-change authors and reviewers face, suggest best code-reviewing practices, and discuss tradeoffs that practitioners should consider. This article is part of a theme issue on Process Improvement.
Author Bird, Christian
Greiler, Michaela
Czerwonka, Jacek
MacLeod, Laura
Storey, Margaret-Anne
Author_xml – sequence: 1
  givenname: Laura
  surname: MacLeod
  fullname: MacLeod, Laura
  email: laura.macleod@microsoft.com
  organization: Microsoft
– sequence: 2
  givenname: Michaela
  surname: Greiler
  fullname: Greiler, Michaela
  email: michaela.greiler@microsoft.com
  organization: Microsoft
– sequence: 3
  givenname: Margaret-Anne
  surname: Storey
  fullname: Storey, Margaret-Anne
  email: mstorey@uvic.ca
  organization: University of Victoria
– sequence: 4
  givenname: Christian
  surname: Bird
  fullname: Bird, Christian
  email: christian.bird@microsoft.com
  organization: Microsoft Research
– sequence: 5
  givenname: Jacek
  surname: Czerwonka
  fullname: Czerwonka, Jacek
  email: jacekcz@microsoft.com
  organization: Microsoft
BookMark eNp9kD1PwzAQhi1UJNrCD0AskZhTzo4dx0gMEPEltQLRMkeOc2ldBafYKYh_T6oiBgamW57n7r13RAaudUjIKYUJpaAuZvMJAyonLBUUQAAckCFViYw5VXxAhiA5xJILdURGIayhZ2gCQ3KVtxVGL_hh8dO6ZWRd1K0wWnh0ZoXhMspXumnQLTFE2lXRDYYuevbadNZgOCaHtW4CnvzMMXm9u13kD_H06f4xv57Ghqmki7lipZSiBJEirzNGwTBdJZVgmHHNwKQcy1rqUqtSQJpglUk0XDLR_8ZLnozJ-X7vxrfv2z5CsW633vUnCwZpKiATKfSU3FPGtyF4rAtjO93Z1nVe26agUOy6KmbzYtdV8dtVb9I_5sbbN-2__nXO9o5FxF9eqj6MlMk34N10GA
CODEN IESOEG
CitedBy_id crossref_primary_10_1007_s10664_023_10401_z
crossref_primary_10_3390_electronics12092113
crossref_primary_10_1007_s10664_024_10575_0
crossref_primary_10_1016_j_infsof_2020_106455
crossref_primary_10_1016_j_jss_2021_111009
crossref_primary_10_1016_j_scico_2021_102652
crossref_primary_10_1145_3512945
crossref_primary_10_1007_s10664_023_10300_3
crossref_primary_10_1007_s10664_025_10617_1
crossref_primary_10_1016_j_jss_2021_110951
crossref_primary_10_1016_j_infsof_2021_106737
crossref_primary_10_1007_s10664_018_9676_8
crossref_primary_10_1145_3696002
crossref_primary_10_1145_3697013
crossref_primary_10_1016_j_jss_2024_112101
crossref_primary_10_1016_j_jss_2024_112288
crossref_primary_10_1007_s10664_020_09909_5
crossref_primary_10_1002_smr_2750
crossref_primary_10_1007_s10664_022_10123_8
crossref_primary_10_1016_j_infsof_2022_107054
crossref_primary_10_1098_rspb_2022_1113
crossref_primary_10_1016_j_infsof_2024_107596
crossref_primary_10_1145_3544791
crossref_primary_10_1145_3585004
crossref_primary_10_1007_s00766_020_00334_0
crossref_primary_10_1145_3309157
crossref_primary_10_1007_s10664_024_10560_7
crossref_primary_10_1145_3672089_3672098
crossref_primary_10_1109_TSE_2024_3422369
crossref_primary_10_1007_s10664_024_10604_y
crossref_primary_10_1016_j_infsof_2021_106766
crossref_primary_10_1145_3680472
crossref_primary_10_3390_software3040025
crossref_primary_10_1007_s10664_023_10431_7
crossref_primary_10_1109_TSE_2021_3117590
crossref_primary_10_1007_s10664_020_09841_8
crossref_primary_10_1016_j_jss_2022_111506
crossref_primary_10_1093_aje_kwab092
crossref_primary_10_1109_TSE_2024_3356819
crossref_primary_10_1145_3555208
crossref_primary_10_1145_3660764
Cites_doi 10.1145/2491411.2491444
10.1145/2593702.2593705
10.1145/1134285.1134352
10.1109/ICSE.2013.6606617
10.1109/ICSE.2015.35
10.1109/MS.2012.24
10.1145/2568225.2568260
ContentType Journal Article
Copyright Copyright IEEE Computer Society 2018
Copyright_xml – notice: Copyright IEEE Computer Society 2018
DBID 97E
RIA
RIE
AAYXX
CITATION
JQ2
DOI 10.1109/MS.2017.265100500
DatabaseName IEEE All-Society Periodicals Package (ASPP) 2005–Present
IEEE All-Society Periodicals Package (ASPP) 1998–Present
IEEE Electronic Library (IEL)
CrossRef
ProQuest Computer Science Collection
DatabaseTitle CrossRef
ProQuest Computer Science Collection
DatabaseTitleList ProQuest Computer Science Collection

Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 1937-4194
EndPage 42
ExternalDocumentID 10_1109_MS_2017_265100500
7950877
Genre orig-research
GroupedDBID -DZ
-~X
.4S
.DC
0R~
29I
3EH
4.4
5GY
5VS
6IK
7WY
85S
88I
8FE
8FG
8FL
8G5
8R4
8R5
97E
9M8
AAJGR
AARMG
AASAJ
AAVXG
AAWTH
ABAZT
ABJCF
ABQJQ
ABUWG
ABVLG
ACGFO
ACGOD
ACIWK
AENEX
AETIX
AFKRA
AFOGA
AGCDD
AGQYO
AGSQL
AHBIQ
AI.
AIBXA
AKJIK
AKQYR
ALLEH
ALMA_UNASSIGNED_HOLDINGS
ARAPS
ARCSS
ASUFR
ATWAV
AZLTO
AZQEC
BEFXN
BENPR
BEZIV
BFFAM
BGLVJ
BGNUA
BKEBE
BKOMP
BPEOZ
BPHCQ
CCPQU
CS3
DU5
DWQXO
EBS
EDO
EJD
FRNLG
GNUQQ
GUQSH
HCIFZ
HZ~
H~9
I-F
IBMZZ
ICLAB
IEDLZ
IFIPE
IFJZH
IPLJI
ITG
ITH
JAVBF
K60
K6V
K6~
K7-
L6V
LAI
M0C
M1Q
M2O
M2P
M43
M7S
MS~
O9-
OCL
OHT
P2P
P62
PHGZM
PHGZT
PQBIZ
PQBZA
PQGLB
PQQKQ
PROAC
PTHSS
PUEGO
Q2X
RIA
RIE
RNI
RNS
RXW
RZB
TAE
TN5
UHB
UKR
UQL
VH1
WH7
YZZ
ZCG
AAYOK
AAYXX
ABGFU
CITATION
RIG
JQ2
ID FETCH-LOGICAL-c293t-492b775b056e4f8210c2ad3d52e84a20c64ebf7aba9b5063ed87ec47251104b43
IEDL.DBID RIE
ISSN 0740-7459
IngestDate Wed Aug 13 02:36:46 EDT 2025
Tue Jul 01 01:48:35 EDT 2025
Thu Apr 24 23:04:20 EDT 2025
Wed Aug 27 02:38:08 EDT 2025
IsPeerReviewed true
IsScholarly true
Issue 4
Language English
License https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/IEEE.html
https://doi.org/10.15223/policy-029
https://doi.org/10.15223/policy-037
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c293t-492b775b056e4f8210c2ad3d52e84a20c64ebf7aba9b5063ed87ec47251104b43
Notes ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
PQID 2066508560
PQPubID 37787
PageCount 9
ParticipantIDs crossref_citationtrail_10_1109_MS_2017_265100500
crossref_primary_10_1109_MS_2017_265100500
ieee_primary_7950877
proquest_journals_2066508560
ProviderPackageCode CITATION
AAYXX
PublicationCentury 2000
PublicationDate 2018-07-01
PublicationDateYYYYMMDD 2018-07-01
PublicationDate_xml – month: 07
  year: 2018
  text: 2018-07-01
  day: 01
PublicationDecade 2010
PublicationPlace Los Alamitos
PublicationPlace_xml – name: Los Alamitos
PublicationTitle IEEE software
PublicationTitleAbbrev S-M
PublicationYear 2018
Publisher IEEE
IEEE Computer Society
Publisher_xml – name: IEEE
– name: IEEE Computer Society
References greiler (ref5) 2016
ref8
ref7
ref4
ref3
ref6
ref2
tao (ref9) 0
petre (ref11) 2014
ref1
cohen (ref10) 2006
References_xml – ident: ref7
  doi: 10.1145/2491411.2491444
– year: 2016
  ident: ref5
  publication-title: Appendix to Code Reviewing in the Trenches Understanding Challenges Best Practices and Tool Needs
– ident: ref6
  doi: 10.1145/2593702.2593705
– ident: ref4
  doi: 10.1145/1134285.1134352
– year: 2006
  ident: ref10
  publication-title: Best Kept Secrets of Peer Code Review
– ident: ref1
  doi: 10.1109/ICSE.2013.6606617
– ident: ref8
  doi: 10.1109/ICSE.2015.35
– year: 2014
  ident: ref11
  publication-title: Code Review for and by Scientists
– year: 0
  ident: ref9
  article-title: How Do Software Engineers Understand Code Changes? An Exploratory Study in Industry
  publication-title: Proc ACM SIGSOFT 20th Int'l Symp Foundations of Software Eng (FSE 12)
– ident: ref3
  doi: 10.1109/MS.2012.24
– ident: ref2
  doi: 10.1145/2568225.2568260
SSID ssj0005130
Score 2.5108433
Snippet Code review has been widely adopted by and adapted to open source and industrial projects. Code review practices have undergone extensive research, with most...
SourceID proquest
crossref
ieee
SourceType Aggregation Database
Enrichment Source
Index Database
Publisher
StartPage 34
SubjectTerms Best practice
Best practices
code inspection
code walkthroughs
Context awareness
debugging
Encoding
Industrial research
Interviews
learning technologies
Object recognition
peer review
Product development
Reviewing
social technologies
software development
Software engineering
Stakeholders
testing
Trenches
Title Code Reviewing in the Trenches: Challenges and Best Practices
URI https://ieeexplore.ieee.org/document/7950877
https://www.proquest.com/docview/2066508560
Volume 35
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV3NS8MwFH9sO3lx6hSnU3LwJLbL2qRJBQ86HEOoCHOwW2nSFETpxHUX_3pf-jFFRYQeCk1KeC_p-72-jx_AWeAL2-dMOyn3MocFiXDC1OMOQ4gkKcer5AaM7oPpnN0t-KIFF5taGGNMmXxmXHtbxvLTpV7bX2VDYSlLhWhDGx23qlbrM51jVPKKoEWkjmA8rCOYIxoOo5lN4RKuF-AGpNwWs32xQSWpyo8vcWleJl2ImoVVWSXP7rpQrn7_1rPxvyvfge0aZ5LramPsQsvke9BtOBxIfaR7cDVepoZUEQK0YuQpJwgJiU2VtVRal2TcsK2sSJKn5AbXTh7q0qrVPswnt4_jqVNTKjga7XrhsNBTQnCFsMewTKK_p70k9VFRRrLEozpgRmUiUUmoOKIXk0phNBPWEaFMMf8AOvkyN4dAZBoI38-0DjW6cAFVIsgy7nPDpSc8KftAGyHHuu43bmkvXuLS76BhHM1iq5d4o5c-nG-mvFbNNv4a3LNy3gysRdyHQaPJuD6Oq9j2rMeniO6Ofp91DFv4dlnl4Q6gU7ytzQmijUKdltvsA4DyzEg
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LS8QwEB50PejF9Ymrq-bgSeyabZMmFTzo4rLqVgQVvJUmTUGUrrjdi7_eSV-Kigg9FJrQITPpfNPMzAdw4HvC9jnTTsLd1GF-LJwgcbnDECJJyvEquAHDG3_0wK4e-eMcHDW1MMaYIvnM9OxtcZafTPTM_io7FpayVIh5WEC_z_tltdZnQke_YBZBn0gdwXhQnWH2aXAc3tkkLtFzfTRBym052xcvVNCq_PgWFw5m2IawFq3MK3nuzXLV0-_fujb-V_YVWK6QJjkrTWMV5ky2Bu2axYFUm3odTgeTxJDyjAD9GHnKCIJCYpNlLZnWCRnUfCtTEmcJOUfZyW1VXDXdgIfhxf1g5FSkCo5Gz547LHCVEFwh8DEslRjxaTdOPFSVkSx2qfaZUamIVRwojvjFJFIYzYQNRShTzNuEVjbJzBYQmfjC81KtA41BnE-V8NOUe9xw6QpXyg7QepEjXXUct8QXL1ERedAgCu8iq5eo0UsHDpspr2W7jb8Gr9t1bgZWS9yBbq3JqNqQ08h2rceniO-2f5-1D4uj-3AcjS9vrndgCd8ky6zcLrTyt5nZReyRq73C5D4AWEDPkQ
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Code+Reviewing+in+the+Trenches%3A+Challenges+and+Best+Practices&rft.jtitle=IEEE+software&rft.au=MacLeod%2C+Laura&rft.au=Greiler%2C+Michaela&rft.au=Storey%2C+Margaret-Anne&rft.au=Bird%2C+Christian&rft.date=2018-07-01&rft.pub=IEEE&rft.issn=0740-7459&rft.volume=35&rft.issue=4&rft.spage=34&rft.epage=42&rft_id=info:doi/10.1109%2FMS.2017.265100500&rft.externalDocID=7950877
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0740-7459&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0740-7459&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0740-7459&client=summon