Advantages and Disadvantages of a Monolithic Codebase

From AcaWiki
Jump to: navigation, search


Citation: Ciera Jaspan, Matthew Jorde, Andrea Knight, Caitlin Sadowski, Edward K. Smith, Collin Winter, Emerson Murphy-Hill (2018) Advantages and Disadvantages of a Monolithic Codebase.



Download: https://ai.google/research/pubs/pub47040

Tagged: google (RSS)


Summary:

Interviews software engineers at Google, a company using a monorepo (paper defines criteria for what constitutes a monorepo) and analyzes access logs for tool use at Google to answer research questions:

(1) What do developers perceive as the benefits and drawbacks to working in a monolithic versus multi-repo environment?

(2) To what extent do developers make use of the unique advantages that monolithic repos provide?

Results highlight 5 themes:

  1. The visibility of a monolithic repo is highly impactful
  2. Developer tools may be as important as the type of repo
  3. There is a tension between consistent style and tool use with freedom and flexibility of the toolchain
  4. There is a tension between having all dependencies at the latest version and having versioned dependencies
  5. Reducing cognitive load is important, but there are many ways to achieve this

1-5 all contribute to RQ1, while RQ2 is most clearly answered by 1: developers frequently search across monorepo, including outside common libraries and area of responsibility...highlighting 2 and 5, search and dependency management can be achieved with multi-repos, with the right tooling.

Users search across monorepo frequently