유지보수의 덫에 벗어나라~~~ 갑이 만들어가는 애자일

갑은 항상 고민한다. 특히 어디에서나 하는 고민은 개발업체 휘둘리지 않기위해서 머리를 쥐어짠다
이것은 작은 기업이든, 대기업이든, 정부기관이든 모두하는 고민이다. 개발업체가 마음에 들지 않지만 바꾸지 못하는 곳도 수시로 만날수 있다. 
그이유는 간단하다. 개발은 한순간에 끝나지만 개발했던 업체가 나가고 나면 유지보수를 하지 못하기 때문이다. 특히 유지보수 조차 업체에게 맡긴다면 그것은 헤어나올수 없는 덫에 빠져버린다.
더욱 웃기는 것은 경영자의 입장에서 보면 도저히 이해하지 못하고 전산관리자는 능력없는 사람으로 바로 전락하게 된다.
 참.. 웃기는 노릇이 아닐까 한다. 

위 그림을 개발공정에 맞춰서 한번 그려보았다. 개발사가 개발공정대로 개발을 맞추고 유지보수에 단계에 들어가면 개발이 끝난상태에서 해줄필요가 없고 추가개발에 대해서는 추가적인 비용과 시간을 요구한다.
전산담당자는 개발이 시작되면 요구사항을 이야기하는 사람들의 대표자 격으로 이야기하며 설계단계가 들어가면 설계, 개발단계에서는 행정지원이나 한고 있다. 행정지원이 노는 일만은 아니기에 나름대로 엄청 바쁘게 보낸다.
이 시기에는 대충 이런일들을 한다. 주간회의개최, 기능별로 개발이 잘되고 있는지 공정체크, 테스트 등이다.
좀더 부연설명
주간회의 : 꼭 주간회의는 아니지만 주기적으로 지휘계통의 윗사람과 회의를 통해서 안심을 시킨다. 권위적인 조직일수록 여기에 대한 일은 더욱더 늘어난다.
공정체크 및 테스트 : WBS, 프로젝트일정 등을 통해 개발이 잘되고 있는지 블랙박스 테스트 아니 사용자 테스트수준으로 시행한다. 그러면 좀 안되보이면 개발자를 더 투입하라는 등, 밤새워서 하라는 등 이야기를 하고 자신이 뭔가 엄청난 실력이 있는냥? 기세등등해 한다. (여기에 대한 부분은 나중에 좀더 이야기 하기로 하자)

테스트는 감리업체, 전문 평가업체를 통해서 한다. 물론 여기에도 전산담당자는 계약, 일정조율 등 많은 일을 수행한다.
갑의 기업의 전산담당자는 너무 바쁘다. 시간이 부족하여 매일 야근을 한다. 하지만 개발기간은 금방 지나가고 유지보수라는 늪의 시기가 들어선다.
유지보수 기간에는 갑이 을이 되고 개발업체가 갑이 된다. 신규기능을 개발이라고 할 양이면 전산담당자는 개발업체에 인간적으로 호소를 한다. "다음에 너희가 또 개발을 담당할거야.. (회유), 이건 너희가 당연히 해줘야 되는거야?(협박)" 등 방법은 가지가지 이다. 직접 유지보수를 하기에는 너무 힘들고 개발능력이 있는 전산담당자로 프로그램을 왜 이렇게 만들었는지? 몰라 많은 시간을 투자한다.
유지보수를 업체에 넘겨도 늪의 시간은 당연히 찾아온다. 왜 그 업체랑 계속 계약을 해야하나? 다른 업체로 바뀌기라도 하는 양이면 인수인계는 어떻게 해야하는지? 에 대한 고민은 쏟아져 내린다.
내가 아는 어떤곳은 회사가 3번이나 바뀌었는데로 개발자는 회사를 갈아타며 계속 동일한 사람이 하는 경우 보았다.

그럼 이제 본론으로 들어가서 유지보수의 덫에 벗어나기 위해서는 어떻게 해야 할까? (서론이 너무 길었다..)
1. ALM 을 제대로 구축하고 제대로 이용하자
 이것저것 다 구축하기 함들면 소스관리, 이슈관리 2개만은 확실히 구축하자. 더욱더 중요한것은 이것 사용해서 받드시 개발을 하도록 하자. 저번 글에 이슈관리시스템을 이용해서 어느정도 규모 개발도 하는것을 말한적이 있지만 아주 효율적이다. 너무 큰규모는 힘들겠지만 작은 규모는 매우 효과적이다.
2. SRS를 제대로 작성하자
SRS는 최근 되어야서 좀 적용하는 모습이 보이고 있지만 예전에는 그냥 요구사항 분석서라는 이름으로 대층 넘겨버리는 경우가 많았다. 자세한 사항은 IEEE 문서를 참고하시고 실정에 맞춰보시기를 부탁한다. 한국실정과는 좀 안맞고 여러 샘플을 보고 의미를 찾는데 참고했으면 한다. (나는 아직도 어렵다)
3. 중요부분, 특이한 부분은 반드시 문서를 통해 상세화 하라.
  일반적은 그냥 넘어가더라도 특정부분은 반드시 문서를 통해서 상세화 하여야 한다. UML, 상세설계, 코드분석서 갖가지 이름을 가지는 문서를 통해서 반드시 문서화 해라. 차후에 인수인계에도 유용하게 쓰일것이다.
