Monday, January 02, 2006

Visual Studio 2005의 디바이스 기반 개발 기능

도구, 프로세스, 인적자원의 결합과 균형을 통한 프로젝트의 성공 지향

[ 류한석(컬럼니스트) 2005/12/12]

본론으로 들어가기에 앞서, 먼저 디바이스용 애플리케이션 개발에 대해 간단히 살펴보자. 근래 들어 모바일 또는 엠베디드 기반 개발의 중요성이 급속도로 증대되고 있기 때문에, Visual Studio 2005가 제공하는 디바이스 기반 개발의 장점을 언급하지 않을 수 없다.

Visual Studio 2005 이용함으로써 얻을 수 있는 이점 중의 하나는 포켓PC, 스마트폰 등 디바이스용 애플리케이션을 보다 손쉽게 개발할 수 있다는 점이다. 물론 이전 버전의 Visual Studio에서 디바이스용 애플리케이션을 개발할 수 없었던 것은 아니지만, Visual Studio 2005에서는 개발 환경이 훨씬 더 개선되었다.

Visual Studio 2005에서는 폼 디자이너가 향상되었으며, COM 인터롭 및 커스텀 컨트롤을 지원하게 되었다. 새로운 ARM 에뮬레이터가 제공되며, CAB 생성이 가능하다. 또한 네이티브 개발 및 디버깅이 가능하게 되었다.

아직까지 국내에서는 스마트폰이 활성화되지 못한 상태라서 활용도가 떨어지기는 하지만, 기존의 폰 기반 애플리케이션의 개발 환경에서 제공하지 못하는, Visual Studio 2005만의 생산적인 개발 환경을 꼭 한번 경험해 보기 바란다.

엠베디드 또는 모바일 애플리케이션 개발과 관련된 유용한 정보를 얻기 위해서는 다음의 사이트를 참고하기 바란다: http://msdn.microsoft.com/mobility/ 그리고 추가로, 깊이 있는 정보를 얻을 수 있는 Visual Studio 개발팀(디바이스 분야)의 블로그는 다음과 같다: http://blogs.msdn.com/vsdteam/

프로세스 기반 방법론의 지원
다음에는 프로세스와 도구의 통합에 대해 살펴보자. 독자들도 잘 알다시피 현대의 소프트웨어 시스템은 분산 서비스, 수많은 플랫폼 및 프로토콜, 다양한 언어로 구현된 애플리케이션으로 구성되어 있으며, 기업의 비즈니스를 좌우하는 중요한 운영 환경에서 시스템이 활용되고 있다.

그렇듯 IT의 중요성이 증대됨에 따라 소프트웨어에서 발생한 작은 버그가 기업 비즈니스의 치명적인 손상을 가져올 수 있기 때문에, 사용자에게 인도되기 전에 철저한 품질을 보장하는 것이 무엇보다 중요하다. 일반적인 견해로는 소프트웨어의 높은 품질을 보장하는 가장 중요한 요인은 프로세스인 것으로 알려져 있다. 이에 대한 필자의 의견은 이 글의 마지막 부분에서 살펴볼 것이다.

Visual Studio Team System에서는 소프트웨어 품질 및 프로세스의 향상을 위해 프로세스 템플릿을 제공하고 있다. 작업 항목, 워크플로우, 문서 팀플릿, 리포트, 프로젝트 체크리스트, 그룹 및 허가, 프로세스 안내 등이 그것이다.

MS에서 몇 년 전부터 제공되어 오던 MSF(Microsoft Solutions Framework)는 이제 Visual Studio Team System에 통합되어 있으며, 그것은 기본적으로 애자일 소프트웨어(Agile Software) 개발을 위한 MSF, 그리고 CMMI 프로세스 향상을 위한 MSF로 구분된다.

MSF 프로세스는 커스터마이즈될 수 있는데, Visual Studio Team System과 MSF의 관련성에 대한 자세한 사항은 Tech Guide의 How to에 있는 다음의 아티클을 참고하기 바란다: http://www.zdnet.co.kr/microsite/powerguide/techguide/howto/0,39033218,39141573,00.htm

