My guess is that people who work on small codebases with low-turnover teams (say, Redis or games like The Witness) would say “obviously you have to understand it completely, otherwise you can’t do good work”. I’d also guess that people who work on large codebases with high-turnover teams (say, the Google web search backend or GitHub) would say “obviously you can’t understand it completely, you just have to do the best you can in your local area”.

These are two largely different ways of programming with different methods, practices and cultures. However, the first group is over-represented in online discussion about software engineering. I want to defend the second group against the first.

  • Valmond@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    7
    ·
    13 hours ago

    I worked on a 1.8GB c/c++ codebase, split up on 720 something projects, all making a one monolithic software. There were loads of other code too like python, shellscrips, diverse databases, c#, you name it, you could probably dig it up somewhere.

    No one knew half of even a quarter of it all. Some parts were known to many, some parts were feared, some were known to nobody.

    Fantastic software but also having some of the most hilarious bugs provoked when developing.