4. 마지막으로 일일빌드와 코드리뷰를 통해 관리하자
 어려운 일이다. 전산관리자가 직접 코드를 보는것은 결코 쉬운일이 아니다. 하지만 올라오는 파일명이라도 볼수 있도록 하자.
특히 일일빌드는 추천하지 말라는 사람도 많다. 하지만 전산담당자가 빌드를 하는 작업에 참여하라고 권하고 싶다. 이것은 개발을 하라는 것은 아니다. 그냥 이런작업을 참여하면 자연스럽게 문제가 되는부분, 중요부분을 알수 있게 된다. 그리고 임의로 개발되는 부분이 없어지게 된다.

많은 이야기를 하고 싶지만 실력도 부족하고 글솜씨도 부족해서 이렇게 마치고 다음에 좀더 적어보겠습니다.

이슈관리시스템을 활용한 프로젝트 관리법 프로의 하루

이슈관리시스템을 이용하여 프로젝트 관리를 사례를 한 팁으로 이런 방법도 있구나 해서 소개하고자 합니다
이슈관리시스템이 기본이 된지는 오래되었지요
대부분의 기업, 개발사, 조그마한 조직에서도 이슈관리시스템을 이제는 사용하고 있습니다
이슈관리시스템을 잘사용하는 방법은 단한가지 입니다. 모든 일은 이슈관리시스템을 이용해서 해야 한다는 것입니다.
이것을 기초로 하고 버전관리시스템 등을 붙이면 더욱더 효과는 증대되지요

제가 이슈관리시스템에 대해서 논할려고 하는것은 아닙니다. 여기서는 이슈관리시스템을 이용해서 하는 프로젝트를 관리하는 방법을 말씀드립니다.

SI프로젝트를 진행하다 보면 사용자 요구분석 등을 거쳐서 스펙이라는 것을 작성하게 됩니다. 그것이 부족하면 요구사항분석서 라는 것을 작성하게 되지요..문제는 이것을 활용하지 않는다는 것입니다.

예를 들면 요구사항 리스트라는 것을 엑셀로 작성을 할수도 있습니다. 여기 담당자는 누구이고 기간은 얼마나 걸리고 요구자는 누구입지 적게 됩니다. 아주 좋은 문서이지요.. 하지만 PM을 제외하고는 보지 않습니다. 개발자도 안볼뿐만 아니라 요구자도 안보지요. (물론 제품챔피온은 좀 볼수도 있겠네요) 

그리고 개발하느라고 시간이 지납니다. 요구자는 자신이 이런요구사항을 냈는가? 하고 잊어버립니다. 답답할 노릇이지요..

만약에 프로젝트관리를 위한 별도의 툴이 없다면 전 이슈관리시스템을 이용하라고 권합니다.

1. 요구사항을 분석한 리스트를 가지고 개발담당자에게 배분하면서 모두 이슈관리시스템에 등록하라고 이야기 합니다. 
    처음에는 반발하지요.. 변화는 언제나 반발이 있듯이.. 하지만 설명하면 거의 이해를 합니다. 

2. 이슈관리스템에 등록하면서 요구사항을 낸 고객도 같이 프로젝트에 묶습니다.
   이것은 아주 중요합니다. 고객에서 개발경과를 자연스럽게 알려줄수가 있고 수시로 테스트를 해볼수 있는 시간을 줍니다.
   다시말하면 잘못개발되는 것을 막아주는 역할을 합니다.(제가 이방법이 좋다는 이유중에 하나입니다.)

3. 개발자에게 개발기간을 넣어보라고 지시합니다.
    개발기간을 산정하는 방법은 여러가지가 있겠지만 가장 근본은 과거개발했던 경험을 토대로 기간이 산정된다는 것입니다. 그것은 개발을 담당하는 개발자가 산정하고 PM이 평가를 합니다. 개발자가 너무 많은 기간을 넣었다면 PM이 경험에 기초해서 어떻게 개발을 하면 쉽게 되고 기간이 단축되는지를 알려줍니다.

4. PM이 개발자 끼리 묶어주는 역할을 합니다. 
 사실 pair프로그래밍은 현실에서 그리 쉬운편은 아닙니다. 하지만 이방법을 사용하면 PM의 의도에 따라, 기능에 따라 개발자를묶어 줄수가 있습니다. 개발자의 능력향상과 버그를 줄이는 기능이 되지요

5. 고객(요구자)에게 이슈관리시스템을 이용해서 프로젝트를 진행하겠다고 알려주고 수시로 진행사항을 체크해 보라고 합니다.

6. 일일단위로 개발자의 진행결과를 이슈관리시스템에 반영합니다. 

마지막으로 많은 이슈관리시스템 중에서 Gantt 챠트가 있는 것을 권합니다. 그러면 한눈에 프로젝트의 진행경과를 알수 있습니다.
프로젝트관리툴도 좋지만 많은 툴사용보다 현재있는 툴을 사용해 보세요

지금 이렇게 하고 계신다고요.. 그냥 웃으면서 한번 읽어주세요


1 2 3 4 5 6 7 8 9 10 다음


W 위젯

글로벌 소프트웨어를 꿈꾸다
김익환 저
예스24 | 애드온2