- Perception of architectural consistency
- Perception of quality and robustness
- Willingness to adopt "new trends"
- Amount of technical debt
- Frequency of partial/total rewrites
- Operational complexity and costs
About a year ago I posted a few learnings from my own experience managing our codebase since its inception:
- https://thomasvilhena.com/2019/11/system-design-coherence
So I'm interested in your experience and learnings managing a long-term code base, both what your team did right and what went wrong.
Thanks in advance!
It is mostly team dependent... the company adopted a monorepo for the majority of its code and I think in the monorepo everything has a place and you know where to find. When you put merge requests it automatically CCs the team leads of that path of the mono repo.
Everything also either works together or doesn't through CI/Build. It uses a trunk driven development, the trunk of the repo is always released.
Also, avoid adding dependencies at all costs. Those are the hardest to maintain over long period of times.
It has worked well so far ...
It looks to me that adherence to very strict standards made the code very maintainable today. The standards are precisely defined by a multi-team committee. This is combined with just enough careful evolution of the codebase over the years to use more current tools and libraries.