코드 검토시기


15

최근 스크럼 프로세스로 전환하여 스프린트 내에서 작업 및 사용자 스토리를 작업하고 있습니다. 우리는 코드 검토를 자주 수행하여 덜 까다롭게 만들려고합니다. 우리는 그것들을 사용자 스토리 수준에서 수행한다고 생각하고 있지만 이것을 설명하기 위해 코드를 분기하는 방법을 잘 모릅니다.

우리는 VS와 TFS 2010을 사용하고 있으며 6 명의 팀입니다.

현재 기능으로 분기하지만 스크럼의 분기로 변경하기 위해 노력하고 있습니다.

현재 선반 세트를 사용하지 않으며 사용 가능한 다른 기술이있는 경우 실제로 구현하고 싶지 않습니다.

사용자 스토리 당 코드 검토를 어떻게 구현하도록 권장합니까?

답변:


3

사용자 스토리의 특성에 따라 다릅니다.

각 사용자 스토리에 대한 브랜치를 생성하는 것이 효과적 일 수 있으며, 다른 스토리에 대한 진행률이 표시되며, 필요에 따라 전달 될 수 있으며, 스프린트에서 스토리가 완료되지 않은 경우 다음 스프린트를 위해 브랜치에서 진행 상태를 유지할 수 있습니다. . 그런 다음 사용 스토리 분기의 사용자 스토리 끝에서 최종 검토를 수행하고 코드가 표준 인 경우 병합 할 수 있습니다.

방식대로 작업하려면 스프린트 종료시 관리 할 수없는 병합 작업을 방지하기 위해 스토리를 세분화해야합니다. 작은 스토리는 다른 사용자 스토리를 작업하는 개발자가 지속적으로 가져와야하는 스프린트 (기본 VCM)를 통해 dev 분기를 꾸준히 업데이트 할 수있게합니다.

이로 인해 브랜치를 지속적으로 생성하고 병합해야하는 프로세스 오버 헤드가 발생하며 일부 경우 자동화 스크립트로 해결할 수 있지만 팀은 여전히 ​​VCS에 매우 익숙해야합니다.

스프린트가 끝나면 개발자 브랜치를 통합 / 프로덕션 등으로 병합합니다.

또한 모든 사람이 하나의 개발 지점에서 일하는 팀에서 근무했으며 사용자 스토리를 완료하면 코드가 해당 지점으로 푸시되어 검토 및 테스트되며 누군가가 개발 빌드를 방해하는 무언가를 푸시하면 팀 맥주를 가져와야합니다.


13

코드를 검토하는 가장 효과적인 방법은 일어 서서 누군가를 찾은 다음 방금 개발 한 코드에 대해 토론하도록 요청하는 것입니다.

코드를 로컬에서 검토 할 사람을 찾을 수 없으면 도구를 사용하지 마십시오.

페어링하여 코드 검토를 피할 수 있습니다.


누군가 페어링을 언급 할 때 궁금했습니다. 그와 단위 테스트 사이에서 많은 검토를받습니다.
JeffO

나는 이것을 "일어나고, 누군가를 해고하고, 방금 개발 한 코드에 대해 토론 해 보라고 요청한다"고 읽었습니다. 하루를 보내 주셔서 감사합니다.
Will Morgan

4

팀원 모두가 현지입니까? 그렇다면 코드를 체크인하기 전에 누군가에게 와서 살펴 보라고 요청하십시오. 좋아하는 화면 공유 프로그램을 시작하고 누군가에게 전화하십시오. 나는 개인적으로 이것을 자주한다. 가끔은 그냥 "이봐, 내가 한 짓을 봐!"

나는 누군가가 서서 코드를 팀에 제시하는 스타일보다이 특별 코드 검토 스타일을 선호한다. 임시 검토를 통해 어색함없이 페어링의 이점을 모두 (모든?) 얻을 수 있습니다. 또한 "검토 자"는 비공식적 인 일대일 환경에서 질문을하고 개선을 제안 할 가능성이 높습니다.


1

