JIRA 와 소스코드를 연동해 보시겠습니까?

JIRA 연동 (Part 1): Crucible 소스코드 리뷰와 JIRA issues 연동



Giancarlo LionettiCrucible 에 대해 이야기 합니다.


이것은 JIRA 와 다른 개발도구들의 연동에 관한 첫번째 이야기 입니다.
우선 소스코드리뷰와 이슈에 대해 먼저 이야기 하겠습니다.


소스코드 리뷰(Code Review)와 이슈




거의 대부분의 소프트웨어 개발팀은 여러가지 타입의 이슈 트래커를 사용합니다. 그러나 그 중 아주 일부만이 소스코드 리뷰를 수행합니다. 다시말해 그만큼 소스코드 리뷰는 어려운 것입니다.
소스코드 리뷰를 적용하려는 팀은 넘어야할 공통적인 장벽이 있습니다:



  • 개발자를 혼란스럽게 하지 말것

  • 이슈와 같이 동시에 처리하지 말것

  • 프로세스의 변경사항을 적용할 것


Atlassian 의 소크코드 리뷰툴인 Crucible(Crucible code review) 은 인라인 커멘트, 커밋 이전/이후 리뷰 그리고 Atlassian의 JIRA issue tracker와 의 동기화를 통해 비동기적인 소스코드 리뷰를 부담없이 웹 기반으로 처리할 수 있도록 도와줍니다.

더 낳은 지식의 공유와 협업에 추가로, 소스코드 리뷰의 큰 목적 중 하나는 위험요소를 찾아내는 것입니다. Crucible을 통해 소스내의 위험요소를 찾아 JIRA의 이슈와 연결하여 버그가 그대로 릴리스 되기 전에 행동을 취할 수 있는 것입니다.


JIRA와 Crucible 연동




아래 비디오를 보시고 어떻게 JIRA와 Crucible을 연동하여 여러분의 소프트웨어 품질을 개선시킬 수 있는지 확인해 보십시요.



  • JIRA에서 초기 Crucible 소스리뷰 - JIRA에서 한번의 클릭으로 바로 리뷰 시작.

  • 서브작업으로 링크 댓글 - 리뷰에 댓글을 추가할 때, 한번의 클릭으로 관련된 JIRA 이슈에서 서브작업 생성.

  • Crucible 에서 서브작업 해결 - 댓글과 서브작업이 한번 연결되면, Crucible 및 JIRA 양쪽 어디서든 이슈 해결을 할 수 있으며, 한곳에서 업데이트 된 내용은 다른곳에도 자동으로 갱신됩니다. 이것은 JIRA에서 이슈의 상태를 업데이트 하기 위해 Crucible을 빠져나올 필요가 없다는 것을 의미합니다.



JIRA에서 소스코드리뷰와 Crucible 에서의 이슈에 대한 소스리뷰 정보 - 소스리뷰 댓글은 자동으로 링크된 JIRA 이슈와 연결됩니다. 또한 모든 리뷰 세부사항을 포함하는 Crucible 탭도 있습니다. JIRA 이슈에 대한 세부사항은 이슈키 위에 마우스를 움직이면 자동으로 리뷰에서도 확인이 가능합니다.



http://tvpot.daum.net/clip/ClipViewByVid.do?vid=GO4l1eLfjPU$




JIRA 연동 (Part 2): FishEye를 통한 소스코드와 JIRA issues 연동



Giancarlo LionettiFishEye 에 대해 이야기 합니다.

이번은 2번째 내용으로 여러분의 이슈와 연관된 소스코드를 연동하는 방법에 대해 이야기 하도록 하겠습니다.



소 스코드와 이슈(Source Code and Issues)




개발도구 상자를 열면 2가지는 찾을 수 있을 것입니다. - 이슈 트래커와 소스코드 관리툴(SCM) 입니다.

이러한 툴의 연동은 소스코드를 수정하는 것이 현재 진행중인 프로젝트의 진행상황에 어떻게 영향을 미치는지 큰 그림을 보여줄 수 있습니다.

