사후검토: A 프로젝트

프로젝트 소개


A 프로젝트는 아케이드 업소용으로 제작된 터치 디바이스 기반 미니게임 모음 게임이다. 코나미
Konami의 ‘비시바시Bishibashi 시리즈’, 엑스포테이토의 ‘컴 온 베이비Come on Baby’와 비슷한 구조의 아케이드 게임으로 터치 스크린을 이용한 미니 게임들을 새로 디자인 하여 게임 내에 삽입 하였다.

프로젝트와 비슷한 포지션의 비시바시(좌) 컴온 베이비(우)

게임을 시작하면 캐릭터 선택 및 기기가 지정해주는 미니 게임을 선택하여 최대 3~4 개의 미니 게임을 연속으로 즐길 수 있다. 매장 내 동일 기기 간 네트워크 연결을 지원하여 점수 경쟁을 통한 ‘경쟁 모드’가 구현되어있다.

프로젝트는 베타 릴리즈 상태로 사내에서 잠정 중단 된 상태이다-현재 해당 프로젝트를 진행했던 인원 전원이 다른 프로젝트에 배속, 퇴사 등으로 인하여 팀이 흩어져 있으며, 사실상 프로젝트가 와해되어있는 상황이다.

  • 프로젝트: A Project
  • 플랫폼: 아케이드 업소용 - 윈도우즈Windows / PC 플랫폼
  • 기기: 커스텀 PC / 터치 스크린Touch Screen
  • 개발 기간: 2009. 06. ~ 2010. 05. (12 개월)
  • 개발 인력: 약 110 M/M (월 평균 약 9 M/M, 최대 인원 Full Time: 9, Part Time: 3)
  • 상태: 베타 릴리즈Beta Release / 프로젝트 잠정 중단Hold

잘 된 부분


프로젝트 개발 프로세스 정립

프로젝트 초창기에는 개발 프로세스라는 형태가 공식적으로 존재하지는 않았다. 나름 게임 개발 업계에서 십 수년간 몸 담은 사람들이 경영진에 포진하고 있고, 마니아 층을 형성한 게임을 제작하고 판매, 온라인 게임 개발  발매도 한 견실한 업체였음에도 불구하고, 프로젝트 관리에 대한 부분은 거의 전무하였으며, 초창기 개발 현장에서 보여지는 주먹구구식 개발 환경이 난립하는 회사 상황에서 팀 내의 개발 프로세스를 확립하는 일은 그리 쉬운 일은 아니었다.

팀 내에 개발 프로세스를 도입 할 때의 팀원들의 저항(그런 것 없이도 우린 잘 해왔는데? 라는 식의 오만)이 있을 것이라 쉽게 예상되었기 때문에, 팀 내에서 뜻을 가지고 있는 프로그램 - 게임 디자인 파트에서 먼저 프로젝트에 필요한 의사소통 라인을 만들었다. 회의 및 개별 면담 후, 개발 문서를 제작 이를 SVN을 이용하여 일괄 배포하였고, 지속적으로 수정하고 재배포 함으로써 개발 중 발생하는 커뮤니케이션 문제를 억제할 수 있는 환경을 만들었다. 그리고 개발 중 발생하는 이슈를 이슈 트래커Issue Tracker인 맨티스Mantis를 이용하여 모든 이슈 사항을 기록하였다.

개발 중 이슈 트래커로 이용한 맨티스

기반 시스템이 완성 된 이후, 프로젝트를 진행하면서 개발 프로세스 관련 문제가 불거질 때 마다, 그래픽 파트, 기획 파트 등의 인력 들을 하나 둘 설득해 가면서, 개발 프로세스를 위한 관련 툴의 사용법을 교육하고, 프로세스에 대한 이해를 팀원 하나 하나에 넓혀가면서, 팀 전체가 하나로 정립된 프로세스에 맞춰 업무를 진행 할 수 있도록 하였다. 약 3~4개월에 걸쳐 이를 천천히 추진함으로써, 새로운 개발 프로세스에 대한 팀 내 저항을 최소화 하였으며, 개발 프로세스 정립으로 인한 장점들을 팀원들 하나 하나가 체득해 나가면서 프로젝트의 진행에 탄력이 붙기 시작했다.

