레드마인(Redmine)

1인 프로젝트가 많은 관계로 이런 저런 프로젝트를 수행하는데, 문제가 혼자 하다보니 혼자 작업하는 내용에 대한 이력관리가 잘 안된다. 물론 협업이 아니다 보니, 스스로 이런 저런 사실들이 타인에 의한 직접 변경은 없으니, 스스로만 잘 단속하면 문제가 없을지는 모르겠다. 하지만, 필자의 경우 기억력이 그다지 좋은 편이 아니라, 내가 작업한 내용에 대한 정확한 정보를 모르는 경우가 많다.

이를 위해 버전 관리와 형상관리를 스스로 챙기는 편인데, 버전관리는 SVN을, 형상관리로는 Redmine을 사용한다.

지금껏 Redmine을 잘 사용하고는 있는데, 참 답답한 부분이 Web UI이다.

물론 Web UI가 나쁘다는 의미는 아니다. 의외로 심플하게 구성되어 가독성도 높고, 기능을 안쪽으로 잘 넣어서, 해당 기능을 찾아 열게 되면 그 기능이 나름 쏠쏠하다.

image

 

불편한점 - 작업 시간 입력

하지만 심플하고 직관적으로 디자인 했다고는 하지만, 실제 활용하기에는 불편한 점도 이곳 저곳 있다.

그 중에, 가장 쓰고 싶은 기능이였지만, 입력하기 귀찮아서 못쓰는 기능이 바로 "작업 시간 등록"이다. 해당 Issue를 처리하는데, 소요된 시간을 기록하는 방편인데, 이게 단계가 너무 깊다. 
필자의 경우 작업할 때는 보통 위와 같은 화면을 띄워놓고 작업을 하게 되는데, 지금 하고 있는 작업에 대해서 Time을 기록하려다 보면, 약 3단계의 단계를 거쳐 입력을 해야 한다. 단계별로 진행하는 방법은 다음과 같다.

먼저 해당 Issue를 선택한다.

image

그리고 "작업 시간 기록" 이라는 부분을 클릭한다.

image

그리고 나오는 입력 폼 안의 내용 중 작업시간/시간/작업종류 에 해당하는 값들을 반드시 넣어야 한다. 물론 가급적이면 설명도 같이 넣어주는게 좋다.

image

저장을 하면 아래와 같이 뜨는데, 다시 목록으로 들어가려면 "일감" 이라는 상위 메뉴를 클릭해야 한다.

image

물론 그 까이꺼 그냥 계속 하면 되지 않냐, 싶긴 한데, Issue의 종류가 수없이 많은데다가, 일일히 시간을 입력하다보면, 차츰 시간 입력이 저절로 꺼려지기 시작하는 것 같다.

프로젝트 진행 속도를 측정하기 위한 좋은 자료를 이렇게 날려 먹는 기분이 들었다.

그래서 그냥 짜봤다.

 

시간 입력기

현재 네이버 개발자 쪽에 하나 열었다. ( http://dev.naver.com/projects/redmineassist/ )
여긴 SVN을 통해서 접근이 간단하기 때문에, 의외로 사용하기 좋다. 어차피 회사 프로젝트야 여기다 올리긴 어렵지만, 개인적으로 만드는 프로그램 올리기는 괜찮은듯..

위의 작업을 단순화 하기 위해서 필요한 기능은 아래와 같았다.

  1. 자동으로 프로젝트, 이슈들을 읽어온다.
  2. 현재 작업 중인 작업을 바로 선택한다.
  3. 선택한 순간 부터의 시간을 계산해서 저장한다.
  4. 작업이 완료되면 완료 확인을 하는 순간, 작업 시간 등록이 된다.

이 4가지 작업을 위해 프로그램을 짰고, 그 결과물이다.

먼저 사용상의 편의를 위해 Tray Icon을 활용했다.

image

그 이유 중 하나가 작업 할 때 보통 Visual Studio를 화면 가득 채워서 작업을 하는데, 저 내용을 처리하기 위해 Form 기반의 App을 만들어 놓게 되면, 매번 화면 전환을 해야 했다. 그래서 차라리 접근하기 좋도록 Tray Icon 기반으로 구성했다.

Issue 처리를 두 가지 단계를 거친다.

첫번째 단계는 실제 작업을 진행 할 Issue 를 선택하는 것이다. 즉 실제 작업을 하는 것은 아니지만, 곧 시작하거나, 진행할 예정인 단계를 의미한다. 이 단계를 통해 수많은 Issue 중 지금 당장 작업할 Issue를 끄집어 내는 것이다.

image

다음 단계는 자신이 수행할 작업을 선택한다. 즉 이제 진짜 작업을 진행한다는 의미다.

Tray Icon 메뉴에서 자신이 수행할 작업을 클릭하면 그 순간 부터 시간을 자동으로 잰다. 물론 시간(HOUR) 단위니까, 정확하게 측정하는 것은 아니다. 하지만, 몇시에 시작했는지를 별도로 메모하거나 기억해 낼 필요는 없으니 괜찮은 것 같았다. 시작된 작업은 아래처럼 체크 표시가 되며, ToolTip으로 대략적인 시간을 표시해 준다.

image

세번째 단계는 이제 작업을 클릭해서 종료하는 작업이다. 이 작업을 수행하면, 작업시간을 등록하기 위한 Form을 제공한다.

image

저기서 작업일자와 소요시간을 자동으로 입력해준다. 물론 입력하기 전에 변경해줄 수 있다.

 

정리

위와 같은 컨셉으로 급조했고, 해당 소스와 실행 파일을 네이버 개발자 사이트에 등록했다.

아직은 미흡하고, 불편하고, 느리기 까지하긴 한데, 현재 회사내에서 작업중인 프로젝트 틈틈히 개선해 나갈 예정이다. 아직 Redmine에서 제공하는 REST API가 기능이 많이 약한 편이라, 의외로 작업하기가 쉽지 않다. 게다가, 필자가 가진 Redmine을 1.3 버전이다 보니, 2.x 대에 올라오면서 생긴 REST API는 동작하지 않고 있다.

의외로 까다롭긴 한데, 나름 쓸만한 도구가 될 거 같다는 생각은 든다.

시간을 잰다는게 어떻게 보면, 감시를 하는 도구 처럼 느낄 수 있다. 스톱워치 들고 생산라인을 돌면서 "1번 라인 10초 늦어 더 빨리 달려!" 이런 것들은 예전부터 들어왔고, 당해보기도 했으며, 상상도 그리 어렵지 않다.

하지만, 스스로의 작업 시간을 정확히 계산할 수 있는 자료가 있다면, 먼저 자신의 업무 수행 속도를 정확히 추출해 낼 수 있으며, 그 속도를 알게 되면 다음 작업 혹은 프로젝트를 할 때 정말 예측 가능한 레벨로 떨어진다. 그럼 WBS의 정확도는 더욱 확실해지고, 예측 가능하므로, 다음 업무를 진행하는데, 남고 모자름이 훨씬 덜해지지 않을까?
( 그래도 역시 감시레벨로 떨어진다면 아예 안하는게 나을 수 있다. )

728x90

+ Recent posts