이 가이드는 엔지니어링 시스템 개선을 위한 전략과 측정 항목을 추천하는 GitHub의 ESSP(엔지니어링 시스템 성공 플레이북)에서 영감을 받았습니다.
Copilot을 출시하려면 목표를 정의하고, 이에 따라 출시를 계획하고, 직원에게 목표를 명확하게 전달하는 것이 좋습니다. GitHub Copilot을 사용하여 회사의 엔지니어링 목표 달성을(를) 참조하세요.
1. 성공을 가로막는 장애 요인 식별
ESSP에서 권장하는 첫 번째 단계는 회사의 개선을 방해하는 장애물을 명확히 이해하는 것입니다. 현재 기준, 원하는 미래 상태, 진행을 방해하는 장벽을 이해하게 되면 발생하는 변화의 방향이 목표 지향적이고 효과적이라는 것을 확신할 수 있습니다.
팀이 진행하는 끌어오기 요청 병합이 긴 검토 주기로 인해 지연되는 경우가 많습니다. 이러한 지연은 종종 다음에서 비롯됩니다.
- 이해하기 어려운 복잡한 코드 변경
- 검토를 어렵게 만드는 일관성 없는 코드 서식
- 변경 내용과 함께 제공되는 일반적인 컨텍스트 부족
- 해결하는 데 오래 걸리거나 해결하기 어려운 검토를 초래하는 사회적 요인
검토자는 프로덕션 문제로 이어질 수 있는 작은 오류를 쉽게 놓칠 수도 있습니다.
이로 인해 개발 프로세스에서 병목 현상이 발생하며, 기능의 전반적인 전달이 느려지고 품질이 저하됩니다.
2. 옵션 평가
다음 단계는 1단계에서 확인한 장벽을 해결하기 위한 솔루션을 평가하고 합의하는 것입니다. 이 가이드에서는 GitHub Copilot이 사용자가 파악한 목표에 미칠 수 있는 영향에 대해 중점적으로 살펴보겠습니다. 새로운 도구를 성공적으로 출시하려면 문화와 프로세스도 바뀌어야 한다는 점을 명심하세요.
피드백을 수집하고 성공을 측정하기 위해 파일럿 그룹과 함께 새로운 도구와 프로세스의 평가판을 시험적으로 실행하게 됩니다. 평가판 중에 사용할 학습 리소스 및 메트릭에 대해서는 3. 변경 내용 구현 및 주시해야 할 메트릭 섹션을 참조하세요.
Copilot이 도움을 주는 방식
GitHub Copilot은 끌어오기 요청 검토 프로세스를 가속화하고, 코드 품질을 향상하고, 공동 작업을 개선하여 궁극적으로 병합 시간을 단축하도록 설계된 기능 모음을 제공합니다.
팀은 Copilot의 기능을 활용하여 워크플로를 간소화하고 마찰을 줄이며 일관된 고품질 코드를 보장할 수 있습니다.
완전하고 유용한 PR 요약을 생성합니다.
Copilot은 명확하고 간결한 PR 요약을 자동으로 생성하여 개발자 시간을 절약하고 검토자가 PR의 목적과 변경 내용을 쉽게 이해할 수 있도록 합니다. 이렇게 하면 오해의 가능성이 줄어들고 검토 프로세스가 빨라집니다.
검토 프로세스 중에 검토자를 지원합니다.
GitHub Copilot을 강력한 PR 검토 도우미로 사용할 수 있습니다.
- Copilot은 복잡한 코드 변경을 설명하는 데 도움이 되므로 검토자가 PR이 기여하는 내용을 더 빠르게 이해할 수 있습니다.
- Copilot은 GitHub의 끌어오기 요청 검토 인터페이스 내에서 직접 리포지토리 전체의 컨텍스트 인식 제안 및 잠재적 코드 개선 사항을 제공하여 검토자가 잠재적인 이슈를 파악하고 건설적인 피드백을 보다 효율적으로 제공할 수 있도록 지원합니다.
- Copilot은 검토자가 초안을 작성하고, 명확하고 일관되며 효과적인 검토 주석을 작성하는 데 도움이 될 수 있습니다.
조직 지침에 따른 검토
- Copilot은 끌어오기 요청을 열기 전에 IDE의 코드 변경 내용을 검토하거나 끌어오기 요청에 검토자로 할당될 수 있습니다.
- 규칙 집합을 사용하면 사용자 지정 기준에 따라 끌어오기 요청을 체계적으로 검토하도록 Copilot을 설정할 수 있습니다.
- 검토에 대한 코딩 지침(Copilot Enterprise에만 해당)을 사용하면 Copilot에서 조직의 코딩 표준 및 모범 사례를 적용하여 잠재적 위반에 자동으로 플래그를 지정하고 수정 사항을 제안할 수 있습니다.
이러한 기능은 코드베이스 전체에서 일관성을 보장하고 개발 프로세스 초기에 오류를 잡아내어 수동 코드 검토의 필요성을 줄이고 개발자 및 검토자를 위한 시간을 절약하는 데 도움이 됩니다.
코드 수정 제안
끌어오기 요청 검토 주석에 따라 Copilot은 끌어오기 요청 작성자가 검토를 해결하기 위해 필요한 코드 변경을 신속하게 구현하는 데 도움이 될 수 있습니다.
문화적 고려 사항
GitHub Copilot을 출시할 때, 목표 달성을 방해할 수 있는 사회적 또는 문화적 요소도 해결해야 합니다.
다음 예는 ESSP의 "Anti-Patterns" 섹션에서 가져온 것입니다.
- 팀은 릴리스하기 위해 너무 오래 대기하여 대량의 코드 배치를 한 번에 배포하게 될 수 있습니다. 이러한 현상은 빈번한 릴리스로 인한 불안정, CI/CD 파이프라인 완성도 부족 또는 엄격한 규정 준수 요구 사항 등에 대한 우려로 인해 발생할 수 있습니다.
- 개발자는 **코드를 완벽하게 다듬거나 ** 불필요한 기능을 추가하는 데 너무 많은 시간을 쓸 수 있습니다. 이것은 완벽주의 문화 또는 우선 순위를 효과적으로 지정하지 못한 상황으로 인해 발생할 수 있습니다.
- 개발자는 간단한 문제에 대해 지나치게 복잡한 솔루션을 구축할 수 있습니다. 불필요하게 미래를 대비하려는 욕구 또는 복잡성을 통해 가치를 추가해야 한다는 압력 때문에 이러한 상황이 발생할 수 있습니다.
3. 변경 내용 구현
장벽을 극복하기 위한 올바른 접근 방식을 파악하면 파악한 솔루션을 스케일링합니다. 새로운 도구 또는 프로세스를 성공적으로 도입하기 위해서는 도입의 각 부분에 소유권을 할당하고, 목표에 대해 투명하게 소통하고, 효과적인 교육을 제공하고, 성과를 측정하는 것이 중요합니다.
이 섹션에서는 개발자를 위한 예시 시나리오, 모범 사례, 리소스를 제공합니다. 이 섹션을 사용하여 직원들이 Copilot을 목표에 맞춰 사용할 수 있도록 돕는 커뮤니케이션 및 교육 세션을 계획하는 것이 좋습니다.
유용한 끌어오기 요청 요약 만들기
- 끌어오기 요청을 만들 때 "Add a description" 필드에서 Copilot 아이콘을 클릭한 다음, Summary를 클릭합니다.
- Copilot은 끌어오기 요청을 검색하고 산문에서 변경한 내용에 대한 개요뿐 아니라 영향을 주는 파일의 변경 내용 글머리 기호 목록을 제공합니다.
- Copilot의 설명이 만족스러운지 확인합니다.
- 검토자가 끌어오기 요청을 확인하게 되면 검토 의견을 남기기 위해 필요한 모든 컨텍스트를 파악하게 됩니다.
Copilot을 검토 도우미로 사용
검토자로서 끌어오기 요청으로 이동하면 Copilot을 사용하여 검토 속도를 높일 수 있습니다.
-
Copilot을 사용하여 끌어오기 요청의 변경 내용을 이해합니다.
-
Copilot에 파일 변경 내용을 요약해 달라고 요청합니다. 차이가 더 긴 경우에 특히 도움이 됩니다. 파일의 오른쪽 위 모서리에 있는 를 클릭하여 차이에서 특정 파일을 선택할 수 있습니다.
-
특정 줄의 변경 내용의 경우, 더 잘 이해하려는 줄을 강조 표시하고 Copilot에 변경 내용을 설명해 달라고 요청합니다. 먼저 맨 위 줄 번호를 클릭하고 Shift 키를 누른 다음, 차이의 맨 아래 줄을 클릭하여 줄 집합을 강조 표시할 수 있습니다.
-
-
Copilot과 협업하여 PR 검토를 진행합니다. Copilot에 요청하기 전에 대화에 특정 파일 차이를 첨부하는 것을 잊지 마세요.
-
Provide your judgement as a PR Reviewer, both for functional and non-functional aspects that these changes bring
이라고 프롬프트하여 Copilot에 PR 변경 내용에 대한 자체 의견을 물어볼 수 있습니다. 이 프롬프트는 Copilot에 코드의 기능적 측면과 비기능적 측면을 모두 고려하도록 요청하고 있습니다. -
사용자 고유의 PR 검토 주석을 보려면 두 번째 의견에 대해 Copilot에
As my peer reviewer on this pull request, give me your feedback on my own review: YOUR-REVIEW-COMMENT. Do you think it's pertinent? Am I missing something?
이라고 물어봅니다.
-
-
Copilot과 협업하여 검토 주석의 초안을 작성하고 수정합니다.
- Copilot을 사용하여 검토를 계획한 후,
Make a list of review comments to add to the PR and tell me exactly in which file diff and lines each comment should be added
와 같이 제공해야 하는 주석을 나열하도록 요청할 수 있습니다. Help me draft review comments as discussed
또는Refine this review comment to make it clear, concise, and actionable
과 같이 관심 있는 검토 주석의 첫 번째 초안을 만들거나 게시하기 전에 주석을 수정하도록 Copilot에 요청할 수도 있습니다.
- Copilot을 사용하여 검토를 계획한 후,
Copilot을 검토자로 추가
검토 시간을 줄이고 끌어오기 요청을 더 빠르게 병합하려면 Copilot 코드 검토를 체계적으로 사용합니다. 즉, 처음에는 끌어오기 요청을 열기 전에 IDE에서 검토한 다음, GitHub의 PR에서 검토합니다.
Copilot 코드 검토를 사용한다고 해서 사용자가 코드를 검토하지 않아도 되는 것은 아닙니다. 그러나 위의 단계를 수행하면 사용자가 검토를 더 빨리 완료하는 데 도움이 될 수 있습니다.
- 개발자는 끌어오기 요청을 열기 전에 Copilot 코드 검토를 사용하여 모든 변경 내용에 대한 검토를 요청해야 합니다.
- 관리자는 보호된 분기를 대상으로 하는 끌어오기 요청의 검토자로 Copilot을 자동으로 추가하도록 리포지토리 또는 조직 규칙 집합을 설정해야 합니다.
- 팀 리더는 Copilot이 검토에서 활용할 수 있도록 팀의 표준 스타일과 규칙을 캡처하고 조직에 대한 코딩 지침으로 설정해야 합니다.
- 코드 가독성을 높이는 최소한의 스타일 권장 사항을 코딩 지침에 적용하세요. 그러면 끌어오기 요청 검토 프로세스 중에 도움이 됩니다.
- 스타일 지정 이슈로 인한 PR 검토 주석의 양을 줄이려면 리포지토리 및 조직 수준에서 Copilot 지침에 동일한 권장 사항을 설정합니다. 이렇게 하면 Copilot에서 생성된 코드가 이러한 지침에 부합됩니다.
검토 주석 구현에 대한 도움말 보기
끌어오기 요청 작성자는 Copilot의 지원을 사용하여 수정 사항을 신속하게 구현하여 PR 검토 주석의 해결 속도를 높일 수 있습니다.
- Copilot이 남긴 검토 주석의 경우 제안된 수정 사항을 직접 커밋하거나 커밋하기 전에 Copilot 작업 영역에서 편집합니다.
- 피어가 남긴 검토 주석의 경우 PR 검토 주석과 관련된 파일 차이로 이동하여 Copilot Chat 대화에 차이를 첨부합니다. 그런 다음, 검토 주석을 복사하고
Suggest a fix for this review comment:
와 같은 프롬프트에 붙여넣습니다. - VS Code를 사용하는 경우 에이전트 모드의 GitHub Copilot에 검토 주석에서 필요한 변경 내용을 구현하도록 요청합니다.
개발자를 위한 모범 사례
개발자는 다음을 수행해야 합니다.
- 이슈를 조기에 잡아내고 해결하기 위해 푸시하기 전에 IDE에서 Copilot의 검토를 요청합니다.
- Copilot을 사용하여 PR 작성자가 이슈를 이해하고 해결하는 데 도움이 되도록 고유한 PR 검토 주석을 계획하고 수정합니다.
- 특정 코드 줄을 포함한 관련 차이 컨텍스트를 Copilot과의 대화에 연결합니다.
개발자는 다음을 수행해서는 안 됩니다.
- 테스트하지 않고 Copilot의 제안을 적용합니다.
- 검토에 Copilot만 사용합니다.
- 코드 가독성을 무시하지 마세요.
리소스
- GitHub Copilot을 사용하여 끌어오기 요청 요약 만들기
- GitHub Copilot 코드 검토 사용
- GitHub Copilot 코드 검토에 대한 코딩 지침 구성
- Copilot에서 자동 코드 검토 구성
- GitHub Copilot의 조직 사용자 지정 지침 추가
조사할 메트릭
새로운 도구의 평가판을 평가하고 전체 출시를 통해 일관된 개선 사항을 제공하는지 확인하려면 결과를 모니터링하고 필요한 경우에는 조정해야 합니다. 일반적으로 품질, 속도, 개발자의 행복이라는 핵심 영역을 고려하고 이러한 영역이 어떻게 모여 비즈니스 성과에 기여하는지 살펴보는 것이 좋습니다.
Copilot이 이 특정 목표에 미치는 영향을 평가하기 위해 살펴보기 좋은 몇 가지 지표는 다음과 같습니다.
- 개발자 만족도: 개발자 설문 조사를 사용하여 엔지니어링 도구에 대한 만족도를 측정합니다.
- 개발자당 병합된 끌어오기 요청: GitHub의
pull request
웹후크를 사용하여,action
이closed
이고pull request
개체 내의merged
속성이true
가 되도록 합니다. - 끌어오기 요청 리드 타임: PR 생성과 병합 사이의 평균 시간 길이를 측정합니다.