프로세스에 대한 전체적인 관리는 각 개발 파트(게임 디자인, 프로그래밍, 그래픽)의 팀장들이 각 팀원들에 대한 업무 관리를 진행하였다. 이를 뒷받침하기 위한 협업 개발 툴(개발 페이지, SVN,맨티스)에 대하여 별도 관리 담당자를 지정하여 팀원들이 개발 툴을 100% 활용 할 수 있도록 서포트 하였다. 별도로 제작된 개발 페이지에서는 개발 일정, 최신 개발 이슈 현황, 일일 빌드 현황을 개발 팀원 누구라도 손쉽게 확인 할 수 있도록 하였다. 매 주 정기 회의에서는 통계 처리된 업무 진척 상황을 보여줌으로써 객관화 된 프로젝트 진척 상황의 공유가 가능하도록 하였다.

리소스 관리 및 배포
프로젝트 진행 중 발생하는 모든 리소스는 SVNSubversion을 이용하여 관리/배포 하였다-팀 내 SVN을 도입 하기 이전에는 메일과 공유 폴더를 이용하여 리소스가 관리되고 있었다. SVN에서 프로그램 소스 뿐만 아니라 모든 문서, 그래픽 및 사운드 리소스, 심지어 일일 빌드 결과물까지 통합적으로 관리하여 개발 도중 리소스를 분실하여 시간을 버리는 일이 없도록 하였다-물론 모든 리소스를 SVN에 관리하다 보니 개발 후반부에 SVN이 점차 느려지는 현상이 발생하기도 하였다.

개발 문서의 경우 수정 사항이 발생 할 경우, 해당 수정 사항을 반영한 문서를 바로 커밋Commit 하여 팀원들이 항상 최신의 문서에 접근 할 수 있도록 하였다. SVN의 기록Log 기능과 문서 상에 수정 이력, 그리고 해당 이슈Issue에 기록을 통하여 수정 사항에 대해서 팀원들이 놓치지 않도록 주의를 기울였다.

그래픽 리소스에 대해서도 기존 개인 작업 폴더 - 공유 폴더로 유지 되면서 버전관리 및 리소스 관리가 되지 않았던 부분을 SVN에 통합시키므로써, 리소스 분실, 중복, 과거 내용을 덮어 씌우는 사고 발생이 줄어들었으며, 이는 프로젝트 수행 시간을 절약하는데 많은 역할을 하였다.

SVN을 관리하는 담당자가 배정되어, 팀원들에 대한 SVN 이용법 교육, 사용자 문제 해결, SVN 저장소 관리 등의 업무를 진행하였으며, SVN 이용에 대한 가이드라인을 만들어 공유하고, 해당 가이드라인에 맞게 관리 함으로써, 효율적인 업무 진행을 이끌어내었다.

또한 빌드 자동화 시스템을 도입하여, 전날 작업 된 결과물을 바로 다음 날 확인 할 수 있도록 하였다. 게임 디자인 담당이 매일 아침 빌드 된 게임을 테스트 하면서 일반적인 버그 및 실행 오류 등의 문제를 잡아내고, 이를 즉시 처리했기 때문에 프로젝트 후반까지 자잘한 버그로 인하여 고생하는 경우는 거의 존재하지 않았다. 모든 팀원들은 매일 새로운 빌드를 가지고 30분 ~ 1시간씩 이른바 ‘개밥 먹기’에 동원 되어 게임을 테스트 하고 문제 사항을 수정하는 과정을 거쳤다.

빌드 자동화 프로그램으로 유명한 CC.net을 사용했다


프로토타이핑
미니 게임 제작 시의 기본 제작 프로세스는 제안 - 게임 디자인 검수 - 프로토타이핑 - 사내 테스트 - 실 제작의 형태로 진행되었다. 게임 1종 당 보통 1~3개월의 개발 기간이 소요 되었다. 미니 게임에 대한 프로토타이핑은 ‘재미있는 게임’과 ‘재미없는 게임’을 사전에 걸러내는 필터 역할을 충실하게 하였다. 제안서 상 재미있을 것 같은 게임이 막상 구현 시 재미없다는 사실을 사전에 알 수 있는 방법은 빠른 프로토타이핑 뿐이며, 덕분에 난립하는 제안서 중에서 제대로 된 미니 게임들을 선택하여 게임 내에 포함 시킬 수 있었다.

초기 미니게임 프로토타입 중 하나


잘 되지 못한 부분