MSF와 Visual Studio Team System을 연계하고 커스터마이즈하는데 있어, 파트너 업체인 osellus의 솔루션을 활용할 수 있다. 기본적으로 제공되는 MSF 관련 기능에 있어 부족한 부분은 이렇듯 파트너 업체의 협력을 통해 해결책을 제시하고 있다. 해당 솔루션의 자세한 사항은 다음을 참고한다: http://www.osellus.com/msf

조직 문화, 도구 및 프로세스, 인적자원의 효과적인 결합
지금까지 여러 관점에서 Visual Studio Team System을 이용하는 방법에 대해 살펴보았다. 아키텍트, 개발자, 테스터, 프로젝트 매니저 모두에게 있어, 이러한 자동화된 도구를 활용하는 것이 명백히 도움이 되는 것은 사실이다. 하지만 그렇다고 해서 도구에 대한 무모한 환상을 갖는 것은 경계해야 한다.

"도구를 가진 바보도 역시 바보이다"라는 말이 있다. 도구와 프로세스는 인적자원의 능력 발휘를 보조할 뿐이다. 다만 도구와 프로세스가 좋다면 해당 인적자원이 더욱 생산성을 발휘하는 것은 사실이니, 도구의 장점은 그러한 범위 내에서 이해되어야 할 것이다. 그렇듯 도구를 활용할 수 있는 능력과 경험을 갖춘 인적자원, 그리고 그것을 수용할 수 있는 조직 문화는 중요한 전제 조건이라고 할 수 있다.

인프라가 제대로 갖추어지지 않은 조직에게 있어, 새로운 도구와 프로세스는 오히려 해악이 될 수도 있다. 프로젝트 매지니먼트를 제대로 하려면, 그것을 제대로 수행할 수 있는 환경이 조성되고 또한 적절한 인적자원을 확보하는 것이 우선되어야 한다. 그런 후에야 비로소 도구와 프로세스가 제 역할을 할 수 있다.

적절한 조직 문화, 적절한 도구와 프로세스, 적절한 인적자원, 어느 한가지도 소홀히 할 수 없는 요소들이다. 그것을 모두 갖추는 것이 얼마나 어려운 일이냐고 반문하는 사람도 있겠지만, 바로 그것이 그렇게 힘들기 때문에 수많은 소프트웨어 프로젝트들이 실패하고 있는 것이다.

그렇다면, Visual Studio Team System와 같은 새로운 도구를 어떻게 하면 조직에 성공적으로 도입할 수 있을까? 필자는 다음의 절차를 권고한다. 먼저 아키텍트와 개발자 및 테스터를 적절히 배정하고, 해당 역할에 대한 충분한 교육을 실시한다.

그 다음에 파일럿 프로젝트의 수행을 통해 경험과 확신을 얻은 후, 실제 프로젝트에 도입하여 그 효과를 검증하는 것이다. 무조건적인 도입보다는 신중하게, 조직이 수용할 수 있는 환경을 조성한 후 도입하는 것이 합리적이다. 만일 도구의 도입 전에 적절한 인적자원의 배정과 교육이 선행되지 않는다면, Visual Studio Team System 도입의 효과는 오히려 떨어질 것이고 시행착오를 겪게 될 것이다.

새로운 도구의 출시에 즈음하여 우리가 얻을 수 있는 교훈은, 도구와 프로세스 그리고 인적자원에 대한 균형을 갖추는 것이 가장 중요하다는 사실이다. 이제 우리도 좀 더 체계적인 소프트웨어 개발을 할 때가 되었다. @

필자 류한석은 소프트웨어 개발 13년의 경력을 가진 Microsoft MVP (Solutions Architect), .NET Advisor, PMP이며, 아키텍처와 프로젝트 관리에 많은 관심을 갖고 있습니다. 또한 CISA, CISM이며 한국CISSP협회 연구이사로서, 개발 프로세스에서의 보안 고려사항에 대해서도 지속적으로 연구하고 있습니다.

http://www.zdnet.co.kr/microsite/powerguide/casestudy/justit/0,39033253,39142256,00.htm

0 Comments:

Post a Comment

<< Home