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...
Saved in:
Published in | IEEE software Vol. 35; no. 4; pp. 34 - 42 |
---|---|
Main Authors | , , , , |
Format | Journal Article |
Language | English |
Published |
Los Alamitos
IEEE
01.07.2018
IEEE Computer Society |
Subjects | |
Online Access | Get full text |
ISSN | 0740-7459 1937-4194 |
DOI | 10.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 |