일관된 프로젝트 목표 부재
처음 프로젝트가 킥 오프Kick off 될 당시의 제품 목표는 아케이드 업소를 찾는 라이트 유저-게임 소비 시간이 한정적이고 캐주얼 게임을 즐기는 층을 시장 목표로 잡고 이에 어필 할 수 있는 제품을 만드는 것이었다. 시장 목표의 특성으로 여성과 어린이, 그리고 복잡한 게임에 익숙하지 않고 경쟁보다는 즐거움을 소비하는 것으로 자체 리서치 결과 판단되었고, 이에 대한 팀원들의 이해와 공유가 이뤄진 상태에서 프로젝트는 진행되고 있었다.

파국이 찾아온 것은 게임 개발이 어느 정도 완료된 이후 제품에 대한 포커스 그룹 테스트Focus Group Test 가 진행된 이후였다. 테스트 결과 주요 항목 평균이 10점 만점에 7~8점을 기록했기 때문에 최종 발매 결정에 별 다른 장애가 없을 것으로 예상되었지만, 경영진을 포함한 프로젝트 팀장은 갑작스럽게 프로젝트 목표를 라이트 유저 및 헤비 유저(대전 액션 등의 게임을 즐기는 하드 코어 유저) 성향의 소비자들이 사용할 수 있는 게임으로 일방적으로 변경 통보를 내렸다. 이미 제품의 개발이 막바지에 다다른 상황에서 있을 수 없는 일이지만, 결국 무리한 설계 변경과 게임 난이도 변경을 통하여 게임은 애초의 기획과는 다르게 색이 불분명한 게임이 되어버리고 말았다-게임은 지나치게 어려웠지만, 그렇다고 이를 지속적으로 즐기기 위한 도전 욕구를 불러일으키는 것도 아닌 형태가 되었고, 애초 프로젝트 목표였던 라이트 유저에게는 다가가기 힘든, 그리고 헤비 유저들에게는 난이도만 높고 따분한 게임이 되어버린 것이다.

비 상식적인 일정과 몰아붙이기 식 팀 관리
프로젝트를 시작 할 때 제안서 상에 의하면 개발 예상 기간, 개발 예산, 소요 인력, 예상 매출액 등이 존재했지만, 사실 어느 항목 하나 제대로 된 ‘근거 자료’는 전무했다. 때문에 말도 안되는 개발 일정이 팀원들에게 떨어졌다. 초기 개발 예상 기간은 실제 실무자들의 예측에 비하여 반 이상 짧게 잡혀 있었고, 이에 대한 어필을 하더라도, 개발 팀장은 개발 기간 연장은 관행인 것 마냥 이 문제를 대수롭지 않게 생각하고 있었다-결국 이런 태도가 경영진의 프로젝트에 대한 불신을 부채질 한 원인 중 하나였다.

이런 책이 괜히 있는 것은 아니다 - 맨먼스 미신


제품 개발을 위한 연구/개발 활동이 일정상 불가능 한 상황에서 어처구니 없는 개발 스펙을 요구하는 일도 비일비재 했다-그리고 그러한 요구 사항은 거의 대부분 팀과 프로젝트의 상태를 관리해야 하는 팀장에게서 나왔다. 개발 팀의 역량, 현재 상태, 필요 자원 등에 대한 고려는 일절 무시 한 체, 안되면 말지 식의 제안이 나오는 경우도 허다 했다. 개발 팀은 현실적인 개발 스펙 제시 및 이에 대한 수정 일정을 제시하고 이를 철저하게 지키는 데 역량을 집중했다. 때문에 최소한 ‘본인 입에서 나온 일정’은 지킬 수 있었다.

프로젝트 관리 능력 부재 및 프로젝트 관리자 부재
평균 10여명이 안 되는 팀 안에 팀장과 부팀장이 존재했지만, 정작 팀과 프로젝트를 관리하는 사람은 존재하지 않았다는 것은 프로젝트를 절음발이로 만든 가장 큰 원인이었다. 전체적인 프로젝트 관리 및 조율은 실무진이었던 각 파트 대표-프로그램, 그래픽, 게임 디자인-가 모여 조율하고 조정함으로써 이루어졌다. 덕분에 개발 팀 내 단합은 좋아졌지만, 최종적으로 팀장은 팀 외부에서 겉도는 좋지 않은 모양새가 되어버렸다는 점은 그리 좋은 평가를 내릴 수 없을 것이다.

