본문으로 바로가기

프로젝트 및 업무 일정 관리 시스템 리뉴얼

category 나의 일 2015.01.11 17:41

예전에 만들어 사용하던 SW 기술지원팀의 프로젝트 및 일정관리 시스템은 단지 "고객사"-"프로젝트" 단위로만 일정 등록이 가능했다. 하지만 필자가 프리세일즈를 수행하는 컨설팅팀으로 자리를 옮기면서 업무의 종류가 다양해 졌다. 


고객사 관련 업무가 아닌 제품소개자료의 작성

기술채널사의 엔지니어들을 대상으로 하는 정기교육의 강의 

또는 외부 강의...

홈페이지에 업로드 될 기술자료의 작성...

일주일에 한두 번씩 나가는 제품설명회...


등등 고객사와 프로젝트의 분류 만으로는 감당이 안되는 다양한 업무들을 함께 수행하게 되었다.


그래서... 기존의 프로젝트 및 일정관리 시스템을 리뉴얼 하면서 업무의 분류를 조금 더 세분화하여


공통업무,

세일즈업무,

컨설팅업무,

고객사,

연구/개발업무


등으로 세분화하여 업무를 등록하고 일정을 관리할 수 있도록 리뉴얼 하였다. 이 시스템은 CentOS 6.4, Apache 2, Mysql 5, PHP 5 로 구축된 서버에 그누보드 5.0을 설치한 뒤 PHP 코드를 구현하여 구축하였다. 사실 전문 개발자와 코웍할 수 있다면 판매할 수 있는 개발/영업/구현을 아우르는 CMMI 시스템을 만들어 비지니스를 해보고 싶은 생각도 있다.


1. 팀관리 및 팀원관리


어떤 시스템을 관리하든 멤버와 그룹의 관리는 필요하다. 예전의 일정관리 및 프로젝트 관리 시스템은 제로보드4의 회원시스템을 그대로 사용하였다. 제로보드는 회원관리에 그룹의 개념이 들어가 있어 그룹을 그대로 팀으로 구분하면 되었다. 하지만 이번엔 그누보드를 사용하기로 했다. 왜냐하면 그누보드에는 모든 테이블에 확장필드라는 것이 10개씩이나 존재해서 훨씬 확장성이 높기 때문이다. 회원의 정보에 확장필드를 사용하여 팀과 팀ID를 기록하여 사용하기로 했다.


당연히 그누보드의 회원에 대해 팀을 할당하고 변경할 수 있도록 페이지를 만들었다.



2. 업무 분류 관리 (카테고리, 대분류(고객사), 단위업무(프로젝트) 관리)


이 부분의 개념이 제일 까다롭다. 모든 업무 수행은 업무분류(대업무)와 단위업무(소업무)로 구분하였다. 공통업무의 "휴가"를 예로 들면 휴가는 전 사원의 공통업무다. 그리고 휴가에는 "연차휴가", "월차휴가", "병가", "공가" 등 다양한 형태의 휴가가 있다. 따라서 "휴가"라는 대업무에 4개의 단위업무가 포함된다. 


기술지원업무의 경우에는 업무분류(대업무)를 "고객사"로 잡았다. 그리고 단위업무는 "프로젝트(사업)"으로 정했다.

모든 업무를 2단계로 구분하여 등록함으로써 DB에서 업무분류 테이블과 단위업무 테이블 2개로 모든 업무를 관리하도록 설계했다. 다만 DB에는 업지만 업무분류(대분류)를 4개의 카테고리로 구분하여 대분류에 카테고리가 지정되도록 했다. 결국 3단계의 업무 구성이 이루어지도록 설계하였다.


즉 "공통업무", "고객사지원업무", "컨설팅업무", "연구/개발업무"의 4개의 카테고리 하위에 업무분류(대분류)와 단위업무(소분류)가 등록된다.


이렇게 등록된 단위 업무/프로젝트는 이슈 관리는 물론 산출물 관리에서도 주요 키로 사용될 수 있다.(보러가기)


3. 일정 수행의 유형 관리


일정관리 및 프로젝트 관리를 수행하다 보면 단순히 업무의 종류 또는 프로젝트 단위로만 분석하게 되는 것은 아니다. 일반업무나, 프로젝트, 개발업무는 모두 각 업무 특성에 적합한 업무의 유형 혹은 업무의 수행 단계가 있다.


예를 들어 내가 몸담고 있는 서버보안 프로젝트의 경우 "현황분석","설치", "정책협의", "정책적용", "감사로그분석", "정책검토/수정" 등의 단계별 업무가 있다. 따라서 이러한 단계를 일정 등록 시 "일정 유형"으로 지정하게 되면 사후 프로젝트별로 어느 단계에서 얼마나 시간을 소비했는지를 산출할 수 있다.



다만 업무분류 즉, 일반업무인지, 고객사 지원업무인지, 컨설팅업무인지, 연구/개발업무인지에 따라 모두 업무수행의 단계(일정유형)가 다르기 때문에 각각 분리하여 업무분류가 일반업무인 업무의 일정을 등록할 때와 고객사지원업무의 일정을 등록할 때 "일정유형"을 각기 다르게 지정할 수 있어야 하는 것이 이번 리뉴얼의 핵심이라고 할 수 있었다.



