Page History
Table of Contents |
---|
Info |
---|
대충 살펴보는 Atlassian Tools ( JIRA + Confluence + Bitbucket + Bamboo ) Atlassian 홍보하는 내용은아니며, OPEN진영에서도 약간의 노력으로 통합이될것으로 예측하며 PMS 시스템이 어떠한 방향으로 가야하는지 고민하기위해 설치하고 스펙 확인중에 있습니다. |
통합기능
...
JIRA : 이슈관리
Confluence : 팀협업을 위한 공간 문서관리 및 개인공간제공
Bitbucket : 소스 형상관리 및 코드리뷰및 머지기능 지원
Bamboo : 지속적 빌드/배포를 지원하는 CI툴
...
주로 애자일의 개발방법론에서 언급되는 기능들이며 해당 개발 방법론을 심도있게 학습한적은 없습니다.
다만 다양한 개발 프로게스 개방방법론에서 언급되는 기능들은 유용하기때문에
...
생성된 티켓(Task)
...
에서 직접 개발 브랜치 생성가능
...
PMS 티켓이 없으면, 개발일을 하지 못하게 하는건 아주 단순하고 강력한 프로젝트 관리방법입니다.
핫픽스라할지라도 생성된 티켓의 브랜치를 생성통해 작업이 진행되어야 하며 사소한 개선 변경역시 포함됩니다.
실제 PMS의 티켓(TASK)이 만들어지면 어떠한 기능을 활용할수 있는지 살펴보겠습니다.
개발티켓에서 브랜치를 직접 생성 할수있으며 소스관리,코드리뷰,자동배포등 티켓을 통해 PMS에서 브랜치를 생성하게되며 부가적으로 전체 프로젝트 스케쥴및 배포관리등을 유기적으로 할수 있게됩니다.
어떠한 이유가 없이는(Git에서 직접) 소스 커밋도 되면 안되고, 순수연구목적을위한 개발이라할지라도
브랜치 생성하면안됩니다. 모든 활동은 팀의 소중한 자산이기때문에 추적이 되고 측정이 되어야하기 때문입니다.
분기점(브랜치) 만들기를 수행했을때 작동되는 UI
PMS에서 관리되는 티켓에의해서만 브랜치 생성이 되기때문에 누락될일이 없습니다. (물론 GIT자체의 기능을 막는것은 아니며 정책입니다. ) |
---|
해당 티켓에서 머지가가능하며 또한 코드리뷰를 통해 , 머지를 유보할수 있습니다. |
코드리뷰 코멘트에대한 대응으로, 피드백 교환및 바로 개선작업을 만들수가 있습니다. |
...
Git에서 직접 브랜치를 생성하고 작업을 시작하면 해당 작업이 프로젝트 관리에서 제외될수가 있습니다.
PMS를 통해 진행된 작업은 빌드툴(밤부)에 연동되어 개발장비 자동반영가능하며 -보통 브랜치 빌드
배포여부를 통해 QA 진행도가능합니다. ( 배포자동화로 잠수함 패치 방지 )
여기서 품질향상은 진행된 티켓을 통해 코드 개발코드 리뷰 과정도 포함될수 있습니다.
위 모든것은 GITLAB자체에도 지원하는 기능이며, PMS TASK와 별개로 작동되어 추적이 불가한 사항을 보완하는 연동기능입니다. |
밤부를 통한 빌드및 배포 플랜
...
기본 지원 빌드툴
빌드및 배포계획수립
디플로이 방법 선택
디플로이 성공후 실행계획
운영에 배포자동화는 개발티켓에서 이루어지는것이 아니기때문에 좀더 좀더 엄격한 전략이 필요합니다.
Expand | ||
---|---|---|
|
...
|
...
|
티켓(Task)을 통해 문서화 추적기능
...
프로젝트 메니져(지라) 에서 문서를 언급을 하던지?
문서(위키)에서 관련 티켓을 언급하던지? 둘중하나를 하면 쌍방 연결이됩니다.
문서화과정이 개발과정과 분리된게 아닌 동시에 진행되고 포함되어야 항목입니다문서화는 개발과정에서 분리되어 뒤에하는게 아닌, 동시에 해야하는것입니다.
지라 티켓에서 언급된 문서
위키(문서화)에서 연결된 지라 연결
스프린트 관리
작업을 스프린트(1~3주간단위)단위로 지정하고 관리를 쉽게할수 있습니다.
스프린트는 한달이상의 계획으로 밀린 문서화와 테스트 품질향상을 마지막에 몰아서 하는 리스크를 줄이기위함입니다.
개발 배포단위를 작게 나눠 개발-문서화-배포-TEST를 지속적 진행하여 작은단위로 통합하는게 목표이며
배포자동화툴-QA및 개발이슈를 관리하는 프로젝트관리툴 -소스관리툴-문서화툴 등이 아주 잘 연동이 되어야합니다.
...
어떠한 주기및 버젼을 설정하여, 품질검증 배포완료까지 어떠한 구간에 완료되어야하는 내용들 관리가가능합니다.
이렇게 진행된 티켓들의 리포팅은 자유롭게 자동생성가능합니다. (별도의 리포팅기능이 있으나, 위키에서도 동적으로 언급 가능합니다.)
스프린트 없음은 스프린트에의해 관리되지 않고 처리된작업입니다. | |
---|---|
모든 프로젝트는 내 필터를 걸어서 최근 작업 추이를 확인할수 있습니다. |
운영장애에대한 처리
운영장애 처리의 부작업은 하드웨어변경(장비증설)또는 설정 변경(SSL인증서) 또는 개발사항 FIX(문제되는 코드해결)이 될수있으며
개발FIX로 이어질시 핫픽스부작업생성-브랜치생성-빌드자동반영 을 통해 소스변경범위를 파악하는 과정까지 포함이됩니다.
몇년간의 장애를 파악해보면 대부분 반복적인 이슈가 많으며 원인 제공은(실수,업데이트 절차,공격,개발누락) 다양하지만
해결과정은 다양한 IT기술로 인해 처리가됩니다. 어떻게 문제를 해결했나? 과거사례를 통해 경험하지 못한것에대한 처리방법 습득도 가능하며
장애를 유발하는 잘못된 코드에 대한 파악도 가능하게됩니다. 과거에했던 실수는 반복될수 있으며, 원척적으로 장애에대한 처리능력과
장애를 막으려는 노력은 개인이아닌 이러한 운영 경험을 자료화해서 팀이 가져야할 덕목이며
다양한 사례를 통해 문제해결방법을 익히는 것은 아주 직관적이고 명료합니다.
...
긴급반영(HotFix) 코드가 생기면 보통 운영에 로컬에 빌드된 소스를 바로 반영해 버리는 경우가 생깁니다.
이것역시 명시적으로 티켓화 하지 않으면, 잠수함패치로 이어지며 수동반영을 허용하는것은
QA품질에대한 보증자체를 하지 않는다란 의미이며, 심각하게는 개발자에게 악성코드를 심을수 있는 기회를 주는것입니다.
착한개발자의 수동반영이 좋은케이스일때 짧은시간에 문제해결이 되지만, 나쁜개발자는 작은 문제를 해결하다가
더 큰문제를 만들어내면서 HotFix를 반복한다는점입니다.
또한 이렇게 해결된 내용은 해결과정에대한 정보가 없기때문에 장기적인 팀의 운영 능력 축적 입장에서는 아무런 도움이 안됩니다.
이것은 착하던/나쁘던 고약한 문제입니다.
하위 Task관리
...
어떠한 작업이 하위 Task가 모두 완료되어야 처리되는 사항이면, 하위 Task로 등록하여 그룹관계를 만들수 있습니다.
연관: 관련이 있는 작업으로 단순하게 연결
의존: 상위작업에 영향이 있는것으로 상위 의존관계연결
하위: 그룹핑이 되어 하위가 처리되어야 상위가 해결이됨
ex>티켓의 예는 운영장예처리이며 하드웨어변경/소프트웨어변경/코드변경등 다양한 TYPE 대응방법이 있습니다. 코드변경은 그 코드의 변경까지 추적이되어야 하며
해결방법은 누적되어 해결처리에대한 자산으로 그것이 코드이던지 하드웨어 설정변경이던지 간에
( 한사람이 똑같은 실수를 하는게 아닌, 똑같은 실수를 새로운 사람이 반복하기 때문입니다.)
작업흐름 설계및 리포팅
작업흐름을 직접
작업흐름
커스텀한 작업흐름을 생성하여 , 운영장애처리와같은 커스텀한 해결 프로세스를 정의하여
...
운영장애가 어떻게 처리가 되는지 실시간 리포팅기능
( 장애이슈가 티켓이 어떻게 정적인 문서에 동적으로 어떻게 언급이 될수있나? 위키의 문서는,이러한 연동부분에대해서는 동적인 문서라 할수 있습니다JIRA티켓은,리포팅이 자유롭습니다.)
Jira | ||||||
---|---|---|---|---|---|---|
|
티켓과 관련된 대화 채널 생성
다소 긴급 사안에대한 처리를 채팅을지원하며 자동이력을 남깁니다.
사실 중요한 즉시의사결정및 중요한 내용이 채팅을 통해 이루어지며
지라는 그것을 놓치지 않습니다.
채팅을 통한 문의처리에 대해 문제점을 살펴봅시다.
문의자1> 안녕하세요 OOO 입니다.
......... 답변없음 답변자1은 바빠서 인사에 응답을 못하고 하루가지나 답변을함
답변자1> 안녕하세요 무슨일이신가요?
.......... 문의자1이 바빠서 또 하루를 까먹음
문의자1> 넵 ....OOO일때문에...OOO를 해야하는데 어떻게해야할까요?
........... 그리고 3시간이 흘렀습니다.
답변자1> 넵 이건은 PMS Task에 등록을 하고 저에게 할당 해주십시오
문의자1> 넵 답변감사합니다. 등록하여 진행하겠습니다.
............ 그리고 또 하루가 지났습니다.
간단한 이슈를 이해시키고 Task에 등록하는데 3일이 걸렸고 핑퐁하며 최종 처리되기까지 1주일이 실제 소요되었습니다.
자 이것을 개선해보겠습니다.
애시당초 담당자는 누구인지 모르겠지만... 우선 처리해야할 Task를 명확하게 정리합니다.
문의자1이 Task를 만들었습니다. 그리고 누가 해결해야할지 모르기때문에 채팅을 통한문의를 합니다.
채팅> #1234 OOOO 이슈로 문의1님이 채팅신청을 하였습니다.
문의자1> 안녕하세요 1234이슈로 문의를 드립니다.
......... 답변자1은 바빠서 다음날 답변을 합니다.
답변자1> Task확인하였고 처리하도록하겠습니다.
2일만에 사소한 Task를 해결하였습니다.
물론 위 사례는 사내채팅이 PMS와 자동연동되어야 함을 의미 하지 않습니다.
업무채팅시 인사를 주고받는데 쓸데없는 시간을 낭비하지말자는 의미입니다.
조직이 클수록 어떠한 Task를 정확하게 처리해야할 대상을 찾는것은 어려울수 있으며
처음부터 상대가 이해할수있는 구체적인 Task를 작성하고 문의를 하자는 내용입니다.