프로젝트 관리 능력이 없는 사람이 프로젝트 관리자로 있는 것은 팀원들에게는 엄청난 고역이다. 해당 팀장은 종종 프로젝트의 현재 상황에 대한 정보를 놓치고 있었으며 때문에 이미 처리된 이슈에 대해서 다시 언급한다거나, 이미 논의된 사항을 수시로 번복하는 일이 잦았다. 때문에 각 팀원들과 프로젝트에 대해서 부딪치는 경우가 더욱 빈번하게 발생 할 수 밖에 없었고, 이럴 때 마다 프로젝트는 일관성을 잃고 엉뚱한 방향으로 지그재그로 움직여왔던 것이다. 때문에 팀원들은 팀장을 불신하게 되고, 팀장은 또 팀원들을 불신하는 악순환의 반복이었다.

위기 관리 능력 부재
어떠한 프로젝트든 마찬가지로 위험Risk은 존재하는 법이며, 이 프로젝트에서도 각종 위험 요소들이 존재하고 있었다. 가장 큰 문제는 프로젝트에 대한 경영진의 신뢰 여부였는데, 사실상 경영진과 팀원들의 중간 다리 역할을 하고 있어야 할 팀장의 커뮤니케이션 능력이 상당 부분 모자랐기 때문에 프로젝트는 항상 살얼음판을 걷는 형국이었다-최종적으로 베타 릴리즈에서 프로젝트가 잠정 중단 된 것도 같은 맥락의 일이었다. 나중에 확인 된 일이었지만, 경영진이 알고 있는 프로젝트와 개발 팀이 알고 있는 프로젝트는 전혀 다른 종류의 것이었다.

인적자원과 관련한 문제도 존재했다. 프로그램 팀장의 병역특례와 관련하여 훈련소 입소 문제는 프로젝트 시작 전부터 확인 된 문제였고 이를 회피 할 수 있는 상황이었음에도 불구하고, 아무런 조치를 취하지 않은 체 가장 중요한 프로젝트 막바지에 이르러 입소하게 하는 상황을 자초했다-덕분에 프로젝트는 프로그램 팀장의 군사 훈련 기간인 한 달 동안 진척 없이 표류하기만 했다.

잘못 설정한 프로젝트 진행 기간으로 인하여 제작 필수 인력을 타 팀에 빼앗기는 상황이 발생하기도 했다. 팀장이 무리한 일정을 가지고 다른 팀과 인력 교류를 약속했다가, 역시 프로젝트 막바지에 해당 인력이 팀을 옮기는 상황이 발생하였는데도, 이에 대한 저지, 혹은 대체 인력 충원 등의 대책은 나오지 않았고 프로젝트는 그냥 속행 되었다.


결과


프로젝트는 정상적으로 진행되지 않았고, 사실상 실패(게임 업계에서 ‘잠정 중단’은 ‘영구 폐기’와 유의어)하였다. 팀 내/외에서 많은 문제점들이 있었기 때문에 당연한 결과였을지 모르지만, 덕분에 프로젝트 관리와 리더십에 대한 반면교사가 될 수 있었다고 생각한다. 프로젝트의 목표 설정, 관리, 리더십에 관하여 성찰을 하는 데 더 없는 기회가 되었다는 것은 이 성공하지 못한 프로젝트가 가진 가장 큰 성공이 아닐까.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by Irene

2010/11/03 14:45 2010/11/03 14:45
, , ,
Response
A trackback , No Comment
RSS :
http://www.heartcomplex.net/blogs/rss/response/582

프로그래밍 : 실력의 부재

회 사가 Flash와 관련한 프로젝트를 시작한 것은 처음은 아니다. 웹 에이전시로 부터 시작되엇던 회사였기 때문에 상업적 용도의 웹 페이지를 제작하면서 기본적인 UI 등은 Flash를 이용하고 있었고, 다양한 Flash 기반 사진 편집 툴, 그래픽 툴, Flash 기반 아바타 서비스 등을 제작하고 있었다.. 하지만, Flash를 이용한 게임 제작에 필요한 기술력은 절대적으로 부족하였고, 지금도 그닥 실력이 나아졌다고 보여지진 않는다.

프로젝트가 진행되고 동시기에 일본에 진출해 있는 국내 게임 포털 기업의 자회사에 납품을 위한 Flash 게임 제작 프로젝트가 동시에 진행되고 있었지만, 그 프로젝트에서 얻은 교훈이 이번 프로젝트에 적용 된 것은 아무것도 없었다. 아니, 그러기는 커녕 게임 제작 프로젝트는 무려 4개의 게임을 제작했지만, 똑같은 실수를 되풀이하느라 자기 앞가림 하기에도 분주했다.

