redmine tool – 1st Iteration 에 이은 두번째. 일주일 만에 돌아온 시간입니다.
이번 모임에서, 지난주에 이어서 계속 진행하기로 하였습니다. 지난주 5시간의 투자로 우리는
- Redmine 의 JSON 인터페이스를 통해서, Mac OS X 앱을 만들어서 이용할 수 있다는 사실을 확인하고
- 메뉴바 애플리케이션(Status Item) 을 만들어서 손쉽게 접근 가능하면 좋겠다는 희망을 가졌고,
- 간단하게 나마, 기능 구현을 완성하였습니다.
- 로그인 성공여부 확인하기
- 프로젝트 목록 가져오기
- 해당 프로젝트에 속한 이슈 목록 가져오기
- 해당 이슈 목록의 웹페이지로 이동하기
지난주에 진행한 것은 위와 같습니다. 아직은 우리도 스스로 쓰기엔 부족함이 많습니다. 하지만, 5시간 투자한 것 치고는 꽤 쓸만한 것이 나왔다는 것에 만족하고 있습니다. 오늘 또 5시간을 더 투자하면 어떤 결과가 될지 기대가 되었습니다.
시작에 앞서, 오늘은 무엇을 할까 고민을 하였습니다. 무엇을 더하면 우리가 쓸만한 놈이 될까? 고민을 해 보았습니다. 토론 끝에 두가지 쟁점이 있었습니다. 우리가 지금 해야 할 것은
- 여러가지 기능을 추가하는 것인가?
- UI 적인 기둥을 만들어 보는 것인가?
위 두가지 방향성 중, 토의 끝에, 지금 먼저 해 보고 싶은 것은 UI 적인 기둥을 만드는 것이라 생각했습니다. 왜냐면, 기능적인면은 UI 기둥을 만들면, 쉽게 추가가 가능할 것 같다는 생각이 들었기 때문입니다.
그래서, 어떤 사용 시나리오가 좋을까 고민을 하도록 했습니다. 여기서도 두가지 갈래가 나왔습니다.
- 윈도우를 기반으로 하고, 맨 왼쪽에 프로젝트 목록을 선택하고, 중간에 이슈 목록을 보여주고, 그리고 맨 오른쪽에 해당 이슈의 상세 내용을 보여주는 것입니다.
- 메뉴바 내의 메뉴에 표기하는 것입니다. 메뉴에서 현재 프로젝트를 선택하고, 현재 이슈를 선택하고 나면, 메뉴 상단에 현재 선택된 이슈의 내용을 간략하게 보여주고, 거기서 바로 이슈의 상태를 변경하는 것입니다.
위 두가지를 가지고 토론을 했습니다.
위도우 기반으로 했을 때에는,
- 그 장점으로,
- 향후, 복잡한 기능성을 대폭 담을 수 있고,
- 어짜피 결국에는 이런 방식을 해야 하기 때문에, 처음부터 이렇게 시각하는 것이 좋지 않을까
- 여러 프로젝트에 흩어진 여러 이슈들 간을 편리하게 이동할 수 있다.
- 단점으로는,
- 어짜피 모든 기능은 웹에서 이미 다 제공하고 있는데, 굳이 동일한 기능을 똑같이 반복해서 만들 필요가 있을까?
- 개발중 복잡한 화면 속에서 또다시 이 창을 찾기란 매우 힘들지도 모른다.
- 5시간 내에 어느정도 틀을 만들어 낼 수 있을까?
- 그 장점으로는,
- 지난번 만든 것에서, 조금 만 더 손보면 되기 때문에, 쉽게 만들어 낼 수 있겠다.
- Mac OS X 의 Space 기능으로 화면 전환을 해도, 늘 메뉴에 붙어 있기 때문에, 항상 쉽게 접근해서 쓸 수 있을 것이다.
- 작업의 특성상, 하나의 이슈에 고정되어 있기 때문에, 그 경우 오히려 편리하다.
- 단점으로는,
- 한번에 하나 이상의 이슈는 다룰 수 없는 한계가 있고,
- 사용성이 직관적이지 않아 불편하고,
- 많은 기능을 담기에는 한계가 있을 것이다.
위 쟁점을 토론한 결과, 일단은 메뉴바로 기반으로 해 보자는 결론을 냈습니다. 보다 쉽게 구현할 수 있다는 점이 크게 어필한 것 같습니다
메뉴바 기반의 UX 를 생각하고, 그림을 그려 봤습니다. 화이트 보드 상에서 간략하게, 구현이 됐을 때, 사용하는 상황을 대충 그려 보았습니다.
메뉴 상단에 몇줄의 메뉴를 통해서 “현재 선택된 이슈”에 대한 간략한 정보 ( 이슈 번호, 이슈 제목, 이슈 상태, 진척도 ) 등을 표시하고, 상태와 진척도는 오른쪽 서브메뉴를 통해서 즉각적으로 수정할 수 있도록 한다. 그리고, 그 아래에 Add Comment 메뉴를 통해서, 커멘트도 바로 기록할 수 있도록 한다. 그리고, 그 하단에는 프로젝트 선택의 서브메뉴에서 “현재의 프로젝트”를 선택하고, 이슈 선택의 서브 메뉴에서 “현재의 이슈”를 선택하도록 한다.
썩 직관성 있는 사용방법은 아니지만, 일단 만들어 보기로 했습니다.
지난번에서 추가해야 할 주요 작업으로는
- 추가 프로토콜 지원
- 프로젝트 내용 업데이트, 프로젝트 상태 목록 등
- Comment 입력 UI 만들기
- 메뉴바 현재 이슈 내용 표시하기
- 프로젝트 업데이트 프로토콜이 생각되로 잘 진행되지 않았습니다.
- 이는 Content-Type 을 application/json 으로 보내주지 않았기 때문이었습니다.
- 내친김에 이미지 업로드 기능도 넣고 싶었습니다.
- 현재 Redmine 1.3 버젼에서는 API 가 지원되지 않는 듯 했습니다.
또 다른 5시간을 투자해서, 꽤 쓸만한 기능이 많아 진 것 같습니다. 하지만, 아직은 스스로 매일 매일 쓰고 싶은 상태까지는 아닌 듯 합니다. 항상 두가지가 교차하는 것 같습니다. 5시간으로 꽤 많은 일을 할 수 있다는 것과, 일주이에 한번으로는 여전히 많이 부족하다는 점입니다. (이번주부터는 일주일에 두번 하기로 하였습니다.)
오늘의 애자일 방법론에 대한 회고입니다.
- 오늘은 대화가 조금 부족했습니다. 대화가 부족하다 보니, 긴장감도 조금 떨어지고, 병목 현상이 많았습니다. 서로가 각자의 맡은 부분을 하다보니, 마지막에 가서야 현재의 상황을 알 수 있었습니다. 이것은 우리가 원래 원하던 그림이 아니었습니다. 다같이 서로 이야기 하면서 진행하는 것인데, 하다보니 대화가 없어지고 각자 하는 스타일로 돌아가 버렸습니다.
- 위에서 말한 병목현상. 한 사람이 무엇을 먼저 해 주기를 기다립니다. 그리고, 그 사람이 끝나기를 기다리는데, 시간이 꽤 걸립니다. 그리고, 이번에는 그 다음걸 할려고 하는데, 미쳐 생각치 못한 것들이 또 나옵니다. 즉각적으로 대화를 문제를 풀지 못했기 때문인 듯 합니다.
오! 멋진 기능이 추가되고 있군요! 그럼 redmine 패치도 해야하나요?
현재는 redmine-1.3 버젼을 기준으로 만들고 있습니다.
패치는 필요없고, 기본 버젼 그대로 사용할 수 있습니다.
심지어는 demo.redmine.org 사이트와 연동해서도 쓸 수 있습니다.