프로젝트 매니저를 위한 TFS의 기능

일반입력 :2005/11/28 10:24

이병철(IT 테크라이터)

지난 22일과 23일 양일간 마이크로소프트는 비주얼 스튜디오 2005, SQL 서버 2005, 비즈토크 서버 2006에 대한 신제품 발표회를 개최하였다. 드디어 공식적으로 런칭 된 것이며, 앞으로 어떠한 시장의 반응을 얻을지 흥미롭게 지켜 볼 일이다.

마이크로소프트는 비주얼 스튜디오 팀 시스템을 ALM (Application Lifecycle Management) 솔루션으로 자리 매김하고 있다. 이는 비주얼 스튜디오가 더 이상 단순한 개발 도구가 아니며, 애플리케이션의 생애 주기 전반에 걸친 작업들을 통합하여 관리 할 수 있다는 의미를 가진다.

본 연재에서는 비주얼 스튜디오 팀 파운데이션 서버(이하 TFS)의 기능을 중심으로, 프로젝트 매니저에게 어떠한 도움을 줄 수 있는지에 대해 알아 보도록 하겠다. 단, 각각의 기능을 구체적으로 기술 하는 것은 노규남 님의 How to (http://www.zdnet.co.kr/microsite/powerguide/techguide/howto/)에서 상당 부분 진행 되었으므로, 전반적인 흐름과 이점을 중심으로 알아 보도록 할 것이다.

프로젝트, 프로젝트 매니지먼트, 프로젝트 매니저

프로젝트 매니저를 위한 TFS의 기능들을 살펴 보기 전에, 우선 프로젝트와 프로젝트 매니지먼트의 개념에 대해 정확히 이해 할 필요가 있다. 매우 흔하게 사용되는 용어들이기는 하지만, 그 개념이 명확하지 않게 사용되는 경우가 많으며 또한 자의적으로 정의되는 경우가 많기 때문이다.

PMI(Project Management Institute)는 프로젝트의 핵심적인 특성을 다음과 같이 규정하고 있다.

  • Temporary : 프로젝트는 명백한 시작과 끝을 가지고, 제한된 기간 내에 수행 된다. 계속 진행되는 반복적인 작업은 운영(Operation)으로 분류된다.
  • Unique : 프로젝트는 다른 어떠한 작업과 정확하게 일치하지 않는 고유성을 가진다. 아파트를 건설한다고 할 경우, 각 공사마다의 특이성이 있고 각각의 공사는 고유성을 가진다고 볼 수 있다. 반면에 A라는 사람과 B라는 사람의 회원 가입을 처리하는 것은 고유성이 존재하지 않으므로 프로젝트로 구분하지 않는다.
  • Progressive Elaboration : 프로젝트는 점진적으로 구체화되는 특성을 가진다. 앞서 언급했듯이 프로젝트는 고유성을 가지고 있기 때문에 항상 불확실성을 동반한다. 이러한 불확실성은 프로젝트의 초반에는 매우 크지만, 프로젝트가 진행 되어 감에 따라 점차 줄어들게 되며 프로젝트는 점진적으로 구체화 된다.
  • 프로젝트 매니지먼트란 이와 같이 불확실성을 가지고 있고, 제한된 기간에 수행되어야 하는 프로젝트의 요구 사항을 충족시키기 위해 지식, 기술, 도구 등을 사용하는 것을 말한다. 프로젝트의 업무 범위, 기한, 비용, 위험 요소, 품질 등이 관리되어야 하며, 이러한 일에 대한 책임과 권한을 가지고 프로젝트를 진행하는 사람이 바로 프로젝트 매니저이다.

    즉 프로젝트 매니저는 프로젝트를 성공으로 이끌기 위한 책임과 권한을 가지고 모든 노력을 다 하는 사람이며, 다양한 요구 사항들을 충족시키기 위한 중요 요소들을 관리 하는 사람이다. 그러므로 소프트웨어 프로젝트를 수행하는 프로젝트 매니저에게는 기술적 이해도가 중요하긴 하지만 필수적인 사항은 아니다. 오히려 가장 크게 요구 되는 능력은 다양한 이해 관계자들을 관리하는 일과 그를 위한 커뮤니케이션 기술이라 할 수 있다.

    이제 프로젝트 매니저가 수행해야 하는 이러한 일들을 TFS가 어떻게 지원 해 줄 수 있는지 알아 보도록 하자.

    비주얼 스튜디오 팀 파운데이션 서버의 구성

    TFS는 소프트웨어 개발 프로젝트에서 협업을 효과적으로 수행 하기 위한 통합된 환경을 제공한다. 여기에는 작업 항목(Work Item)의 관리, 빌드 자동화, 버전 컨트롤, 리포팅 등이 포함된다.

    프로젝트 매니저는 프로젝트 수행 중에 발생하는 여러 작업들의 현황을 파악 할 수 있어야 하며, 이를 위해서는 기본적인 데이터가 수집되어야 한다. 이러한 데이터의 수집은 개발 관계자 (아키텍트, 개발자, 테스터 등)이 입력하게 되며, 이러한 데이터를 분석하고 검토하여 프로젝트 매니저는 프로젝트의 진행 상황에 대해 명확히 이해 할 수 있다.

    엑셀 및 프로젝트와의 연동

    프로젝트 매니저는 이해 관계자와의 의사 소통을 위해 다양한 문서를 작성한다. 또한 프로젝트 매니저는 PMIS (Project Management Information System)를 사용 해야 할 필요도 있다. PMIS는 프로젝트에 소요 되는 자원 및 비용의 관리 및 추적, 스케줄 및 차트 작성, What-If 분석과 같은 작업을 수행 할 수 있으며, 마이크로소프트 프로젝트는 가장 대중적인 PMIS중의 하나이다.

    이러한 작업을 돕기 위해 팀 파운데이션 서버는 엑셀 및 프로젝트와의 연동 기능을 제공한다. 예를 들어 작업 항목의 목록을 엑셀로 작성 한 후, 이를 TFS로 임포트 할 수 있으며, 작업이 진행 됨에 따라 변동 되는 내용을 다시 엑셀로 동기화 할 수 있다.

    마찬가지로 마이크로소프트 프로젝트를 통해 태스크에 담당자를 할당한 경우, 해당 내용을 TFS의 데이터 웨어하우스와 동기화 할 수 있다.

    작업 항목(Work Item) 관리

    비주얼 스튜디오 팀 시스템에서 작업 항목이란 태스크, 버그, 요구사항, 이슈 등을 통칭하는 말이다. 이러한 각각의 유형들은 별개의 시스템을 통해 관리 되는 것이 일반적이다. 하지만 비주얼 스튜디오 팀 시스템에서는 이러한 여러 유형의 작업 항목들을 통합하여 관리 한다.

    각각의 작업 항목은 작업 항목에 대한 설명, 담당자, 현재의 진행 상태 등의 정보를 가지고 있고, 이러한 정보들을 이용하여 프로젝트의 진행 상황을 파악 할 수 있다.

    앞서 이야기 하였듯이 프로젝트 매니저는 주로 사용하는 마이크로소프트 엑셀이나 마이크로소프트 프로젝트를 이용하여 작업 항목의 목록을 작성 하고, 그 내용을 비주얼 스튜디오 팀 파운데이션 서버의 데이터 웨어하우스에 쉽게 반영 하여 동기화 할 수 있다.

    이렇게 반영 된 작업 항목들은 이제 개발 팀의 모든 관계자에게 통보되고 사용된다. 개발 팀원은 비주얼 스튜디오 2005를 실행하면 자신에게 할당 된 작업 항목을 볼 수 있으며, 작업 항목의 내용을 수행한 후에는 그 결과를 반영하여 작업 항목의 상태를 변경한다. 이와 같은 방식으로 개발에 관계 된 모든 팀원은 자신의 작업 항목을 처리하게 되고, 그 결과는 모두 중앙 집중적인 데이터 웨어하우스에 저장 되게 된다.

    이러한 변동들은 현재의 진행 상황을 정확하게 반영하게 되며, 프로젝트 매니저는 프로젝트의 진행에 대한 가시성을 얻어 낼 수 있다.

    버전 컨트롤

    TFS는 기존의 소스세이프보다 향상 된 버전 컨트롤 기능을 가지고 있다. 버전 컨트롤이란 소스 코드나 프로젝트 관련 문서가 변경 될 때, 각 버전의 변경 사항을 관리하는 기능으로 TFS는 네임스페이스 버져닝, 자동 체크인, 변경 세트 관리 등의 향상 된 기능을 제공한다.

    버전 컨트롤 기능을 통해 소프트웨어 개발 프로젝트의 핵심 산출물인 소스 코드를 안전하게 보호/관리 할 수 있다. 소스 코드에 수정이 가해진 후 어떤 문제가 발생한다면, 즉시 이전 버전의 문제 없는 코드로 돌아 갈 수도 있고, 각각의 버전이 모두 보존되므로 각 버전간의 차이점을 분석하여 버그가 발생한 위치를 추정 할 수도 있다.

    하지만 TFS 버전 컨트롤의 진정한 강점은 앞서 설명한 작업 항목과의 연동을 통해 이루어 진다. 프로젝트 매니저는 간단한 설정을 변경 하는 것 만으로 개발자의 소스 체크인을 통제 할 수 있다. 예를 들어 소스 코드의 체크인시 어떠한 작업 항목과 관계 된 것인지를 반드시 지정하도록 하는 정책을 적용 할 수 있는데, 이렇게 할 경우에 모든 소스 코드의 변경 사항은 작업 항목과의 연계성을 가지게 된다. 이러한 작업 방식을 강제 함으로써 프로젝트 매니저는 어떠한 소스가 수정되고 어떠한 작업 항목들이 처리되고 있는지 파악 할 수 있다.

    리포팅

    비주얼 스튜디오 팀 파운데이션 서버는 태스크, 버그, 요구 사항 등을 모두 작업 항목으로 관리하며 그 내용은 모두 통합 된 데이터 웨어하우스에 저장 된다.

    비주얼 스튜디오 팀 파운데이션 서버는 SQL 서버 2005를 데이터 웨어하우스로 이용하며, SQL 서버 2005의 리포팅 서비스를 활용한다. 프로젝트 매니저는 TFS가 축적한 데이터와 SQL 서버의 리포팅 서비스의 결합을 통해 다양한 형태의 리포트를 쉽게 작성하고 조회 할 수 있다.

    남은 버그 수, 잔여 작업 리스트, 품질 검사 결과 등 20여 종의 리포트를 제공하며, 이러한 리포트를 이용하여 프로젝트 매니저는 현재의 진행 상황을 정확하게 파악 할 수 있다.

    또한 비주얼 스튜디오 팀 파운데이션 서버의 데이터 웨어하우스는 확장이 편리하게 설계되어 있다. 어댑터를 이용하여 현재 진행중인 프로젝트 외부의 데이터와도 쉽게 연결 될 수 있으며, 이 기능을 통해 프로젝트 매니저는 크로스-도메인 리포트를 작성 할 수 있다. 이러한 기능은 이전 프로젝트와 현재 프로젝트의 진행 상황 비교 등의 다양한 용도로 활용 할 수 있다.

    프로젝트 포탈

    또한 TFS는 윈도우 쉐어 포인트 서비스와 연동되어 자동적으로 프로젝트 포탈 사이트를 생성 해 준다. 프로젝트 사이트를 통해 프로젝트 매니저는 프로젝트 진행 중에 생성된 모든 문서를 비주얼 스튜디오를 실행하지 않고도 볼 수 있으며, 다양한 리포트 역시 웹 사이트를 통해 즉시 확인 할 수 있다.

    또한 쉐어 포인트 서비스가 제공하는 다양한 웹 파트들을 이용하여 사이트를 커스터마이즈 할 수 있고, 개발 팀원들에게 필요한 정보를 적시에 제공 할 수 있다.

    이러한 기능들을 통해 TFS는 개발 팀원간의 커뮤니케이션 및 협업을 더욱 편리하게 해 주며, 프로젝트 매니저에게는 언제 어디서든 프로젝트의 현황을 파악 할 수 있는 이점을 제공한다.

    하지만 아직은 완벽한 통합이라고 보기에는 좀 부족한 면도 없지 않다. 작업 항목의 내용은 프로젝트 포탈을 통해 조회/수정 할 수 없으며, 프로젝트 포탈에 추가 한 내용은 비주얼 스튜디오에서 바로 확인 할 수 없다.

    비주얼 스튜디오 내부에서 포탈 사이트를 띄울 수 있으므로 그리 큰 문제라고 할 수는 없지만, 포탈을 통해서만 볼 수 있는 정보와 비주얼 스튜디오를 통해서만 볼 수 있는 정보가 나누어 지는 것은 그다지 바람직하지 않다. 프로젝트 진행에 있어서 어떻게 정보를 관리 할 것인가에 대한 원칙을 정하고 그를 준수하도록 유도해야 하기 때문이다.

    프로젝트 쿼리

    그리고 프로젝트 매니저는 축적된 데이터 웨어하우스를 대상으로 다양한 검색을 수행 할 수 있다. 수 십여 개에 이르는 필드의 값을 원하는 대로 검색 할 수 있고, 필요하다면 여러 항목을 And/Or 조건을 이용하여 검색 할 수 있다.

    비주얼 스튜디오 팀 파운데이션 서버는 Team Query와 My Query의 두 가지 형태의 쿼리를 지원한다. Team Query로 작성한 경우에는 개발 팀원 전원이 함께 해당 쿼리를 공유하여 사용 할 수 있고, My Query로 작성한 경우에는 작성자 본인만이 해당 쿼리를 실행하고 결과를 확인 할 수 있다.

    이러한 검색 쿼리는 필요한 경우 저장 해 두고 얼마든지 재실행 할 수 있다. 예를 들어 내가 해야 할 남은 작업이라는 쿼리를 작성한다면, 담당자가 자신이고 작업 항목의 상태가 아직 완료 상태가 아닌 것을 지정하면 될 것이다. 이렇게 작성된 쿼리를 이용하여 필요한 검색 결과를 언제든 확인 할 수 있다.

    그리고 이러한 쿼리 기능은 마이크로소프트 엑셀 및 프로젝트와 결합되어 강력한 시너지 효과를 낼 수 있다. 예를 들어 급하게 프로젝트에 대한 차트를 그려야 할 필요가 있고, TFS가 기본적으로 제공 되는 차트에 이러한 차트가 없는 경우를 가정해 보자.

    프로젝트 매니저는 필요한 쿼리를 작성하여 저장한 후 'Open in Microsoft Excel' 또는 'Open in Microsoft Project' 명령을 이용하면, 쿼리의 검색 결과를 엑셀이나 프로젝트에서 볼 수 있다. 이제 프로젝트 매니저는 익숙한 오피스 프로그램을 이용하여 차트를 작성하거나 하는 일을 쉽게 해 낼 수 있다.

    마치며

    지금까지 살펴 본 바와 같이, TFS는 프로젝트 매니저의 업무를 도울 수 있는 다양한 기능들을 제공한다. 통합 관리 되는 데이터 웨어하우스와 리포팅 기능은 프로젝트 매니저에게 현재 수행중인 프로젝트에 대한 분명한 가시성과 통찰력을 제공 해 준다. 또한 프로젝트 포탈을 통해 개발 관계자간의 협업을 도와 주며, 엑셀 및 프로젝트와의 연동을 지원하여 각 애플리케이션이 제공하는 고유한 기능을 최대한 활용 할 수 있도록 해 준다.

    소프트웨어 프로젝트의 특성상 진행 상황 및 산출물을 파악하는 것은 쉽지 않다. 시각적으로 최종 제품으로 눈에 드러나는 것은, 해당 소프트웨어의 사용자 인터페이스일 뿐이지 내부적인 부분은 파악하기가 매우 힘들다. TFS의 도입은 프로젝트 매니저의 이러한 문제점들을 상당히 줄여 줄 수 있다.

    하지만 이러한 통합적인 제품을 처음 출시 하는 것이기 때문에 아쉬운 면이 없지는 않다. 앞서 언급하였듯이 프로젝트 포탈과의 좀 더 유기적인 연계가 필요하다. 또한 많은 서버 구성 요소들을 엮어 두었기 때문에 서버 시스템의 부하가 큰 편이며, 시스템의 셋업과 설정도 상당히 어렵다. 특히 많은 수의 사용자를 지원하기 위해 멀티 서버 환경을 구축하려 한다면 이는 상당히 전문적이고 복잡한 작업이 된다.

    TFS의 전반적인 기능을 프로젝트 매니저의 관점에서 한 번에 설명하려 하니 상당히 긴 글이 되어 버렸다. 다음 연재에서는 이러한 시스템을 실제로 조직에 도입하기 위해 필수적인 커스터마이즈에 대해 알아 보도록 하겠다.

    필자 이병철님은 CISA, PMP, MCSD .Net, SCJP로 10년에 걸친 소프트웨어 실무 경험을 가지고 있으며, 생산성을 높여 줄 수 있는 개발 툴에 대한 관심이 높다.