Too many cooks spoil the broth

The most important thing I have learned by developing in a quite huge team on the same project over multiple years is that “Too many cooks spoil the broth”.


Situation
– There were no real maintainer of the modules
– The developers worked everywhere in the code
– Code reviews happened without a real system

Pro:
– The workload was getting spread evenly
– Every developer had a cross module knowledge

Con:
– The code was a mess quite quickly and it got worse
– Every developer knew just parts of every module


Solution
– Assign maintainer for the modules (primary / secondary)
– Most changes should come from their maintainer if possible
– If they haven’t done the changes they should review them

Pro:
– The code is quite consistent and not such a mess
– The maintainer know their modules really good

Con:
– The workload isn’t spread evenly all the time
– The developers don’t have a cross module knowledge