IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
한국 developerWorks   >  dW Column  > developerworks

RIA 프로젝트와 애자일 방법론의 전체팀



강규영강규영 jania902@gmail.com

오픈마루 스튜디오에서 웹 서비스 기획과 개발을 담당하고 있으며, 소프트웨어 공학, 인터페이스 디자인, 진화심리학 등 다양한 분야에 관심을 두고 있다. 개인 블로그 “Alan’s Blog”를 운영하고 있다.

2008년 11월 25일


애자일 방법론의 하나인 익스트림 프로그래밍(이하 XP)의 실천법 중 하나로 "전체팀(whole team)"이라는 개념이 있다. 전체팀이란 전통적으로는 "cross-functional team"이라고 불려온 조직과 크게 다르지 않다. 직군별 조직이 아니라, 하나의 프로젝트를 성공적으로 진행하기 위해 필요한 다양한 직군의 사람들로 구성된다는 뜻이다. 좀 특이한 점이 있다면, XP에서 전체팀은 원활한 의사소통을 위해 칸막이가 없는 하나의 방(war room)에 둥글게 모여 앉아 일한다.

전체팀을 이루어 일하는 방식은 RIA 프로젝트를 성공으로 이끄는 데 특히나 중요한 실천법 중 하나라고 생각한다.


여러 사람이 모여 한 사람의 천재처럼

개발자들은 플래시, 실버라이트, 자바FX, Ajax 같은 기술에 집중한다. 이러한 기술들을 공부하면 화면의 특정 요소들이 나타나고, 사라지고, 움직이게 만들 수 있다.

하지만 어떠한 요소가 언제 어떻게 나타나고, 사라지고, 움직이는 것이 좋은가? 구현 기술만을 공부해서는 이 물음에 올바른 답을 하기 힘들다. 비주얼 디자인(visual design), 인터랙션 디자인(interaction design), 사용성(usability), 정보 시각화(information visualization), 감성 디자인(emotional design) 등 다양한 분야를 배우고 익혀야 한다. 개발자는 전에 없던 강력한 도구(RIA 기술들)를 손에 들고 사용법을 열심히 익혔으나 어디에 써먹어야 할지를 잘 모른다.

이러한 분야를 집중적으로 공부하는 사람들은 바로 기획자와 디자이너다.

하지만 이들도 RIA 프로젝트를 하면서 어려움을 느끼기는 마찬가지다. 무엇을 해야 하는지는 비교적 잘 알지만 기술적으로 무엇이 가능한지, 무엇이 구현하기 쉬운 방법인지 잘 모르기 때문이다. 기획자와 디자이너는 손에 든 새로운 도구의 기능과 사용법을 잘 모른다.

이러한 분야를 공부하는 사람들은 바로 개발자다.

이 문제를 푸는 해법은 두 가지가 있다. 하나는, 위 모든 분야를 두루 잘 알면서 작업 속도도 엄청나게 빠른 한 명의 천재를 영입하는 것. 또 다른 하나는, 직군 간 협업을 지금보다 더욱 긴밀하게 만드는 것. 대부분의 조직에서 현실적인 대안은 물론 후자일 것이다.



위로


각 분야에 갇힌 지식의 소통

나는 지적 역마살이 껴서 그런지 이 분야 저 분야를 기웃거리길 좋아한다. 그 덕에 한 분야에서 얻은 지식을 다른 분야에 적용하며 쏠쏠한 재미를 보곤 하는데, 프로젝트를 할 때에도 전체팀을 이루어 서로 소통하고 긴밀하게 협업을 하다 보면 이런 일이 훨씬 더 빈번하게 일어날 것이다.

사실 기획자, 개발자, 디자이너는 서로에게 배울 점이 매우 많다. 한 가지 예를 들어보자.

얼마 전에 "소셜 웹 기획"이라는 책을 읽었는데, AOF라는 기획 방법론을 소개하고 있었다. 간단히 소개하자면 활동(activity)과 소셜 매개체(object)를 식별하고 이로부터 핵심 기능(feature)을 뽑아내는 방식이다. 이 때 매개체(object)로부터 동사(verb)를 뽑아내는 식으로 핵심 기능을 찾아낼 수 있다. 이를테면, 사진이라는 매개체로부터 보다, 편집하다, 링크하다, 공유하다, 태깅하다 등의 동사를 뽑아낼 수 있고, 이러한 동사가 핵심 기능이 된다.

이 기법은 전형적인 객체지향분석설계(OOAD) 방법론과 비슷하다. 적절한 명사를 찾고, 핵심적인 동사를 뽑아내고, 이들 간의 논리적 관계를 도출하여 간단 명료하고 일관성 있는 기획안을 만들어내는 일에 개발자들이 기여할 수 있다. 기획 단계의 방법론과 개발 단계의 방법론이 통일되면 도메인 주도 개발(DDD)에서 말하는 공용 언어(ubiquitous language)를 도출하기도 좋을 것이다.



위로


학습하는 조직과 개인

마지막으로 언급하고 싶은 것은 바로 학습이다.

특정한 지식을 가진 한 사람의 전문가에게 의존하는 프로젝트는 건강하지 않다고 말한다. 팀에 인터랙션 디자이너가 한 명뿐인데 이 사람이 중요한 순간에 일주일간 휴가를 내면? 최악의 경우 프로젝트가 일주일간 멈춰버리는 수가 있다. 프로젝트 팀의 입장에서는 인터랙션 디자인을 할 수 있는 사람이 많을수록 좋을 것이다. 인터랙션 디자인뿐만 아니라 다른 모든 직군도 마찬가지다.

한편 개인의 입장에서는 어떨까? 어떻게 생각하면, 자신만이 할 수 있는 무언가가 있으면 프로젝트 팀에서 자신의 존재가 부각될 것이고 이것이 결국 좋은 평가로 이어질 것을 기대할 수도 있겠으나, 한편으로는 다른 식으로 생각해볼 수도 있을 것이다. 한 가지 일만 잘 하는 사람보다는 다른 일들도 어느 정도 할 줄 안다면 더 많은 기회가 주어지지 않겠는가? 즉, 자신만의 전문 분야도 공부를 하면서 인접된 다른 분야에 대해서도 조금씩 공부를 하면 조직 입장에서나 개인 입장에서나 좋을 것이라는 말이다.

이게 전체팀이랑 무슨 상관일까? 칸막이 없는 공간에 모여 앉아 서로 빈번하게 소통하고 긴밀하게 협업을 하다 보면 서로의 분야에 대해 학습할 기회가 주어지게 마련이다. 또 위에서 설명한 방식대로 타 분야의 지식을 자신의 분야에 적용해 보기 위해 노력을 하거나, 자기 분야의 지식을 타 직군 사람에게 설명하기 위해 노력하는 과정에서도 지식의 전파와 학습이 이루어진다.

이러한 종류의 학습은 또한 "여러 사람이 모여 한 사람의 천재처럼" 일할 수 있기 위해 꼭 필요한 방향이기도 하다.



이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us



위로


[지난 developerWorks Column 보기]

사이트 여행

dW 커뮤니티
포럼 | 블로그 | Spaces
dW Student Community

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

뉴스레터
 
  
자바스크립트가 작동이 중지되었습니다. 이 기능을 수행하시려면 브라우저에서 자바스크립스트를 작동시켜 주시거나 이곳을 클릭해주세요.

Special offers
Screencast
IBM SOA Sandbox 시험판
dW Student Community
로보코드
코드 트레이닝


    IBM 소개 개인정보 보호정책 문의