여러 실수들 중 가장 치명적인 것은 Flash 부분의 최적화가 전혀 이루어지지 않았다는 점이다. 회사에서 지급 받은 컴퓨터는 P4( 싱글 코어, HT 지원) 2.8Ghz CPU에 2Gb 메모리를 장착한 기종이었는데-이는 회사 내 평균 사양보다는 조금 못 미친 기종이었다-정원에 꾸미기 아이템을 6개 이상 얹어 놓으면 CPU 점유율이 90 ~ 100%에 육박하고 브라우저가 정지 상태에 놓이는 일이 빈번했다. 초기 기획시 회사의 컴퓨터에서 실행 시켰을 경우 50개 정도의 레이어를 깔아 놓는 것을 기본 목표로 설정했던 것을 생각하면 겨우 10% 정도의 목표를 달성한 것이다.

물론 국내의 현재 보급형 컴퓨터의 사양이 회사 보급 컴퓨터보다는 높을 것이지만, 문제는 동일한 기능이 들어간 서비스를 GSP(Global Server Project: 한국 소프트웨어진흥원 주관 해외 진출 지원 사업)에도 그대로 적용하여 이용하려 한다는 점이었다. 개인적인 의견으로는 최소 해외에 서비스 되어야 할 사양이라면 최근 발매되고 있는 넷북(Netbook)에서도 돌아가야 상업적으로 안전할 것이라 생각되어지지만, 그 정도의 퍼포먼스는 지금의 회사의 기술력으로는 도달 못할 벽 같은 것이다. 여튼, 지나치게 높은(?) 권장사양 덕분에 제대로 된 테스트 이전에 겨우 기능 동작 여부를 확인 하는데 급급할 수 밖에 없었다(애니메이션 프레임이 적어 동작이 지나치게 빠른 문제를 서비스 런칭 이후 집에서 처음 접속 해 본 이후 처음 알았다-집에서는 쿼드코어를 쓰고 있다). 최적화 문제는 현재 개발 중이며, 곧 추가 기능으로 붙게 될 여행지에서 문제가 되고 있는데, 초기 기획 사항에서 동시 접속 인원 240명을 목표로 잡았지만, 한 화면에 20명 정도만 넘어가도 클라이언트 부분에서 부하가 걸려 서버와 연결이 끊어지는 문제가 발생하고 있다.

사실 해결 방법은 플레이 해상도를 줄이거나(Flash 실행 영역의 크기는 660 * 490), CPU 연산을 잡아 먹을 수 밖에 없는 백터 이미지를 줄이고 비트맵 이미지를 추가하던가 하는 방법이 있을 수 있다(참고로 비트맵의 수를 늘리게 되면 CPU 부하는 적어지는 대신, 메모리 점유율이 기하급수적으로 늘어난다. 이 프로젝트가 아닌 다른 프로젝트에서 Flash 게임이 메모리 200Mb를 넘게 잡아먹으면서 IE와 충돌로 뻗어버리는 일도 경험했었다). 개발 기간은 그러한 추가 작업을 할 수 있는 여력을 남겨두지 않았다. 사실 그 이전에 최적화에 대한 문제가 P프로젝트 진행 이전 다른 프로젝트에서 부터 지속적으로 튀어나왔음에도 불구하고, 프로그래머 중 누구도 기획 단계나 작업 초기 단계에서 이러한 문제에 대해 조언하거나 나서서 이야기 하는 사람이 아무도 없었다-기획 초기에 내가 최적화 문제에 대한 의견을 내었을 때, 프로그래밍 팀장으로 부터 '문제 사항이 되질 않는다'라는 한마디만 들었던 것으로 기억한다.


개발 프로세스 : 임기응변

프 로그래밍 팀이 여태껏 시행해 온 개발 프로세스는 전형적인 폭포수 개발법으로, 프로젝트가 시작되면서도 당연하게 이를 (지나치게)충실히 따르고 있었다. 때문에 확정된 기획에 대하여 집착을 하고 있었고, 변경이나 수정에 대해서 민감했다. 문제는 프로그래밍 팀-정확히는 프로그래밍 팀장-이 원하는 기획서를 제공 할 여건이 되질 않았다. 세상의 다른 여러 프로젝트도 마찬가지이겠지만, P 프로젝트 역시 초기 기획중에 발주사의 요구는 매번 변경되었고 이는 '완성된' 기획서를 내 놓는 것을 불가능한 상황으로 만들어가고 있었다.

