우리 회사에서는 민첩한 사례로 성공적으로 작업했지만 반복을 사용하지 않았습니다. 주된 이유는 반복주기에서 QA에 맞는 확실한 방법을 찾을 수 없기 때문입니다.
QA는 이 빌드가 고객에게 배포되기 전에 특정 빌드 (릴리스 후보)에 대한 추가 검증 비트로서 QA를 이해 합니다. 요점은 단일 악성 커밋이 전체 릴리스를 손상시키지 않도록하는 것입니다. 어떤 버전인지 알 수 없으므로 QA는 릴리스에 대한 모든 기능 / 커밋이 빌드에 있을 때까지 기다려야 합니다. ( '작은 변화 일뿐'이라는 유명한 마지막 단어는 허용되지 않습니다.)
QA가 릴리스 후보에서 버그를 발견하면 개발자는 해당 릴리스 분기에서 이러한 버그를 수정하고 트렁크에 병합합니다. 모든 버그가 수정되면 QA가 다시 테스트 할 수 있도록 새로운 빌드가 배포됩니다. 특정 릴리스 후보에서 버그가 발견되지 않은 경우에만 고객에게 검증을 위해 제공됩니다.
일반적으로 릴리스 당 약 1 주일에 2 ~ 3 명의 후보가 필요합니다. 수정 사항 작성 시간은 일반적으로 테스트 노력보다 훨씬 적습니다. 따라서 개발자를 바쁘게 유지하기 위해 릴리스 N + 1에서 작업하고 QA는 N에서 작업합니다.
반복을 사용하지 않으면 릴리스 N 및 N + 1에 대한 작업이 겹칠 수 있으므로 문제가되지 않습니다. 그러나 내가 이해 한 바에 따르면 Scrum 또는 XP와 같은 반복 기반 접근 방식과 호환되지 않습니다. 그들은 반복에 포함되는 모든 테스트 노력과 함께 마지막에 릴리스를 해제 할 수 있어야합니다.
이것이 필연적으로 다음과 같은 원치 않는 결과 중 하나를 초래한다는 것을 알았습니다.
(A) QA는 릴리스 후보를 확인하는 데 시간이 필요하고 버그 수정 작업으로 개발자가 바쁘게 행동하지 않기 때문에 개발자는 반복 종료시 유휴 상태입니다.
(B) QA는 첫 번째 출시 후보가 준비되기 전에 이미 작동하기 시작합니다. 이것이 Stack Exchange에서 주로 권장되는 사항입니다. 그러나 테스트 할 특정 릴리스 후보가 없기 때문에 회사가 QA로 이해하는 것은 아닙니다. 그리고 모든 것을 깨는 "작은 변화"는 여전히 눈에 띄지 않게 소개 될 수 있습니다.
(C) 버그는 다음 반복으로 넘어갑니다. Stack Exchange에서도 권장됩니다. 나는 그것이 전혀 해결책이라고 생각하지 않습니다. 그것은 기본적으로 버그 수정이 이루어질 때마다 확인되지 않은 새로운 커밋이 같은 브랜치에 추가되기 때문에 검증 된 빌드를 얻지 못했음을 의미합니다.
이 딜레마를 벗어날 수있는 방법이 있습니까?