애플리케이션

성공적인 분산 개발을 위한 12가지 조언

Zack Urlocker | InfoWorld 2012.03.26
요즘에 프로그래밍 인재를 끌어 모은다는 것은 전세계를 대상으로 검색 폭을 확장해야만 한다는 의미와 같다. 인도에서 엔지니어를 고용하는 것과 이 엔지니어들을 덴마크에 있는 개발자들과 한 팀으로 엮어내는 것은 전혀 별개의 일이다. 요령은 지구 반대쪽에 있는 이들이 성공적으로 협업할 수 있도록 환경을 조성해 주는 것이다.
 
서로 다른 표준 시간대에 있는 개발 팀들을 관리하는 것은 나름의 과제를 안고 있다. 문화적인 차이, 언어 장애, 그리고 서로 전혀 다른 도구세트와 소통 방식 따위는 던져버려라. 그렇게 하면 막판으로 치닫고 있는 프로젝트에 대한 비방을 얻게 될 것이다. 다음은 요즘 가장 성공적인 몇몇 분산 개발 팀들이 사용하고 있는 현지 인재를 활용해서 프로젝트의 성공을 보장하기 위한 도구와 기법이다.
 
비용을 중시하지 말라, 인재를 중시하라
몇몇 관리자들은 분산 개발을 만화인 “딜버트”에 나오는 무능한 관리자와 마찬가지 방식으로 접근해 가상 국가인 엘보니아에서 값싼 개발자를 구하면 큰 돈을 절약할 수 있을 거라고 생각하고 있다. 실제로, 분산 개발이 늘 더 싼 것은 아니며 수많은 과제를 안고 있다. 
 
하지만, 해낼 수만 있다면, 분산 개발은 지역에 무관하게 최고의 인재를 활용할 수 있다는 측면에서 상당한 이점을 줄 수 있다. 어쨌든 모든 훌륭한 개발자가 사무실 반경 32Km 안에 있는 것이 아니기 때문에, 전혀 다른 곳에 위치해 있는 개발자들을 생산적으로 통합할 수만 있다면, 마음대로 활용할 수 있는 인재 풀을 크게 증가시킬 수 있다.
 
도구세트가 행동을 결정한다
그 무엇보다도, 사용중인 도구가 분산 개발을 가능케 할 뿐만 하니라, 분산 개발을 조장하기도 하는지를 확인하라. 모든 문서, 소스코드 파일, 그리고 프로세스를 글로벌하게 액세스할 수 있어야 한다. 쉬워 보일지도 모르지만, 일부 도구들이 원격 사용자들을 얼마나 어렵게 만드는지를 알게 되면 놀랄 것이다. 집에서 작업해보고, 코드 점검도 해보고, 빌드 작업 등도 해봄으로써 도구와 프로세스를 직접 시험해보라. 
 
일관성있는 통합 도구는 빌드 사이사이에 끼어드는 오류를 찾아내는 데 도움이 된다. 모든 개발자들이 사무실을 함께 쓰고 있다면 있으면 좋은 도구지만, 개발자들이 서로 다른 표준 시간대에 속해 있다면 필수적인 도구. 몇 시간 또는 며칠 뒤에야 누군가가 결함이 있는 코드를 작성해 넣었다는 사실을 알고 싶지는 않을 것이다. Jenkins(별명은 Hudson), CruiseControl 그리고 Bamboo 같은 도구는 구세주가 될 수도 있다.
 
처음부터 분산 개발을 시작하고 ‘오픈소스’ 사고방식을 유지하라
신규 프로젝트나 서브 프로젝트로 시작하라. 기존 프로젝트는 분산 작업을 수용하기 위해 조각조각 나누기 어렵다. 신규 프로젝트는 분산 접근방식을 조성하는 도구를 사용하여 시작할 수 있는 기회를 제공하기도 한다. 예를 들면, GitHub, Mercurial, 또는 Launchpad 같은 최신 소스 관리 시스템(SCS: Source Control System)은 분산 환경을 전제로 하고 있지만, CVS나 심지어 Subversion 같은 구형 시스템에는 분산 리비전 관리 모델이 없다. 
 
프로젝트가 오픈소스가 아닐지라도, “오픈소스” 수준의 협업을 목표로 하라. 오픈소스 사고방식은 참여 문화와 개발자들이 시스템의 모든 사항을 완전히 익히지 않고도 쉽게 프로젝트를 추가할 수 있게 해주는 좀 더 모듈화된 API 기반의 접근방식을 조장한다.
 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.