기획팀과 프로그래밍 팀이 바라보는 '기획서'의 정의가 다른 것도 커뮤니케이션을 가로막는 원인이 되었다. 프로그래밍 팀은 그간의 웹 개발에 근거한 스토리보드(Storyboard)에 기반한 기획서를 바라고 있었고, 기획팀은 기존의 게임 개발에 근거한 개발 문서를 작성하였다. 웹 개발과 게임 개발의 프로세스의 차이는 분명히 존재했지만, 서로간에 이에 대한 합의를 보려는 노력은 조금도 없었고, 되려 서로 무능하다고 헐뜯는 사태까지 벌어지기도 했다.

결국 당연하게도 프로젝트가 끝날 때 까지 양쪽이 모두 만족 할 수 있는 최종 기획서는 나오지 않았다. 기획과 프로그래밍 모두 서로의 고집을 피우는 바람에, 프로그래밍 팀은 소중한 개발 시간을 잃어버렸고, 기획 팀은 프로그래밍 팀과의 쓸모없는 소모전으로 인하여 좀 더 나은 서비스로 개선 할 수 있는 기회를 잃어버렸다. 프로젝트는 어정쩡한 기획서를 바탕으로 기본 골격만을 결정 한 뒤, 이후 발주사에서 떨구는 이슈들에 대한 무한 수정이라는 임기응변으로 진행되기 시작했다. 여기에 1편에서 이야기 했던 인력 문제도 겹치면서 프로젝트는 당장 오늘 하루 어떻게 얼마나 진행될 지도 모르는 일의 연속이 되어버렸다.

임기응변으로 일이 치뤄지면서 개발 프로세스는 완전히 무너져버렸다. 이슈는 수시로 발생하고, 어떤 경우에는 문서로 정리할 여력도 없이 구두로 일이 진행되기 시작했다. 이슈 트래킹 시스템의 도입은 꿈 꿀 수도 없었다(Mantis나 Trac을 쓰자는 내 의견은 바쁘다는 이유로 묵살되었다). 심심한 경우 동일 이슈가 반복해서 나오거나, 수정했던 이슈를 다시 복원하는 등의 일들이 수 없이 발생하기 시작했다. 개발 팀은 전체적으로 지쳐가고, 점차 서로에 대해서 믿지 않기 시작했다. 지금에 와서 생각해 보면 프로젝트가 일단 종료되었다는 사실이 신기 할 정도로 개발에 참여한 구성원들의 사기는 최악으로 치닫았고, 결국 프로젝트가 종료가 된 지금에서도 회복되질 않았다.

프 로젝트에 참여할 당시 애자일 개발 방법론에 대해서 공부를 하면서 이러한 문제에 대한 하나의 대안이 될 수 있을 거라 희망을 하였지만, 회사에서 이에 대해 그나마 이름이라도 들어본 사람은 다섯 손가락 안에 꼽을 정도로 애초에 이에 대해서는 완전히 무지한 사람들의 집합이었기 때문에 도입에 대한 이야기 자체를 시작하기 조차 힘들었다. 무엇보다 프로그래밍 팀의 개발 프로세스에서는 지금에서는 프로젝트 개발에서의 기본 중의 기본이라 할 수 있는 '형상 관리'조차 제대로 이루어지지 않은 상황에서 애자일 같은 이야기는 어디까지나 사치였다-아직도 SVN을 프로그래밍 팀 중 일부만 사용하고 있고, 웹 파트의 경우에는 소스를 여전히 로컬 디스크에'만' 저장하고 있다. 물론 애자일을 바로 도입했다고 해도 시행착오 없이 완벽하게 안착 시킬거라 생각치는 않는다. 하지만, 지금처럼 아무도 발견되는 문제를 바라보기만 하기만 하지 않고, 적극적으로 나서서 개선을 하려고 노력했다면 조금은 더 바람직한 방향으로 이동을 했을거라 믿는다.


끝. 그리고...

P 프로젝트는 여러가지면에서 실패 요인을 안고 있었다. 어떤 요인들은 개선이 가능 했지만, 그렇게 하지 못했고, 어떤 요인들은 여러 환경적인 요인으로 인해 개선 할 수 없었으며, 어떤 요인들은 개선을 바랬지만, 그렇게 되질 않기도 했다. 사실 몇번이라도 엎어질 뻔 한 프로젝트가 그나마 끝을 본것은 품질(Quality)과, 시간을 바치고 결과물을 얻어낸 '등가교환'의 결과일 뿐이다.

