우리는 최근에 웹앱 (자동 가입) 기능이 시작에 너무 차가워 졌다고 생각했기 때문에 경영진에 의해 연기되는 문제가 있었지만, 우리가 작업했던 다른 모든 기능을 적용하기를 원했습니다.
문제는이 기능이 다음 릴리스에서 라이브로 푸시 할 것으로 예상되는 다른 모든 기능과 함께 개발에 병합되어 일반적으로하는 것처럼 dev-> test-> master를 병합 할 수 없다는 것입니다.
이 문제를 어떻게 피할 수 있었습니까?
우리는 최근에 웹앱 (자동 가입) 기능이 시작에 너무 차가워 졌다고 생각했기 때문에 경영진에 의해 연기되는 문제가 있었지만, 우리가 작업했던 다른 모든 기능을 적용하기를 원했습니다.
문제는이 기능이 다음 릴리스에서 라이브로 푸시 할 것으로 예상되는 다른 모든 기능과 함께 개발에 병합되어 일반적으로하는 것처럼 dev-> test-> master를 병합 할 수 없다는 것입니다.
이 문제를 어떻게 피할 수 있었습니까?
답변:
한 가지 접근 방식은이를 표시하는 기능입니다. 코드베이스에 살 수 있지만 구성으로 비활성화 할 수 있습니다.
더 이상 개발되지 않도록 기능 병합을 되 돌리는 되돌리기 커밋을 만드는 또 다른 옵션입니다. 되돌리기를 되 돌리는 새로운 브랜치를 만들 수 있으며 나중에 병합하기 위해 남겨 둘 수 있습니다. Github 풀 요청을 사용하는 경우 병합 된 풀 요청의 "병합 되돌리기"버튼을 사용하여이 작업을 쉽게 수행 할 수 있습니다.
Feature Toggling
Doc Brown이 말한 것처럼 6 개월 이상 개발 된 기능이 숨겨져 있습니다. 또한 프로덕션 환경이 아닌 환경에서 기능을 테스트 할 수 있습니다. 때로는 이러한 기능이 기존 기능에 추가되므로 이전 기능 세트와 새 기능 세트 모두에 대한 단위 테스트가 필요합니다. 각 단위 테스트는 현재 테스트를 수행하는 데 필요한 모든 플래그를 설정합니다.
이 문제를 어떻게 피할 수 있었습니까?
프로세스 관점에서 다음을 파악하십시오.
그 과정에서 의사 소통이 떨어졌을 가능성이 큽니다. 작동하지 않을 때 개발 프로세스가 비즈니스 요구 사항에 대한 허위 및 잘못된 이해에 기초하기 때문에 이것이 중요합니다.
관리 문제를 잠시 잊어 버리고 최신 프로덕션 릴리스에 이미 "자동 가입 기능"이 있으며 코드베이스에 깊이 통합되어 있다고 상상해보십시오. 이제 "자동 가입"에 대한 "오프 스위치"를 추가해야하는 새로운 요구 사항이 생겼습니다. Git 워크 플로우에서이 문제를 어떻게 처리 하시겠습니까?
"구성에 의한 자동 가입 비활성화"를 단순히 추가 기능 ( Feature Toggle 의 한 형태)으로 선언하면 워크 플로에 원활하게 통합됩니다. 원하는 경우 기능 분기를 사용할 수 있거나 그러한 문제에 대해 기능 분기를 사용하지 않는 경우 노력을 추정 할 수 있습니다. 그리고 당신은 당신이 묘사 한 usal "merge dev-> test-> master"흐름을 확실히 사용할 수 있습니다.
그리고 이것이 실제로 현재 상황에서이를 처리 할 수있는 방법입니다. git 워크 플로의 관점에서 변경 요청이 릴리스 1.0 관리에서 온 것인지 또는 변경 요청이 릴리스 2.0에 대한 새로운 고객 희망인지는 중요하지 않습니다.
이것은 gitflow 및 GitHub 흐름에 대한 정확한 문제이며 웹 응용 프로그램에서는 일반적으로 또는 더 일반적으로 발생하는 것으로 보입니다. 이 문제를 소급하여 (위에서 언급 한) 선제 적으로 (아래 예) 해결하는 것 같습니다.
표준 gitflow 브랜치 외에도 '번들 브랜치'를 만들었습니다. 번들은 uat / qa에 준비된 모든 기능으로 구성됩니다. uat / qa 기능 목록이 작성됩니다. 이들은 임시 번들로 병합되고 해당 번들은 uat / qa에 배포됩니다. 버그 수정은 원래 기능 지점에서 발생하며 번들로 다시 병합되어 배포됩니다. 이를 통해 향후 릴리스를 분리하고 개발 지점으로가는 길을 찾기 전에 해당 기능을 함께 테스트 할 수 있습니다. 승인 된 지점은 gitflow 프로세스에 따라 개발 요청을받습니다. 테스트 준비 기능은 임시 번들 브랜치에 추가하거나 제거하여 재배치 할 수 있습니다.
번들 목록 관리 및 다른 브랜치 유형 추가; 그러나 너무 늦었다 고 생각하는 레트로 픽스 외에도 더 실용적인 해결책 인 것 같습니다.
GUI 애드온을 사용하면 자동화를 염두에두고 번들 배포 당 기능 분기를 선택하는 것이 가장 좋습니다.