Mittwoch, 17. Juli 2019

Code ownership - Quality vs Flexibility

Martin Fowler describes three different models of code ownership:
  • Strong code ownership
    "Strong code ownership breaks a code base up into modules (classes, functions, files) and assigns each module to one developer. Developers are only allowed to make changes to modules they own ..."
  • Weak code ownership
    "Weak code ownership is similar in that modules are assigned to owners, but different in that developers are allowed to change modules owned by other people. Module owners are expected to take responsibility for the modules they own and keep an eye on changes made by other people ..."
  • Collective code ownership
    "Collective code ownership abandons any notion of individual ownership of modules. The code base is owned by the entire team and anyone may make changes anywhere ..."
I'm agree with him when he says "Personally I prefer the dynamics of a collective code ownership team" - but only if you have a "team" in mind like a Scrum team of 4-6 Developers (+ ScM & PO) and not a whole department (> 30 developers) - as some people may believe. In general, these three code ownership models are a trade-off between quality and flexibility. I think the trade-off is manageable within a small team but gets out of control when the number of people changing code increases.

Keine Kommentare:

Kommentar veröffentlichen