이 글을 작성하기 몇일 전 회사의 이사님과 면담을 가질 기회가 있었는데, 현재의 P 프로젝트의 품질에 대한 불만과 원인에 대해서 나름대로의 생각을 이야기 하는 것을 들었다. 나름 어떠한 부분에 있어서는 동조 할 만한 이야기가 있었지만, 그분의 의견 중 '계획만 확실하면 1명의 작업자가 동시에 대여섯개의 프로젝트를 진행하더라도 무리가 없다'는 이야기에는 실소를 금할 수 밖에 없었다. 완벽한 계획이라는 '이상'에 대해서 이야기 하는 것은 둘째 치고, 소프트웨어 프로젝트를 라인에서 생산하는 자동차 정도로 생각하고 있다는 사실에 경악이 아니라 그냥 헛웃음이 나올 뿐이었다.

적절하지 못한 인력 배치, 회사의 능력을 넘어서는 프로젝트 동시 진행, 개개인의 자질 부족, 모든 것은 적절한 상황 판단을 하지 못하는 지휘부의 무능이 가장 큰 원인이었다는 생각에 쐐기를 박아버린 사건 이후로, 개인적으로는 그나마 조금이라도 남아있던 회사에 대한 애정 자체가 완전히 사라져 버렸다. 암울한 것은 이후 상황은 되려 더 나빠져서 문제들은 해결이 되지 않은 상태에서 '형식적인 문서화', '책임 공방', '정치적인 싸움' 등의 새로운 문제들이 되려 더 추가되고 있다.

이 글을 남기는 이유는 다음 또는 다다음 프로젝트를 내가 직접 진두 지휘를 하게 될 때의 '거울'로 쓸 수 있기를 기대하면서 작성하였다. 결과는 실망스럽고 도중에 많은 문제점들이 도출되어 있는 프로젝트였지만, 덕분에 프로젝트 진행에서 해선 안될 일, 꼭 해야 할 일 등 많은 것들을 배울 수 있는 기회도 되었다(또한 글에서 언급을 하진 않았지만, 개인적으로는 UI 디자인에 대한 치명적인 실수-서비스의 UI는 내가 돌이켜 생각해봐도 쓰레기일 정도로 복잡하고 일관적이지 못하다-에 대해서 반성하는 기회도 되었다). 다만, 똑같은 실수를 미래에 하지 않기만을 다짐하는 수 밖에는 아직은 내가 할 수 있는 일은 없다는 것은 마지막으로 남아있는 아쉬움이다.

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by Irene

2009/01/10 22:39 2009/01/10 22:39
, , , , , ,
Response
No Trackback , 2 Comments
RSS :
http://www.heartcomplex.net/blogs/rss/response/494

이 문건은 회사 내부에서  이슈추적과 개발 프로세스와 관련한 의견을 취합하기 개인적으로 작성했던 문서로, 겸사겸사 스스로의 생각도 정리하자는 의미에 비중을 둔 문서였다. 여러가지 사정으로 문서 자체는 지금 현재로써는 회사 내부의 여러사람들에게 묵살당한 모양이지만, 행여나 비슷한 고민을 하는 분들이 계시다면 한번 생각을 공유해 보았으면 하는 생각에 전문을 올려본다.

----

