2008년 03월 24일
[협업 노하우 ①] 커뮤니케이션과 협업
출처 : http://www.zdnet.co.kr/builder/dev/etc/0,39031619,39163233,00.htm
정희용 기자, 김영욱(닷넷채널 웹 매거진 발행, 비스무리 개발 및 운영) 2008/01/05
정희용 기자, 김영욱(닷넷채널 웹 매거진 발행, 비스무리 개발 및 운영) 2008/01/05
애플리케이션의 규모가 커지고 개발 주기가 짧아짐에 따라 개발 협업은 중요한 이슈로 떠오르고 있다. 협업의 중요성이야 두말할 필요 없이 모두들 공감하고 있는 것이겠지만, 막상 프로젝트를 진행하다보면 협업은커녕 협박과 폭력(?)이 난무하는 결과를 낳기 십상. 협업을 위해 가장 중요한 것은 무엇일까? 얼마 전 케이블 TV에서 갓슈벨이라는 제목의 애니메이션을 봤다. 일본 애니메이션이 다 그렇듯 마계의 왕을 정하기 위해 후보로 정해진 100명의 마물이 인간 세계로 와서 인간과 함께 파트너가 되고, 다른 마물 파트너들과 결투하여 최후까지 살아남은 자가 왕이 된다는 황당한 스토리였다. 그런데, 가만히 보니 애니메이션의 스토리가 이번 달 특집 주제와 딱 맞아 떨어지기에 한번 소개해 보려고 한다.
그런데, 이 둘을 이어주는 물건이 하나 있으니 바로 마계에서 가져온 책이다. 이 책을 통해 인간 파트너의 마음의 힘이 마물에게 전달되어 엄청난 마력을 발휘하는데, 이 마력을 이용하여 다른 마물들과 싸우게 되는 것이다. 생명이 위태로운 상황이니 처음에는 이 책을 통해 위기를 모면해 나가는 두 사람. 하지만 함께 어려운 고비를 넘길수록 둘 사이에는 말을 하지 않아도 통하는 묘한 공감대가 형성된다.
‘와, 우리 프로젝트 팀에도 그런 책 한 권 있으면 좋겠다’는 생각이 들지도 모르겠다. 책만 딱 잡으면 개발자들의 마음이 하나로 연결되어 프로젝트 작업이 술술 풀릴 테니 말이다. 하지만 어림없는 소리다. 만화에서조차 그런 환상은 현실이 되질 못한다. 책이 아무리 큰 힘을 가지고 있다 하더라도 마물과 인간의 마음이 하나가 되어 마음의 힘이 증폭되지 않으면 책이 발동되지 않는 탓이다. 이번 달 특집에서 소개될 위키와 BTS, JIRA, SVN 등이 아무리 다양한 기능과 강력한 협업 기능을 지원하고 있다한들 개발자 스스로의 마음속에 상대 개발자 혹은 PM, 갑에 대한 비뚤어진 마음이 있다면 무용지물이다. 물론 처음부터 마음이 비뚤어졌을 리 없다. 다양한 이유와 사건도 있었을 터다. 하지만, 이상하게도 개발자를 비롯한 전문직 기술자들은 묘한 우월감 같은 것을 가지고 있어 남과 자신 사이의 담을 스스로 쌓는 경우를 자주 보게 된다.
아마 80년대부터 컴퓨터를 사용한 독자라면 ‘워드스타’의 명성에 대해 잘 알고 있을 것이다. 사상 최초의 위지윅 워드프로세서라는 장점을 앞세워 워드프로세서 시장을 주름잡았던 워드스타. 그런데 이 워드스타를 개발하여 성공가도를 질주하던 마이크로프로사를 전복시킨 장본인이 개발자들 사이의 우월감이었다는 사실을 아는 사람은 많지 않은 것이다. 소프트웨어 업계를 주도해가고 있던 마이크로프로사는 핵심 개발자가 퇴사하는 등 여러 홍역을 겪고 있었다. 이러는 사이 AT&T사로부터 투자를 받은 마이크로프로는 워드스타와 비슷한 제품을 찾아 인수한 후에 그 프로그램의 개발자를 영입시켜서 UNIX용 워드스타를 만들었다. 말이 워드스타지 이 제품은 기존 워드스타와는 호환되지 않는 파일 형식을 사용하고 있을 만큼 전혀 다른 제품이었다. 이게 바로 워드스타 2000이다. 워드스타 2000의 기능 중 레이저프린트 기능만은 탁월했기에 마이크로프로사는 워드스타와 워드스타 2000 제품라인을 계속 가져가면서 프린터DB는 서로 공유하도록 방침을 정했다. MS 워드와 코렐의 워드퍼펙트가 주도권을 쥐기 시작하는 시기가 바로 이 즈음이었다. 마이크로프로사는 빼앗긴 주도권을 되찾기 위해 워드스타 5.0의 개발 지시를 기존 워드스타 팀에게 하달했고, 1988년 초에 출시될 예정이었다. 회사의 사활이 걸린 중차대한 프로젝트였다. 그런데, 이 프로젝트는 마이크로프로사를 빠져나올 수 없는 나락으로 떨어뜨리고 만다. 발표 시점이 다 되어가도록 워드스타 5.0에 프린터 데이터베이스가 없었다. 프린터 데이터베이스야 워드스타 2000의 것을 가져다 쓰면 될 일이었다. 하지만 워드스타 팀과 워드스타 2000 팀은 같은 건물을 사용하면서도 서로 말조차 나누지 않을 만큼 사이가 나빴다. 그 와중에 워드스타 팀의 우월감은 워드스타 2000에서 무언가를 가져와 자신들의 프로그램을 오염(?)시키는 것을 용납하지 않았던 것이다. 그들은 워드스타 2000의 2차원 관계형 테이블을 버리고 계층형 데이터베이스로 프린터 DB를 구축하고 있었다. 결국 출시 일을 6개월이나 지나서 발표된 워드스타 5.0에는 이전 버전의 1/3밖에 안 되는 프린터 데이터베이스가 담겨져 있었고 판매는 저조했다. 회생의 기회를 노친 마이크로프로사는 두 개발팀 사이의 우월감 경쟁에 희생되어 역사의 뒤안길로 사라져갔다.
협업하기 어려운 사이는 참 많다. 개발자와 개발자는 물론이거니와 개발자와 PM, 개발자와 고객 등 일로 엮이는 모든 관계 하나하나가 모두 넘어야 할 산들이기 때문이다. 그 중에서도 개발자와 디자이너는 가장 가까우면서도 함께하기 어려운 일명 ‘가까이 하기엔 너무 먼 당신’이다. 서로의 작업을 이해하기 어렵기에 서로 탓을 돌리며 마음의 앙금을 쌓아가기 때문이다. 이처럼 끊이지 않는 협업 이슈의 중심에 있는 디자이너와 개발자를 화해시키기 위해 개발된 디자인 툴과 개발 툴이 있어 소개하고자 한다. 바로 UX라는 새로운 개념을 내세우며 개발자와 디자이너의 화해 무드를 조성하고 있는 MS의 이야기다. 얼마 전 서울 메론AX에서 MS가 주관하여 열린 ReMix 07 행사가 있었다. 이 날 행사에는 개발자도 많이 왔지만 디자이너들도 상당수 참여해서 MS에서 제시하고 있는 새로운 UX에 대한 관심을 보여 주었다. 익스프레션 스튜디오와 관련된 제품들이 소개 될 때 그리고 실버라이트가 소개될 때 까지만 해도 분위기는 나쁘지 않았다. 하지만 막상 실제 작업에 들어가서는 C#과 코딩이 나오고 비주얼 스튜디오(그것도 차기버전인 Orcas)가 등장하자 디자이너들은 동요하기 시작하는 눈치였다. 디자이너들은 플래시 수준의 툴을 기대하고 기껏해야 액션 스크립트 정도 되는 간단한 언어일거라는 생각에 부담 없이 참석했다가 닷넷 프레임웍의 엄청난 기능들과 깨알 같은 소스를 보고 무척 실망하는 눈치였다. 하지만 MS의 새로운 협업 시스템을 이해하려면 이 말부터 이해해야 한다. “약은 약사에게 진료는 의사에게”
사실 포토샵이나 일러스트레이터 같은 프로그램은 디자이너의 전유물이다. 마찬가지로 비주얼 스튜디오나 데이터베이스 등은 개발자의 전유물이다. 그럼 웹 개발에 있어서 드림위버나 플래시 작업은 누가 해야 하는 것일까? 거기에 대해서는 업체마다 다르겠지만 대부분 디자이너가 작업을 한다. 플래시 작업에서는 디자인적인 요소 뿐 아니라 액션 스크립트를 이용한 프로그래밍적인 요소도 함께 필요하다. 이런 경우 일반 개발자들은 액션 스크립트를 기피하는 경향이 있기 때문에 대부분 디자이너가 작업하는 경우가 많다. 액션 스크립트는 디자이너가 사용하기에 적합하도록 언어가 단순 명확하게 작성되어 있고 또 지원되는 기능도 일반적인 언어에 비해서는 비교적 단순하기 때문에 학습이 용이하다는 장점도 있다. MS가 최근에 출시하는 기술들 중에서 디자인적인 요소가 절대적으로 필요한 기술인 WPF(Windows Presentation Foundation)나 실버라이트 등이 있다. 이런 기술들은 모두 기존의 닷넷 기반 언어인 C#과 VB.NET같은 언어들을 사용하도록 되어 있기 때문에 개발도구도 비주얼 스튜디오를 사용하도록 되어 있다. 디자이너들은 이 부분에서 일단 거리감을 느끼기 시작한다. 누가 봐도 비주얼 스튜디오의 인터페이스가 디자이너들이 친숙하게 접근할 수 있는 부분이 아니기 때문이다. 또 닷넷 프레임워크라는 범용 플랫폼은 디자이너가 원하는 범위를 충분히 벗어나기 때문에 디자이너가 이 부분을 새로 학습해서 작업에 투입된다는 것은 생각하기 힘들다. 애당초 MS도 디자이너가 비주얼 스튜디오를 사용해 줄 거라고는 기대하지도 않았다. 그래서 사용할 툴들을 확실하게 구별해 놓았다. 이젠 디자인은 디자인 툴에게 개발은 개발 툴에게 맡길 수 있게 된 것이다. 물론 이전에도 확실하게 구별이 되어 있긴 했지만 각 각의 제품으로 구별만 되어 있었을 뿐 디자인 툴과 개발 툴 사이에 연계는 단순히 파일을 넘기는 수준의 연계였다.
최근 MS가 주력으로 밀고 있는 제품들이 바로 WPF와 실버라이트이다. WPF와 실버라이트는 사실상 같은 맥락의 기술이다. 실버라이트의 개발 코드명이 WPF/e였던 것만 봐도 그렇다. 그래서 사용방법과 사용 툴도 다르지 않다. 먼저 WPF나 실버라이트를 작업하기 위해서 제일 중요한 것이 바로 디자인이다. 이전에는 디자인 하면 포토샵과 일러스트레이터를 우선 떠올리겠지만 WPF와 실버라이트 작업에서는 포토샵은 잠시 접어두는 것이 좋겠다. MS는 새로운 환경에 걸 맞는 새로운 디자인 도구들을 함께 출시했다. - MS 익스프레션 디자인(Microsoft Expression Design) - MS 익스프레션 블렌드(Microsoft Expression Blend) - MS 익스프레션 웹(Microsoft Expression Web) - MS 익스프레션 미디어(Microsoft Expression Media) 이 도구들을 묶어서 어느 순간부터 인지 모르겠지만 익스프레션 스튜디오라고 부르기 시작했다. 아무튼 WPF와 실버라이트 작업을 하기 위해서는 디자이너들은 기본적으로 익스프레션 스튜디오에 포함된 디자인 도구들을 사용해서 디자인하게 된다. 익스프레션 스튜디오를 구성하는 네 가지 제품 중 MS 익스프레션 블렌드는 모든 작업의 중심에 위치해 있다.
<화면 2>에서처럼 익스프레션 디자인과 미디어 등에서 작업한 결과물들을 익스프레션 블렌드에서 통합하여 하나의 디자인 결과물을 만들어 낼 수 있다. 익스프레션 디자인은 포토샵이나 일러스트레이터가 하던 작업의 대부분을 대치할 수 있을 것으로 보인다. <화면 2>에서 보면 ZAM3D라는 제품이 있는데 이 제품은 MS의 자체 제품은 아니다. MS는 대부분의 디자인 툴을 보유하게 되었지만(물론 보유하지 못했다면 기술을 보유하고 있는 회사를 인수하는 방법으로 보유해왔다. 익스프레션 디자인과 익스프레션 미디어 모두 외부 인수된 회사의 기술이다), 아직 3D와 관련된 디자인 제품은 가지고 있지 못하다. ZAM3D는 일렉트릭 레인이라는 업체에서 개발한 도구로 자체적으로 3D 디자인을 할 수도 있고, 기존에 널리 알려진 3D 스튜디오 MAX에서 작성된 소스를 가져올 수도 있다. 일반적으로 인터페이스에 사용할 수준이면 ZAM3D로 충분히 효과를 볼 수 있다. 지금 WPF와 호환될 수 있는 3D툴이라고 하면 ZAM3D를 비롯해서 몇 가지가 나와 있지만 그 중에서 ZAM3D가 가장 완성도 있는 툴이다. ZAM3D는 현재 CTP버전을 http://www.erain.coml에서 다운로드 할 수 있다.
디자이너와 개발자 사이의 협업을 통해서 얻어지는 것은 아무래도 작업효율의 극대화라고 할 수 있겠다. 흔히 우리가 예기하는 ‘삽질’을 안할 수 있게 되는 것이 바로 진정한 협업의 결과물일 것이다. 또 다른 측면에서 본다면 협업이란 각자 자신이 맡은 영역에서 자기 역할에만 신경 쓰기만 하면 그 결과물들이 자연스럽게 조화되면서 최상의 결과를 만들어 내기 마련이다. 우선 WPF나 실버라이트에서 먼저 작업이 진행되는 부분은 디자인이다. 복잡한 디자인은 익스프레션 디자인에서 해야겠지만 간단한 디자인은 익스프레션 블렌드에서도 충분히 가능하기 때문에 익스프레션 블렌드에서 작업을 시작해 보겠다. 익스프레션 블렌드에서 새로운 작업을 시작하려고 하면 <화면 4>와 같이 New Project를 선택해서 작업을 하도록 되어 있다. 일반적으로 포토샵이나 일러스트레이터와 같은 디자인 툴은 모두 페이지 단위의 작업을 하는데 비해서 익스프레션 블렌드에서는 프로젝트 단위로 작업하도록 설계되어 있다.
반면에 조금만 생각해 보면 여기서 또 다른 혼란이 야기될 수도 있다. 파일의 명명 규칙이나 폴더 구조를 대부분 디자이너가 결정하는 것이 아니기 때문이다. 대부분 소프트웨어 개발 프로젝트에서는 아키텍트나 설계자가 파일의 명명 규칙이나 폴더의 구조와 같은 표준을 잡아왔기 때문에 디자이너가 임의의 파일로 생성해서는 안 된다. 다시 말하자면 디자인 작업이 프로젝트 단위로 진행되기 때문에 디자인 작업에 앞서서 먼저 전체적이고 구체적인 설계가 선행되어야 한다.
작성된 파일 중에 프로젝트 파일인 *.csproj를 선택해서 열어보면 비주얼 스튜디오에서 잘 열리는 것을 볼 수 있는데 아직 익스프레션 블렌드의 버전이 낮기 때문에 비주얼 스튜디오에서 컨버전 할 것을 물어 온다. 정식 버전이 출시되면 소스버전이 일치할 것이기 때문에 이런 문제는 없을 것 같지만 아직 익스프레션 블렌드와 비주얼 스튜디오가 서로 버전이 맞지 않아서 몇 번 소스를 주고받다 보면 소스가 깨지는 현상이 발생한다. 이 역시 모든 것이 정식버전을 달고 나타날 올해 말에는 모두 해결될 것으로 보인다. 아무튼 지금은 소스를 한번 컨버전 해주어야 한다. 컨버전을 마치고 나면 비주얼 스튜디오에서 익스프레션 블렌드에서 디자인된 결과를 무리 없이 열어서 코딩 작업이 가능하다. WPF나 실버라이트는 프로젝트 단위로 개발자와 디자이너 사이에 협업이 가능하기 때문에 이전에 이미지를 주고받는 방식에 비해서 상당히 편리할 뿐만 아니라 디자이너의 콘셉트를 고스란히 살릴 수 있게 되었다. 그럼 여기서 다시 각각의 역할을 정리해 보면 디자이너가 설계되어있는 프로젝트를 생성하고 디자인을 하게 되면 디자인되어 있는 프로젝트를 가져다가 개발자가 소스코드를 작성해서 생명을 불어 넣는 작업으로 마무리 할 수 있게 되었다. 여기에 MS가 자랑하는 협업 기술을 함께 활용할 수 있다. 바로 TFS(Team Foundation Server)를 활용하는 것이다. TFS를 사용하면 개발자와 디자이너가 하나의 프로젝트를 동시에 열어서 작업할 수도 있고 작업한 내용을 바로 바로 상대방에게 개별적으로 전달 할 수도 있다. 가격이 다소 비싼 게 흠이기는 하지만 프로젝트를 관리해야 하는 입장에서는 TFS는 여러 가지 즐거운 장점을 제공해 준다. 큰 프로젝트에서는 아키텍트, 업무분석 담당자, 디자이너, 개발자, 품질관리 담당자 등등 여러 가지 역할을 가진 사람들이 존재하겠지만 많은 업체들은 한 사람이 몇 가지 역할을 가지고 소위 말하는 람보식 개발을 하는 것이 현실이다. 하지만 아무리 작고 열약한 여건이라도 정확한 방법과 체계를 가지고 작업하려고 하는 노력을 게을리 해서는 안 된다. 아무리 바빠도 실을 바늘허리에 묶어서 사용할 수 없듯이 정확한 절차와 방법론이 없이 주먹 구구 식으로 작업을 진행하다가는 협업은커녕 프로젝트마저도 위태롭게 만들 것이다. @ 참고자료 1. 마이크로소프트 http://www.microsoft.com/windowsvista 2. 실버라이트 http://www.silverlight.net 3. 익스프레션 블렌드 http://www.microsoft.com/expression 4. 필자 블로그 http://winkey.tistory.com, http://www.winkey.pe.kr * 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다. |
# by | 2008/03/24 22:38 | Project Management | 트랙백 | 덧글(0)









☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]