1. 개요
2. 이슈란?
버그, 기능 구현 등을 포함한 업무의 단위이다. 이슈는 담당자 한사람이 맡아서 해결할 수 있는 구체적인 것으로 하는 것이 좋다. 나무위키를 예로 들자면 "모든 버그를 고친다" 혹은 "관리자를 대체할 인공지능을 만든다"(...) 등은 너무 광범위하거나 담당자 한명이 적당한 시간 안에 완료할 수 있는 일이 아니므로 좋은 이슈가 아니다. 반면 "아무개 문서의 아무개 문법 렌더링 이슈를 고친다"는 적절한 이슈로 볼 수 있다.
이슈는 다양한 추가 정보를 가진다. 이 정보들을 다양한 주체가 업데이트 하면서 이슈들을 관리하는 것이 이슈 트래커의 주된 기능이다. 어떤 정보들이 있는지는 이슈 트래커의 종류에 따라 차이가 있다.
이슈는 다양한 추가 정보를 가진다. 이 정보들을 다양한 주체가 업데이트 하면서 이슈들을 관리하는 것이 이슈 트래커의 주된 기능이다. 어떤 정보들이 있는지는 이슈 트래커의 종류에 따라 차이가 있다.
- 담당자: 이슈를 해결할 사람이다.
- 우선순위: 이슈의 우선순위. 담당자는 우선순위가 높은 이슈부터 해결하는 것이 원칙이다.
- 마감일: 이슈가 반드시 이 날짜까지는 해결되어야 하는 경우 집어넣기도 한다.
- 상태: 기본적으로 열림/닫힘으로 구분하고 그 외 세부적인 상태(작업 시작, 고쳐짐, 재현 불가 등)를 가지고 있기도 한다. 열린 이슈는 분석, 검토, 해결이 끝나지 않은 이슈, 닫힌 이슈는 해결되었거나 모종의 이유(재현 불가, 기술적으로 불가능, 중복 등)로 더 이상 검토할 필요가 없는 이슈이다.
그 밖에 글에 댓글을 다는 것처럼 내용을 추가하거나 사진을 업로드하는 등의 기능을 넣기도 한다.
3. 특징
- 변경 이력이 다 남는다. 제때 완료하지 못한 이슈에 대해 지워버리거나 축소/은폐할 수 없다.
- 이슈의 추가 정보로 필터링해서 깔끔하게 볼 수 있다. 내가 담당자인 이슈, 오랫동안 처리되지 않은 이슈 등을 필터링해서 볼 수 있기에 프로젝트 진행 상황을 파악하기 쉽다.
4. 사용 흐름
이슈 트래커 종류와 개발 문화에 따라 차이가 있을 수 있다. 여기서는 대략적인 흐름을 적는다.
- 이슈 등록: 사용자 혹은 품질관리팀이 발견한 버그 혹은 신규 기능을 추가한다. 담당자가 명확한 경우 지정하기도 하나 공란으로 남겨두는 일도 흔하다.
- 이슈 검토/분류: 등록된 이슈는 개발팀이 검토한다. 중복, 재현 불가, 해결 불가능한 이슈의 경우 이 단계에서 이슈를 닫는다. 개발팀에서 해결할 이슈의 경우 담당자, 우선순위, 마감일 등을 지정한다.
- 이슈 해결: 이슈가 해결되면 이슈를 닫는다. 담당자와 별개로 검증 담당자(Verifier)를 따로 두어 진짜로 이슈가 해결되었는지 검증하는 경우도 있다.
5. 종류
- Asana: 간결하고 유연한 프레임워크를 특징으로 하는 부분유료 이슈 트래커.
- Azure DevOps: 마이크로소프트에서 개발한 소프트웨어 개발용 통합 솔루션으로, Git 레포지토리와 지속적 통합, 칸반 보드, 프로젝트 위키, 그리고 이슈 트래커를 제공한다. 한 저장소당 5명의 사용자까지 무료로 이용할 수 있다. Azure DevOps를 클라이언트 기반으로 옮긴 Azure DevOps Server도 있는데, 기업이 직접 서버를 호스팅하고자 할 때 사용되며 이는 유료이다.
- GitLab: GitHub와 유사한 사이트로, 이슈 트래커 기능을 제공한다.