4. 일정 등록


업무유형(카테고리) - 업무분류(대분류) - 단위업무(프로젝트) 의 업무 구성과 일정유형의 지정이 끝나면 업무 수행에 따른 일정을 등록할 수 있다.


일정은 아래와 같이 달력에서 등록하고 관리할 수 있다.



등록된 일정은 "예정"과 "완료" 두 상태로 보여지며 제목과 내용, 분류 같은 관리 불가능한 단순한 형태가 아닌 업무분류와 단위업무, 그리고 일정유형 등 분류체계가 모두 적용되어 보여진다. 마우스 커서를 일정위에 올리면 다양한 정보가 보여지게 되도록 만들었다. 또한 팀별로 일정을 분리하여 선택된 팀의 팀원에 대한 일정만 보여지게 함으로써 그누보드의 회원시스템의 레벨에 따라 타 팀의 일정에 접근하지 못하도록 추후 수정이 가능하다.


초록색 + 버튼을 클릭하면 일정이 등록되며 일정을 클릭하면 일정을 수정할 수 있다.


일정등록 화면은 아래와 같다.



<일정 입력 편집기를 그누보드에 포함된 CKEditor와 네이버 스마트에디터로 변경하는 방법 보러가기>


위 화면은 "연구/개발"업무로 지정된 제품과 제품에 대한 개발 단위업무를 선택했을 때의 일정 등록/수정 화면이다. 일정을 신규 등록할 때는 "업무분류"-"단위업무" 목록을 보고 선택하여 지정하도록 되어 있으며 일정유형에는 "연구/개발"업무의 일정유형으로 등록된 일정유형목록이 드롭다운리스트 형태로 보여진다.



위 화면은 "공통"업무 및 "컨설팅" 업무로 지정된 단위업무를 선택했을 때의 일정 등록/수정 화면이다.



위 화면은 "고객사"로 등록된 업무분류의 단위업무를 선택했을 때 보여지는 일정의 등록/수정 화면이다.


이 시스템을 이용하면 프로젝트 또는 단위업무별로 사업이나 업무가 종료되었을 때 어느정도의 공수가 투입되었는지 누가 얼만큼의 업무를 수행하였는지, 프로젝트의 단계별로 투입된 인력 등을 산출할 수 있다. 당연히 산출된 공수에 투입인원별 공임을 곱하면 프로젝트 수행에 소요된 인건비를 계산할 수도 있다.



이 시스템을 얼마나 사용하게 될지는 모르지만... 뭔가 개발을 하고 완성(?)된 물건을 동작시켜보면 느껴지는 짜릿한 쾌감은 예나 지금이나 똑같은 것 같다. 


내 성격(?)상의 성향으로 인해 개발자가 아닌 엔지니어/컨설턴트의 길을 가고 있지만 취미 삼아 머리 속에 쌓여있던 로직을 코드로 구현하다 보면 내 몸에 개발자의 DNA도 있는 것은 아닐까 느껴지기도 한다.


<추가 2015.03.18>

실제로 사용해 볼 수 있는 환경을 공개합니다. 언제까지 공개될지는 알 수 없지만 사용해보시고 좋은 의견(?) 주시면 감사하겠습니다


<추가 2015.11.06>

다른 테스트로 인해 폐쇄합니다.


신고

댓글을 달아 주세요

  1. BlogIcon Orangeline 2015.01.13 14:23 신고

    일정관리 시스템 멋진것을 만드셨군요~
    요즘에 운영사 PM으로 개발사를 상대하다보니 이런 프로그램이 있어야 할것같다는 생각을 자주 합니다.
    하지만 10명이내 프로젝트라 도움이 될까도 생각해보게 되네요.

    • BlogIcon taeho Tae-Ho 2015.01.13 14:29 신고

      ㅎㅎ인원수가 적어도...일정관리와...업무수행내역 관리는 꼭 필요하죠..기록이 남지 않으면... 일하지 않은 것과 같다는게 제 원칙비스므리 한거라..

  2. BlogIcon 지후대디 2015.01.15 23:21 신고

    저는 예전에 꽤 비싼 해외 제품을 국내에 맞게 커스트마이징 된 툴을 사용했었는데 그것만큼 기능이 좋아보입니다. 이런툴을 잘 이용해야 하는데 제가 일하는던 예전 직장에서는 개발쪽은 잘 이용하는데 더 필요해 보이는 영업쪽의 이용이 적어서 좀 아쉬움이 있엇습니다. 자체 개발하셔서 사용하시는거라면 돈 버신 겁니다. 사용료가 만만치 않았거든요 ^^

    • BlogIcon taeho Tae-Ho 2015.01.16 09:05 신고

      아이고..과찬이십니다...그저 제가 일하는 회사의 기술업무에 최적화? 되어 있는 거라서 범용으로 쓰기엔 부족한게 많습니다.
      프로젝트의 단계별 진행률을 간트차트로도 표현하고 싶은데...코딩실력이 딸려서 못하고 있기도하구요..