A complete guide to Codebase Ownership
Code ownership is tied to all of these questions. Measuring & shaping it reaps the long-lasting benefits for your organization.
Practical knowledge can only be gained through work:
Codigy detects behavior patterns of both these events through git and builds an interactive Confidence Map for you. Here are the most important concepts to grasp:
Responsibility shared between teams
Codigy seeks ultimate maintainability, which dictates that a file should have a single purpose. If a file is actively modified by two or more teams, it's an indicator that it should be split.
Overcrowded areas
The whole purpose of the digital workspace is to allow people to work simultaneously without interfering with each other.
Splitting such files will increase the reliability and maintainability of this area.
Owners & Co-owners
Engineers who have recently introduced or modified a significant portion of the area.
Owners ensure order & co-owners increase knowledge resilience. As long as they belong to the same team, having these two roles within an area is ideal.?
Occasional contributors
Exactly as the name suggests, engineers who have some working understanding of the file through more or less regular contributions.
They don't directly contribute to the reliability of maintainability of the codebase, unless:
Micro changers
Multiple contributors are doing small, sporadic changes? It's a clear smell of architectural coupling.
领英推荐
You can verify this through the Maintainability map, and consider splitting the file to increase the maintainability of your product.
Lost knowledge
Areas of the codebase that weren't modified over 6 months or owned by contributors who left the team.
A continuously growing amount of lost knowledge is an alarm bell for long-term product resilience.
Practical instruments of improvement:
Code splitting & strong review culture are the quickest remedies. In some cases, more advanced interventions are needed:
The Confidence map is an x-ray lens of knowledge sharing and ownership within your organization.?
Team behavior patterns within the codebase are tightly related to maintainability, acting on Confidence insights will lead to architecture with higher efficiency.
FAQ:
How is the map structured?
The map file hierarchy and metrics are based on a selected long-lived branch i.e. Main or Staging (depending on your process).
How often map is updated?
The map is updated with every commit/merge into the selected long-lived branch.
What about files that are not expected to change??
A confidence map is intended for code areas that are maintained by your teams. External libraries, autogenerated & binary files can be excluded from analytics.
---
Questions & discussions are always welcome in the comments or in our Community Discord channel ?? https://discord.gg/h74vjkY