코드 검토는 SCRUM의 공식적인 부분이 아니라고 생각하지만, 개정은 품질을 달성하고 프로젝트 / 팀을 개선하기위한 독립적 인 전술입니다.

따라서 SCRUM (또는 기타 민첩한 개발 방법론)을 사용하여 PROJECT 품질을 보장 ​​/ 향상시키고 일정을 지키십시오. 또한 일반적인 QA / 테스트 작업에서 제품 수정 (코드가 아님)을 독립적으로 수행하는 것이 좋습니다. 이 활동을 팀 / 파트너 / 클라이언트 / 청중 앞에서 수행 할 수 있다면 더 좋습니다.

TEAM을 개선하기 위해 주로 중 / 장기 결과를 기대하는 코드 (또는 기타 특정) 개정판을 사용해야합니다. 이것은 프로젝트에 영향을 주지만 장기적으로 TEAM 개선의 결과물입니다.

따라서 귀하의 질문에 대답하기 위해, 나는 당신이 스크럼에서 너무 많은 것을 추진하려고한다고 생각하며, 수정은 그대로 유지하는 것이 좋습니다.


스크럼은 일정에 관해 아무 말이나 조언을하지 않습니다. 정기적으로 가치를 제공 할 것으로 기대합니다. 또한 프로세스를 더 잘 점검하기 위해 검사하고 적응할 수있는 순간을 제공합니다 (더 빠른 의미는 아님).
Ryan Cromwell

그렇습니다. 스크럼은 그 일부로서 전체 일정을 세우는 것을 언급하지 않습니다. 여전히, 나는 일정을 언급 할 때 "계획"을 의미했습니다. 계획은 고객이 주어진 시간에 약간의 가치를 기대한다는 것을 의미하므로 고객은 돈 대 가치 간의 교환을 수행 할 수 있습니다 (개발 / 프로그래밍 서비스를 제공한다고 생각하는 경우) ).
Ron-Damon

그 문제에있어서, 고객은 주어진 시간 (예를 들어, 당신에게 지불하기 위해)에 지출 할 예산을 가져야하고 참석할 일정이있을 수 있습니다. 나는 서비스 제공 업체로 일하기 때문에이 사실을 제쳐 놓을 수 없습니다.
Ron-Damon

계약을 제외하고 Scrum 팀은 가치가없는 서비스를 제공합니다. 우리는 그 가치를 전달하는 수단으로 개발 / 프로그램합니다.
Ryan Cromwell

"가치"와 "서비스"친구라는 용어를 분리 할 수 ​​있다고 생각하지 않습니다. 나는 또한 이것이 지금 매우 주제가 아닌 것으로 믿는다.
Ron-Damon

0

코드를 체크인하기 전에 코드 검토를 수행하는 것이 분명하지 않습니까?

TFS는 GIT처럼 작동하지 않으므로 지점이나 트렁크에 코드를 체크인 할 때마다 누구나 사용할 수 있습니다.

즉, 체크인시 검토가 이루어져야 변경 사항이 모든 작업 사본에 전파되지 않습니다.


나는 일반적으로 단위 테스트가 나쁜 변화를 막는 것이라고 생각합니다.
John Saunders

@John Saunders : 코드 검토를 다른 유형의 단위 테스트로 고려하십시오.
길버트 르 블랑

@ Gilbert : 그렇게 할 수는 있지만 회귀 테스트에 대한 이점을 얻지 못했습니다. 더 많은 단위 테스트를 작성하는 데 시간을 보내고 싶습니다.
John Saunders

@John Saunders, @Gilbert Le Blanc 코드 검토는 다른 개발자에 의해 수행되며, 단위 테스트는 일반적으로 원래 개발자에 의해 수행되며, 새로운 관점은 매우 중요합니다.

단위 테스트 (테스트 목록이 미리 합의 됨) 및 자동화 된 코드 분석, StyleCop과 같은 스타일 분석 도구와 결합되어 행운을 빕니다. 그러나 나는 종종 주니어 개발자와 함께 일하지 않습니다.
John Saunders
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.