JIRAAtlassian's FishEye와 연동하여 Subversion, Perforce, CVS, GIT 혹은 ClearCase 소스저장소에 대한 여러 가시적인 뷰기능을 제공합니다.


JIRA와 FishEye 연동




아래의 비디오를 보시고 어 떻게 JIRA와 FishEye가 연관되어 이슈에 영향을 주는 소스코드를 이해하기 쉽게 도와주는지를 확인하십시요.



  • JIRA 이슈와 연관된 소스코드에 대한 뷰기능 - FishEye 플러그인은 JIRA를 통해 한번의 클릭으로 소스코드 저장소의 뷰를 볼 수 있도록 해 줍니다. - 프로젝트와 이슈레벨에서 소스와 그 변경사항을 바로 확인 가능합니다.

  • 활 동내역 (Activity Streams) - 스트림은 사용자의 SCM 과 함께 연과된 JIRA, Crucible 에서의 활동 내역을 보여줍니다. RSS 피드는 Confluence와 같은 다른 장소에서 원하는 리더를 통해 이러한 정보를 보이도록 할 수 있습니다.

  • JIRA와 FishEye의 상호 연결 - JIRA와 FishEye를 사용할 때 문맥전환은 없습니다. JIRA에서 한번의 클릭으로 바로 체인지셋이나 Diff (소스 변경내용), 혹은 FishEye의 소스리뷰로 바로 이동할 수 있습니다. 또한 FishEye는 체인지셋과 연관된 이슈의 세부정보를 제공합니다.

http://tvpot.daum.net/clip/ClipViewByVid.do?vid=WFc36iJK49o$


JIRA 연동 (Part 3): Bamboo 빌드와 JIRA issues 연동




Giancarlo LionettiBamboo에 대해 이야기 합니다.

이전 내용에 저희는 JIRA 와 소스코드리뷰(code reviews) 를 위한 Crucible 연동 (part 1) 과 소스저장소 연동(source control integration) 을 위한 FishEye 연동 (part 2) 에 대해 알아보았습니다. 이번에는 JIRA를 어떻게 자동으로 빌드 프로세스를 수행하는 CI (continuous integration) 툴인 Bmaboo 와 연동하는지 알아보겠습니다.


빌드와 이슈(Builds and Issues)




연속적 통합(Continuous integration)은 빠른 피드백을 개발자에게 제공하여 소스코드의 변경사항이 수행중인 빌드에 어떤 영향을 주는지와 소스코드가 소스관리 시스템에 커밋되었을때마다 테스트된 결과를 알려줍니다.

Bamboo는 사용하기 쉬운 연속적 통합(CI) 서버로서 어떤 프로그래밍 언어로 작성된 어플리케이션에 대해서도 빌드와 테스트를 자동으로 수행할 수 있습니다.

JIRA bug tracking 시스템과 Bamboo를 연동하면, 이슈와 연관된 소스코드를 포함하는 모든 빌드 결과를 바로 빠르게 확인할 수 있습니다.




JIRA 와 Bamboo 연동




Bamboo와 JIRA를 연결하면 다음과 같은 것들이 가능해 집니다:



  • 이슈에 대한 빌드 링크와 빌드에 대한 이슈 - 성공한 빌드결과에 연결된 이슈의 세부보기와 작업중인 이슈 내역을 보여줍니다.

  • JIRA 대시보드에서 빌드 상태 모니터링 - 프로젝트에 대한 빌드 상태를 쉽게 확인가능하며, 빌드 플랜을 JIRA에서 가짓 혹은 다른 OpenSocial 컨테이너를 통해 요약내용을 확인할 수 있습니다.

  • 빌드 성공으로 수정된 JIRA 이슈 확인 - 한번 클릭으로 수정된 JIRA 이슈에서 빌드로 이동하여 빌드를 시작시킨 소스코드의 변경사항을 탐색할 수 있습니다.







소 스코드 리뷰(Code reviews) 와 JIRA 워크플로우




Giancarlo LionettiCrucible 에 대해 이야기 합니다.

