저는 상당히 큰 민첩한 팀의 소프트웨어 개발자입니다 (8 명의 개발자가 적극적으로 단일 코드 저장소를 변경하고 있음). 2 주마다 새로운 버전의 소프트웨어를 프로덕션 환경으로 푸시합니다. 현재 작업 과정은 다음과 같습니다.
- 새로운 작업을 시작할 때 개발자는 기본 개발 지점에서 "기능 지점"을 만들고 ( git 사용 )이 새로운 지점에서 작업합니다.
- 개발자가 작업 작업을 완료하면 기능 분기를 다시 개발 분기로 병합
- 개발자는 개발 지점을 QA 지점으로 병합합니다.
- QA 브랜치에서 빌드가 트리거됩니다. 이 빌드의 출력은 QA 환경에 배포되어 테스터가 테스트를 시작할 수 있습니다.
테스터가 QA 지점에 통합 된 새로운 기능과 관련된 문제를 찾는 것이 일반적입니다. 즉, QA 환경에는 테스트 및 버그가없고 고장난 몇 가지 새로운 기능이 포함되어있을 수 있습니다. QA 빌드가 프로덕션 준비 상태 인 경우는 드물기 때문에 릴리스하기가 어렵습니다.
이를 완화하기 위해 개발자는 출시 2 일 전에 개발자가 개발 지점을 QA 지점으로 병합하지 않는 "QA 동결"을 시작하려고했습니다. QA 환경에 대한 버그 수정은 QA 브랜치에서 직접 이루어지며 개발 브랜치로 병합됩니다. 이론적으로 이것은 QA에서 새로운 깨진 기능을 유지하면서 QA에서 이미 문제를 해결할 수 있습니다.
이 "QA 동결"개념이 부분적으로 성공했지만 조정하기가 어렵고 사람들이 QA에 병합 할 수 있는지에 대해 종종 혼란스러워합니다. "QA 동결"마감일을 정하기도 어려웠습니다. 모두가 동결과 릴리스 사이에 숨을 쉬는 방에 대한 아이디어를 좋아하지만 실제로는 다음 릴리스에서 마감일을 지키는 것보다 기능이 더 좋습니다.
격주로 릴리스를 깔끔하게 빌드 할 수있는 더 좋은 방법이 있습니까?