프로젝트 관리하기
이 절에서 다루는 프로젝트 관리는 PMP 등에서 이야기 하는 일반적인 프로젝트 관리가 아니라 레드마인이 제공하는 설정과 제반 기능을 통해 레드마인으로 프로젝트를 관리하는 기법 및 방법을 의미한다.
프로젝트 설정
레드마인은 프로젝트 관리, 그중에서도 IT 프로젝트 관리를 위해 다양한 모듈과 기능을 제공하고 있으며 상세한 커스터마이징이 가능하므로 조직의 특성과 상황에 맞게 프로젝트의 룰을 작성할 수 있다.
먼저 설명을 위해 레드마인 프로젝트를 하나 생성해 보자. "관리" -> "프로젝트" 를 클릭하면 전체 등록된 프로젝트의 목록 볼 수 있으며 여기에서 우측 상단의 "새 프로젝트" 를 클릭하면 새로운 프로젝트를 생성할 수 있다.
신규 프로젝트 생성 화면이 펼쳐지며 각 항목의 의미는 다음과 같다.
우리는 간단한 웹 어플리케이션 프로젝트를 진행할 예정이므로 식별자에 "hello-webapp" 를 입력하고 설명과 홈페이지를 설정하고 모듈과 일감 유형은 모든 걸 선택해 보자.
그리고 "만들기" 를 클릭하면 프로젝트가 생성되며 프로젝트 설정 화면으로 넘어간다.
모듈 설정
프로젝트의 설정 화면은 해당 프로젝트에 들어간 후에 정보 탭에서도 진입 가능하다. 아래 그림처럼 총 9가지 탭이 있으며 정보 탭은 프로젝트에 대한 정보와 "일감 유형"을 설정할 수 있다.
모듈은 레드마인이 제공하는 프로젝트 관리에 필요한 기능들의 묶음으로 기본적으로는 10개의 모듈이 탑재되어 있다. 프로젝트의 특성에 맞게 모듈을 활성화 시키면 되며 레드마인 버전따라 다르지만 간트 차트 모듈은 기본적으로 선택되지 않는 경우가 있다.
간트 차트는 일정 보고나 공유시 유용한 기능이므로 모듈로 포함 시키도록 하자.
주요 모듈별 기능은 다음과 같다.
일감관리(Issue Tracking)
이슈를 추적하고 관리할 수 있는 모듈로 레드마인의 핵심 기능이다. 비활성화 시킬 수 있지만 레드마인을 쓰는 이유가 반감될 것이다.
시간관리(Time Tracking)
이슈의 상태를 통해 진행 내역을 파악할 수 있지만 큰 이슈거나 중요한 이슈는 더 상세한 정보가 필요할 수 있다.
시간 관리 모듈을 사용하면 이슈를 처리 하는데 소요한 상세 시간을 관리할 수 있으며 이를 근거로 비슷한 이슈가 발생할 경우 소요 시간을 대략 추정할 수 있다.
뉴스(News)
프로젝트에서 알릴 소식(예: 버전 1.0 발표)이 있을 때 뉴스를 편집하고 게시할 수 있다.
게시된 전체 뉴스는 뉴스 탭에서 확인할 수 있으며 최근 뉴스는 레드마인 프로젝트의 개요 페이지에서도 확인 가능하다.
문서(Documentation)
프로젝트를 진행하면서 작성되는 문서를 관리할 수 있는 모듈이다. 위키와 중복되는 기능이라 프로젝트를 진행하면서 생산되는 문서는 위키를 사용하는 것을 권장한다.
파일(Files)
버전 관리 클라이언트 소프트웨어, 버전 1.0 산출물등 프로젝트 구성원들과 공유해야 하거나 프로젝트의 결과물로 나온 파일들을 올려 놓을 수 있다.
프로젝트의 산출물과 연결하기 쉽도록 프로젝트에 버전이 설정되어 있을 경우 연결하는 기능이 있다.
위키(Wikis)
위키 방식으로 프로젝트에서 필요로 하는 문서를 생상 및 관리할 수 있다. 레드마인 위키에 대한 간략한 설명은 위키 탭에서 진행하겠다.
저장소(Repository)
레드마인의 강점인 버전 관리와 연결하기 모듈이며 소프트웨어 개발 프로젝트라면 반드시 사용해야 하는 모듈이다. "저장소 설정" 방법은 저정소 탭에서 버전 관리 시스템과 연동은 별도의 항목에서 설명하겠다.
게시판(Boards)
게시판 방식으로 구성원들과 의사 소통할 수 있는 모듈이다. 이슈 관리와 중복되는 부분도 있는데 질의/응답이나 의견 개진 및 기타 의사소통을 게시판으로 할 지 이슈 관리로 할 지는 필요에 따라서 적절하게 선택하면 된다.
달력(Calendar)
시작일과 종료일이 설정된 이슈를 달력 방식으로 볼 수 있다. 기간별로 이슈를 파악하는데 도움이 되는 경우가 많은 유용한 모듈이다.
간트차트(Gantt Chart)
이슈별로 시작일과 종료일, 그리고 이슈 간의 관계를 막대기 형식으로 볼 수 있으므로 전체 일정 및 진행 내역을 판단하는데 도움이 되는 모듈로 특히 보고용으로 유용하므로 사용하는게 좋다. 사용하도록 ImageMagick 이 설치되어 있어야 한다.
구성원
프로젝트의 구성원을 추가/변경할 수 있다. 우측의 "새 구성원" 을 선택하고 추가할 사용자 또는 그룹을 선택하고 하단의 역할을 부여하면 된다.
개인을 추가하는 것 보다는 그룹을 만들고 관리하는 것이 관리 측면에서 더 용이하다.
버전
우리가 흔히 이야기하는 소프트웨어의 버전 이름은 기능 구현, 버그 수정, 개선등을 수행한 소프트웨어의 유일한 상태를 의미한다.
사용자 입장에서는 릴리스된 제품이 되지만 개발 측면에서 보면 버전 관리 시스템에서는 특정 리비전 혹은 이를 알아 보기 쉽게 지정한 태깅일 수 있으며 빌드 시스템에서는 특정 리비전의 소스를 체크 아웃해서 빌드한 결과물중에 특정 빌드 넘버인 산출물일 수 있다.
이슈 관리 시스템에서는 특정 이슈들을 해결한 상태라고 볼 수 있으며 레드마인은 프로젝트 관리의 일부로 버전 관리 기능이 있으며 이를 활용하면 이슈마다 버전을 지정하고 이를 통해 로드맵과 릴리스 노트를 손쉽게 만들 수 있으며 프로젝트의 진행 방향에 대한 가시성이 향상되는 장점이 있다.
프로젝트의 "설정" - >"버전" 항목으로 들어오면 전체 등록된 버전 목록을 볼 수 있으며 하단의 "새 버전" 을 클릭하면 새로운 버전을 등록할 수 있다.
항목 | 의미 |
---|---|
이름 | 버전의 이름을 기술한다. 회사나 제품의 관례에 맞게 기술하면 되며 여기서는 0.1 로 정의하였다. |
설명 | 버전에 대한 상세 설명을 기술한다. |
상태 | 현재 진행중인지 완료된 버전인지를 지정한다. |
위키 페이지 | 버전과 관련된 위키가 있다면 설정하면 버전 정보에서 바로 연결 가능하다. 예제는 빌드와 버전 관리 구성이 완료되는 것을 버전 0.1로 정의하였으며 이에 따른 위키 페이지는 "개발 인프라 시스템 설명서" 이다. 버전 등록이 완료되면 위키 링크가 생기며 클릭하면 새로운 페이지를 작성할 수 있다. |
날짜 | 버전의 완료 날자를 지정한다. |
공유 | 정의한 버전을 어느 범위로 사용할 지 여부이며 기본 설정은 "공유없음" 이다. |
이제 저장을 누르면 버전 0.1 이 등록되고 등록된 버전은 로드맵과 이슈 등록 화면에서 확인할 수 있다. 이슈와 버전을 연계하는 부분은 다음 절인 "이슈 관리"에서 설명하겠다.
일감 범주(Issue categories)
이슈 유형만으로 이슈를 분류하기는 힘드므로 레드마인은 이슈를 카테고리별로 나누어서 관리 있는 기능을 제공하며 이 기능을 "일감 범주" 라고 한다. 지라에서는 이 기능을 컴포넌트라고 부르고 있으며 레드마인도 "일감 범주"는 프로젝트의 컴포넌트라고 이해해도 될 듯하다.
소프트웨어 개발 프로젝트일 경우 "프론트엔드", "디자인", "백엔드", "문서화", "시스템 및 데이타 이관" 등의 범주로 세분화하고 이슈를 관리할 수 있다.
프로젝트의 특성에 맞게 일감 범주를 등록하면 이슈들을 구조화, 조직화 하여 관리할 수 있으며 큰 장점중에 하나는 일감 범주마다 기본 담당자를 지정할 수 있는 점이다.
많은 개발자가 있는 프로젝트일 경우 이슈 보고자는 이슈 등록시 담당자를 모를 수 있지만 이슈에 맞는 적당한 일감 범주를 선택했다면 자동으로 담당자가 지정되므로 프로젝트 관리자가 모든 이슈를 분류하고 담당자를 지정하지 않아도 된다.
등록된 일감 범주는 이슈 등록/관리 화면에 표시되므로 다음 절에서 이슈 등록을 위해서 다음 그림과 같이 세 가지 범주를 등록하고 담당자를 지정해 보자.
위키
위키 탭은 프로젝트내 위키의 첫 페이지를 설정할 수 있는 메뉴로 기본 설정은 Wiki 이다. 첫 페이지의 제목을 정하고 저장을 누른 후에 상단 메뉴의 위키를 누르면 첫 위키 페이지를 볼 수 있다.
여기에서 편집을 눌러서 첫 위키 페이지를 수정해 보자.
전 절의 텍스타일 문법을 참고하여 프로젝트 위키를 작성해 보자. 텍스타일 문법에 익숙하지 않다면 상단의 에디팅 아이콘을 눌러서 도움을 받을 수 있다.
내용이 많을 경우 다른 위키 페이지로 분리하는게 좋으며 다른 페이지 연결이 필요할 경우 페이지 링크 태그인 [[ ]] 를 사용하면 된다. 링크한 페이지가 없는 문서일 경우 링크를 클릭하면 새로운 페이지 작성 화면이 표시된다.
위키 페이지를 계층으로 관리하려면 "상위 제목" 에 부모 위키 페이지를 설정해 주자. 페이지에 첨부될 파일은 "찾기보기" 메뉴를 통해 올릴 수 있다.
미리 보기를 통해 형식화된 위키 페이지를 확인할 수 있으며 저장을 누르면 작성이 완료되며 프로젝트의 구성원 및 이해 당사자들은 상단의 위키 메뉴를 통해 프로젝트의 위키 페이지를 확인할 수 있다.
저장소
저장소는 프로젝트에서 사용하는 버전 관리 시스템과 레드마인을 연동할 수 있도록 저장소의 URL 을 설정하는 기능이다. 새로 시작되는 프로젝트라 등록된 저장소가 아직 없으므로 하단의 "저장소 추가" 메뉴를 클릭하여 새로운 저장소를 추가해 보자.
이 책에서 설정한 버전 관리 시스템은 서브버전과 git 두 개 이므로 두 개중 사용하는 것을 설정 탭에서 골라서 설정해 보자. 먼저 서브버전 일 때 설정이다.
항목 | 설정 |
---|---|
형상관리 시스템 | 사용하는 버전 관리의 종류를 리스트 박스에서 선택한다. "관리" -> "설정" -> "저장소" 탭에서 지정한 시스템만 목록에 표시된다. |
주 저장소 | 프로젝트에 등록하는 저장소중 하나는 반드시 주 저장소로 설정되어 있어야 한다. |
식별자 | 식별 가능하도록 버전 관리 저장소에게 유일한 이름을 부여하자. 식별자는 설정후 변경할 수 없다. |
URL | 저장소의 URL 로 전 장에서 구축한 서브버전 서버를 사용해 보자. 서브버전의 경우 trunk, tags, branches 하위 폴더를 지정하지 말고 프로젝트 루트 저장소를 지정하는게 좋다. |
로그인, 비밀번호 | 접근 제어가 적용된 저장소일 경우 로그인에 필요한 계정과 비밀번호를 설정해야 한다. 읽기 권한만 있으면 되므로 읽기 전용 계정을 사용해도 된다. |
이제 git 을 사용하는 독자들의 경우이다. 불행하게도 레드마인의 git 지원은 그리 좋지가 않다. 로컬 저장소만 지원하므로 github나 gitlab 이 지원하는 git:// 또는 http/https 프로토콜은 바로 사용할 수 없다.
그러므로 리모트에 있는 git 저장소를 연결하려면 리모트 저장소를 로컬에 복제한 다음에 이 저장소를 레드마인에 추가하고 여러 가지 방법으로 주기적으로 fetch 해야 한다.
자세한 버전 관리 연계는 버전 관리 연계 절에서 설명하고 먼저 gitlab 에 hello-webapp 라는 프로젝트를 생성한 후에 아래 정보를 레드마인의 저장소 항목에 설정하자.
항목 | 의미 |
---|---|
식별자 | 저장소를 식별할 유일한 식별자를 지정한다. |
저장소 경로 | 레드마인의 git 저장소는 로컬의 bare 저장소여야 한다. /var/redmine/git-repos 경로에 저장소를 설정하자. 사전에 /var/redmine/git-repos 디렉터리가 생성되어 있어야 하며 소유자가 레드마인이어야 한다. |
경로 인코딩 | 인코딩을 지정하며 기본값이 UTF-8 이므로 리눅스의 인코딩을 변경하지 않은 이상 수정할 필요없다. |
파일이나 폴더의 마지막 커밋 보고 | 옵션만 보아서는 무슨 의미인지 알기가 힘들 것이다. 체크하면 아래 그림처럼 상단의 마지막 커밋 내역에서 리비전, 마지막 수정일, 저자, 커밋 메시지가 표시되므로 체크하자. |
작업분류 - 시간추적(Activities - time tracking)
작업 분류 - 시간추적은 시간추적 모듈을 활성화했을 때 표시되는 메뉴로 이슈를 처리하는데 소요되는 시간을 상세히 관리하고 리포팅을 생성할 수 있는 기능이다.
유용성에 대해서는 여러 가지 의견이 있겠지만 개인적으로는 이슈 갱신시 소요된 시간을 입력하면 큰 부담을 주지 않으면서 작업별 소요 시간 자료를 얻을 수 있고 이는 프로젝트 진행시 나름 도움이 되는 자료라고 생각한다.
기본 설정된 작업 분류는 "설계"와 "개발" 두 가지로 이슈를 갱신할 때 시간을 입력하는 항목이 있다. 자세한 내용은 이슈 갱신 부분에서 설명하고 여기서는 작업 분류를 설정하고 관리하는 방법을 알아보자.
프로젝트의 설정 메뉴내 "작업분류" 는 이미 등록된 항목을 사용할지 말지 여부만 설정 가능하며 새로운 분류를 추가할 수는 없다. 상단의 전역 "관리" -> "코드값" 항목에 진입하면 작업 분류와 시간 추적이 가능하다.
하단의 "새 코드값" 을 클릭한 후에 분류에 필요한 작업을 추가하면 되며 예로 동료간 코드 리뷰가 필수인 조직이라면 "코드리뷰" 를 작업분류에 추가해 보자.
프로젝트 종료 및 복사
성공적으로 프로젝트가 끝났다면 레드마인에서도 프로젝트 종료 절차를 밟아야 한다. 레드마인에서 종료된 프로젝트는 전체 프로젝트 목록에서도 표시되지 않으므로 레드마인을 오랫동안 사용하여 프로젝트가 너무 많아져 정보가 과다해 지는 문제를 해결하는 장점도 있다.
잠금보관(Archive)
끝난 프로젝트를 잠금보관 설정하면 프로젝트가 더 이상 목록에 표시되지 않으며 검색조건에서 상태를 "모두" 나 "잠금보관" 으로 설정해야 표시된다.
잠금보관된 프로젝트는 프로젝트로 들어갈 수 없으므로 이슈와 이력을 볼수 없으며 보려면 "잠금보관해제" 를 해야 한다.
닫기(Close)
닫기도 잠금보관처럼 기본적으로 프로젝트 목록에서 표시하지 않지만 잠금보관과 차이점은 해당 프로젝트의 이슈를 조회할 수 있는 점이다. 닫은 프로젝트는 읽기 전용이므로 기존 이슈를 갱신하거나 새로운 이슈를 추가할 수는 없다.
닫기는 "관리" -> "프로젝트" 에서는 수행할 수 없고 해당 프로젝트로 들어간 후에 "개요" 화면에서 수행 가능하다.
복사
새로운 프로젝트를 시작할 때마다 매번 동일한 설정을 해 줘야 하면 매우 번거로울 것이다.
프로젝트의 목록에서 "복사" 를 선택하면 기존 프로젝트의 설정을 복사할 수 있으므로 저장소등 프로젝트마다 다른 정보만 변경해 주면 된다.
주의할 점은 원본 프로젝트에 등록된 이슈까지 복사하므로 실제 진행했던 프로젝트를 사용하지 말고 템플릿용 신규 프로젝트를 생성한 후에 기본 설정과 몇 가지 예제 이슈를 등록한 후에 "잠금보관" 하여 관리하는 게 좋다. (잠금보관된 프로젝트도 복사가 가능하다)
그러면 레드마인으로 프로젝트를 관리하기 위한 설정과 모듈, 각종 기능에 대해서 알아 보았고 이제부터 가장 중요한 이슈 관리에 대해서 알아 보자.