이전 블로그에서 JIRA 가 이슈에 대한 소스코드 리뷰(code reviews to issues) 링크를 가지도록 Crucible과 연동하는 것에 대해 이야기 하였었습니다.

그 때 소스코드 리뷰(code reviews) 와 JIRA 워크플로우(JIRA workflow) 를 연동하는 방법에 대한 문의가 있었습니다.

Verifi 의 Siri Vias Khalsa 가 작성한 커맨트는 코드리뷰와 워크플로우에서 연동하여 어떻게 처리하는지를 알려줍니다.
우리는 Crucible 리뷰와 JIRA 워크플로우를 연동하였습니다. 전환에서 조건을 추가하는 것은 이슈에 대한 모든 댓글에 대해 리뷰를 작성하고 종료하기 전까지는 작업자가 "리뷰" 단계를 벗어나지 못하도록 하였습니다.

개발자가 svn 에 코드를 커밋할 때 JIRA 이슈키를 입력하도록 하였습니다. (JIRA Commit Acceptance plugin 사용). 이것은 FishEye에서 처리되어 JIRA는 이슈에 대한 댓글을 확인할 수 있도록 하였습니다. (JIRA FishEye 플러그인 사용)

사용자가 JIRA 에서 "Source" 탭을 눌러, Crucible 리뷰를 생성하도록 하였습니다. 리뷰가 모든 댓글에 대해 종료되면, 사용자는 다음 단계로 이동할 수 있습니다.

위에서 언급한 연동을 위해 필요한 것은 무엇인가요?



  • JIRA, FishEye, 와 Crucible 설치

  • FishEye Plugin을 사용한 JIRA, FishEye 와 Crucible 연동



이 어플리케이션 연동을 어떻게 하는지 확실히 모르겠습니다. 자세한 사항은 문서 integrating JIRA, FishEye, and Crucible를 참조하십시요.


소 스코드 리뷰(Code Reviews) 와 JIRA 워크플로우(Workflows)




JIRA와 FishEye 플러그인이 연동된 상태 (이것은 Crucible 연동을 가능하게 합니다) 에서 워크플로우를 커스터마이즈 하여 조건을 추가합니다.
조 건: 오픈된 Crucible 코드리뷰가 있다면 다음 단계로 전환 못함.

조건: 리뷰되지 않은 이슈와 연관된 체인지셋이 있으면 다음 단계로 전환 못함.

FishEye 를 사용하는 경우:
조건: 이슈에 대해 소스코드가 커밋된 경우 (혹은 반대 - 설정에 따라) 에만 다음 단계로 전환.

한번 시도해 보시기 바랍니다.


(골드피처 주)


국내에서는 아직까지는 JIRA 와 FishEye를 연동한 경우는 많지만 이것을 이슈의 상태 전환과 관련된 워크플로우에 반영한 경우는 매우 드문것 같습니다. 아마도 이와 같은 적용은 개발자들에게 코드리뷰 자체에 대한 개념도 익숙해 지기 어려운 상태에서 이것을 강제적인 워크플로우에 넣는다면 오히려 역효과가 날 수도 있을 것이기 때문이라고 생각됩니다.

아직까지 소스코드 리뷰를 해본 적이 없는 분들은 반드시 시도해 보시기 바랍니다. 그리고 만약 하시는 프로젝트와 팀의 규모 등 여러분의 환경에 코드리뷰의 도입이 효과적이라고 판단되면, JIRA 와 Crucible을 연동해 사용해 보시기 바랍니다.

그리고 만약 JIRA (이슈트래커) 와 Crucible (소스코드리뷰) 를 연동하여 어느정도 적응이 되시고 나면 업무 프로세스에 맞게 워크플로우에도 반영해 보시는 것은 어떨까 합니다.

댓글

이 블로그의 인기 게시물

시스템에 숨어있는 "윤초" 버그에 대해 준비하십시요

Confluence 내의 스프레드 시트 기능이 필요하시다면 애드온을 활용해 보십시요

Confluence 페이지의 분류와 관련된 잘 몰랐던 기능 3가지를 확인해 보십시요