이슈 트래킹을 왜 쓰는가에 대한 고민과 어떻게 쓰는가에 대한 고민이 필요하다고 생각 함.


  1. 일차적 이용 목적

    • 버그 발견 시 해당 버그에 대한 단일 리포트 창구 필요
    • 취합된 버그에 대한 발견-처리-결과에 대한 개별 프로세스별 정확한 통제(Control) 및 관리(Management) 목적
    • 문제가 되는 이슈의 통계 처리를 통한 개발 진척사항 및 마일스톤의 관리 - 업무 중복의 회피
    • 커뮤니케이션의 극대화
  2. 쓸 수 있는 App

    • 맨티스(Mantis) : 전형적인 이슈 트래킹 어플리케이션. 이슈 리포트에 대한 세부적인 옵션 컨트롤이 가능하며, 간단한 기능과 한글화가 장점. 단점으로는 지나치게 많은 리포트 옵션과 시각적으로 깔끔하지 못한 인터페이스-현재 사내 서버에 Mantis가 설치 되어 있으나 사실상 용도 폐기 상태 임.
    • 트랙(Trac) : 이슈 트래킹 및 프로젝트 매니지먼트 기능 등이 결부되어 있는 어플리케이션. SVN과 연동하여 개발 소스에 대한 열람이 자유롭고, Wiki를 통한 프로젝트 문서화가 손쉽다는 점, 마일스톤 및 연표 기능으로 프로젝트 진행 상황 확인이 용이하며 인터페이스가 깔끔함. 단점으로는 현재 최신 버전에 대한 한글 버전이 존재하지 않음(한글화는 Ver 0.10.4에서 종료. 현재 릴리즈 된 버전은 0.11.4, Ver 0.12 부터 다국어 지원 예정)-대표적인 Trac 사용 프로젝트(국내)의 예로 태터 앤 컴퍼니의 텍스트 큐브 개발 페이지(http://dev.textcube.org/) 및 제로보드 개발 페이지(http://trac.zeroboard.com/trac/wiki).
    • 버그질라(Bugzilla) : 해외 오픈소스 계열 이슈 트래킹 어플리케이션 중 가장 유명한 어플리케이션으로 모질라 재단, NASA 등의 프로젝트에서 사용중이며, 강력한 통계 처리 기능이 장점. 사용이 복잡하고 한글화가 전혀 되어있지 않다는 점이 가장 큰 단점
  3. 프로세스 중 적용 범위 (1차)

    • 이슈 트래킹 : 버그 및 개선 사항에 대한 '보고 - 처리 과정 - 결과 확인' 의 프로세스에 대한 통제
    • 제품 품질 완성도에 대한 정량적인 측정 : 버그 발생 및 처리, 잔여 이슈에 대한 정략적인 측정
    • 난립되어 있는 문서의 통일 : 각종 양식의 버그 리포트의 통폐합
  4. 프로세스 최종 적용 범위

    • 프로젝트 별 난립되어 있는 문서의 템플릿 통일화
    • 수동적이고 책임 회피적인 업무 진행에서, 전체 구성원의 책임감 고양 및 자발적인 업무 참여 유도
    • 전체적인 프로젝트 제작 프로세스에 대한 재 검토 및 효율화를 위한 개선
    • BPR(Business Process Reengineering)
  5. 도입 시 장기적으로 예상되는 문제점과 해결 방안

    • 관리자 부재로 인한 개점휴업 상태 발생 : 관리 담당자의 지정 및, 각 프로젝트 참여자의 의무 사용 독려(자율적인 참여 방식과 더불어 강제적인 사용 의무화 방안도 포함 되어야 함 : 갱신 사항에 대한 메일링 리스트 확인, RSS 리더의 강제 등록 등으로 이슈가 발생하고 등록되는 즉시 각 구성원이 최대한 빠르게 파악 할 수 있는 시스템 구성은 별도의 문제임)
    • 발생된 이슈에 대한 사용자 전체의 적극적인 참여를 어떻게 이끌어 낼 것인가? : 이슈 트래킹을 이용하는 기본 프로세스는 상명하달 식의 업무 구조가 아닌, 개인이 각자 일을 찾아서 진행하는 '자발적 참여'를 전제로 함. 수동적이고 피동적인 조직 문화를 변경해야 할 필요가 발생 할 수 있음.
    • 변화에 대한 지속적인 수용력 필요 : 이슈 트래킹을 도입하는 것은 작게는 버그 트래킹 프로세스의 변화에서 부터 크게는 전체 프로세스의 변화를 필연적으로 가져오게 될 수 있으나, 각 구성원 전체에 변화에 대한 인식 수용이 없이는 '변화에 대한 저항'이 발생할 가능성이 아주 높음. 지속적인 변화 및 개선에 대한 전 구성원의 공감대가 필요한 사항이며, 관리계층은 이를 뒷받침 해 줄 수 있는 능력을 확보해야 함.
    • 프로젝트 일정에 따른 프로세스 통제가 불가능하게 될 경우 : 일단 그런 상황이 발생하지 않도록 만들어야 하며, 만약 통제 불가피한 상황이 발생할 경우라도 기본적인 프로세스는 유지한다는 의지가 필요

----

아무것도 없는 상태에서 이런 이야기를 꺼내는것도 어려운 일임에도 불구하고 내밀었건만, 이를 관철시키는 것은 더욱더 힘든 이야기라는 사실에 오늘도 잠깐 우울한 기분이 들었던 하루.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by Irene

2008/09/17 23:25 2008/09/17 23:25
, , , , , , , , ,
Response
No Trackback , No Comment
RSS :
http://www.heartcomplex.net/blogs/rss/response/482