dev2017. 3. 21. 14:15

https://martinfowler.com/bliki/CodeOwnership.html


마틴 파울러 어르신께서 코드 오너쉽에 대해 쓴 글이 있어서 가져와봄.

파울러 횽아가 3가지 카테고리로 분류해주셨다.



Strong Code Ownership

잘게 잘게 모듈 단위로 다 쪼갠 후, 각각에 담당자를 지정.
해당 모듈은 담당자만 수정.
다른 사람의 모듈 수정이 필요하면, 담당자한테 요청하고 처리 될 때까지 대기. ㅋ


Weak Code Ownership

모듈을 쪼개서 각각에 담당자를 지정하는 건 동일.
그러나 모든 개발자는 타인의 모듈을 수정할 수 있음.
단, 담당자는 누가 뭘 수정하는지 항상 보고 있어야 함.


Collective Code Ownership

담당자 지정이라는 거 없고, 누구나 수정할 수 있다.
모든 코드는 개인이 아닌 팀의 오너쉽임을 강조한다.
Extreme Programming 에서 나온 개념.




strong code ownership 은 코드 수정할 때 타인의 코드를 건들 수도 있는데, 예를들면 public method 이름 변경 같은거 하나 수정하는데에도 대기와 지연이 발생하니 굉장히 비효율적이다.


weak code ownership 은 그런 문제점들을 가볍게 해결한다.
사람들은 자유롭게 수정하고, 담당자는 지켜보고 있으면 된다.


weak ownership 과 collective ownership 중 선택은 팀의 social dynamics 에 기반해서 결정하면 된다.

파울러횽은 Collective code ownership team 을 선호한단다.