Code Ownership: Keeping the balance between structure and agility
코드 소유권은 팀을 활성화하고 개발자가 변경에 따른 오버헤드를 낮추면서 시스템을 개선할 수 있도록 하는 데 있어 중요한 주제입니다.
오늘날 대부분의 기업은 개별적인 코드 소유권이 지식 사일로를 만들고 조직을 개인에게 의존하게 만들기 때문에 좋지 않다는 데 동의하겠지만, 대규모 조직에서는 여전히 코드 소유권이 필수적입니다.
Martin Fowler는 짧은 글 코드 소유권에서 코드 소유권은 세 가지 범주를 명시했습니다:
앞서 언급했듯이 개별 코드 소유권은 약하든 강하든 모듈을 책임지고 해당 모듈에 대해 가장 많은(또는 유일한) 지식을 가진 한 명의 개발자에 대한 의존성을 유발하므로 매우 부적합합니다.
따라서 모듈은 항상 모듈에 대해 공동으로 책임감을 느끼는 팀이 소유해야 합니다. 팀원은 다른 팀원에게 허락을 구하지 않고도 모듈을 변경할 수 있으므로 지연 없이 모듈을 개선할 수 있습니다.
그러나 팀 내 지식 공유는 매우 중요한데, 사람들이 전혀 모르는 코드에 대해 책임감을 느끼기를 기대할 수 없기 때문입니다. 따라서 쌍 또는 팀 프로그래밍의 공동 편집은 팀의 많은(이상적으로는 모든) 사람들이 모듈에 대한 책임감을 느낄 수 있도록 하는 좋은 접근 방식입니다.
동기식 공동 작성 및 공동 편집[페어 프로그래밍을 말하는 듯하다.]이 불가능하다면 최소한 코드 리뷰나 기타 비동기식 방법을 통해 모듈의 진화에 대한 지식을 공유할 수 있습니다.