귀하와 대부분의 답변자들은 두 동료 간의 의사 소통 문제로이 문제에 접근하지만 실제로는 그렇지 않습니다. 당신이 묘사하는 것은 다른 어떤 것보다 끔찍한 코드 검토 프로세스 와 비슷합니다 .
먼저, 동료가 두 번째 명령이며 코드를 검토 할 것으로 예상됩니다. 그건 잘못이야 정의에 따르면 피어 코드 검토는 계층 적이 지 않으며 결함을 찾는 것이 아닙니다. 또한 학습 경험 (관련된 모든 사람에게), 사회적 상호 작용의 기회를 제공하고 집단 코드 소유권을 구축하는 데 유용한 도구를 입증 할 수 있습니다. 또한, 때때로 자신의 코드를 검토 그에게서 배우고 자신이 잘못 할 때 (아무도 바로 그것을 얻을 수없는 그 수정해야 모든 시간).
또한 동료가 즉시 변경한다고 언급합니다. 그것은 또한 잘못이지만, 물론 이미 알고 있습니다. 그의 gung ho 접근법이 문제가되지 않았다면이 질문을하지 않았을 것입니다. 그러나 나는 당신이 잘못된 곳에서 해결책을 찾고 있다고 생각합니다. 완벽하게 정직하게 말하면, 당신의 동료는 저를 조금 생각 나게합니다. 저와 비슷한 상황에서 저에게 효과가 있었던 것은 잘 정의되고 탄탄한 검토 프로세스와 멋진 도구 세트였습니다. 동료가 코드를 검토하지 못하게하고 모든 작은 변화가 실제로 작동하지 않기 전에 중지하고 대화하도록 요청하는 것은 아닙니다. 잠시 동안이 될 수도 있지만, 그는 곧 너무 성가신 지점에 도달하여 시작한 곳으로 돌아갈 수 있습니다. 심지어 코드 검토를 중단합니다.
여기서 해결책의 핵심은 피어 코드 검토 도구 일 수 있습니다. 나는 일반적으로 제품 권장 사항을 피하지만 코드 검토를 위해 Atlassian 's Crucible정말 생명의 은인입니다. 그것이하는 것이 매우 단순 해 보일 수도 있지만 그것이 놀라운 일이 아니라는 것을 의미하지는 않습니다. 리포지토리에 연결하여 개별 변경 세트, 파일 또는 파일 그룹을 검토 할 수있는 기회를 제공합니다. 코드를 변경할 필요가 없으며, 옳지 않다고 느끼는 모든 것에 대해 언급하십시오. 다른 사람의 코드를 절대 변경해야하는 경우 변경 사항을 설명하는 변경 세트와 함께 간단히 의견을 남길 수 있습니다. Crucible의 제품 페이지에있는 소개 비디오는 자세한 내용을 원한다면 볼 가치가 있습니다. Crucible의 가격은 모든 사람을위한 것이 아니라 무료로 제공되는 동료 검토 도구가 많이 있습니다. 내가 함께 작업하고 즐겼던 것은 Review Board 이며 간단한 Google 검색으로 많은 사람들을 찾을 것이라고 확신합니다.
어떤 도구를 선택하든 프로세스가 완전히 변경됩니다. 멈출 필요가없고, 의자에서 내리고, 다른 사람을 방해하고 변경 사항을 논의 할 필요가 없습니다. 당신이해야 할 모든 것은 매주 시간을 정하고 의견을 검토하는 것입니다 (일주일에 한 번만 제안입니다. 당신은 나보다 일정과 일상을 잘 알고 있습니다). 더 중요한 것은 핵심 리뷰가 데이터베이스에 저장되어 언제든지 검색 할 수 있다는 것입니다. 그들은 워터 쿨러에 대한 임시 토론이 아닙니다. 이전 리뷰에서 내가 가장 좋아하는 사용 사례는 코드 팀에 새 팀원을 소개 할 때입니다. 우리가 정확히 어디에 붙어 있는지, 다른 의견을 가지고 있는지 등을 지적하는 코드베이스를 통해 새로운 누군가를 걸을 수 있다면 항상 좋습니다.
계속해서이 동료의 코드를 항상 읽을 수있는 것은 아닙니다. 그것은 일반적인 코딩 표준이 없다는 것을 알려주며 나쁜 일입니다. 다시 한 번 사람 문제로 접근하거나 프로세스 문제로 접근 할 수 있으며, 후자를 강력히 제안합니다. 팀을 구성하고 가능한 빨리 공통 코딩 스타일과 표준 세트를 채택하십시오. 개발 에코 시스템에서 공통적 인 표준 세트를 선택했거나 자체 표준을 수립하더라도 문제가되지 않습니다. 실제로 중요한 것은 표준이 일관되고 표준을 준수하는 것입니다. 거기에 많은 도구가 도움이 될 수 있지만 완전히 다른 토론입니다. 시작하기 위해 매우 간단한 작업은 사전 커밋 후크가 코드에서 일종의 스타일 포맷터를 실행하는 것입니다. 원하는대로 코드를 계속 작성할 수 있으며 다른 사람이보기 전에 도구가 자동으로 "수정"하도록 할 수 있습니다.
마지막으로 당신에 언급 코멘트 관리는 개별 dev에 지점이 필요하다 생각하지 않습니다. 우리가 "관리 지점"이 아니라 "개발 지점"이라고 부르는 이유가 있습니다. 머릿속에 형성되는 돌풍이 나올 이유가 없기 때문에 여기서 멈출 것입니다.
모든 말은, 나는 당신의 동료가 여기에 잘못 있다고 의심하지 않습니다. 그것은 나의 요점이 아니며, 나의 요점은 전체 개발 프로세스가 잘못되었다는 것입니다. 그것은 수정하기가 더 쉽습니다. 적절한 도구를 사용하여 수많은 공식 및 비공식 프로세스를 탐색하고 팀에 적합한 프로세스를 선택하십시오. 머지 않아 대부분의 "사람 문제"가 더 이상 존재하지 않는다는 것을 알게 될 것입니다. 그리고 "우리는 작은 팀이므로 모든 것을 필요로하지 않는다"고 변명하는 사람 (자신 포함)의 말을 듣지 마십시오. 유능한 개발자 팀은 일주일 이내에 필요한 도구를 설정하고 자동화 할 수있는 모든 것을 자동화하며 다시 돌아 보지 않을 수 있습니다.
추신. "코드 소유권"은 끊임없는 논쟁을 불러 일으키는 용어로, 사람들마다 다른 것을 의미합니다. C2 에 대한 상이하고 때로는 반대되는 의견의 대부분을 훌륭하게 찾을 수 있습니다 .