티스토리 뷰

728x90

ISO9001이나 CMMI등 인증을 위해서 형상 관리/버전 관리를 만나셨다면 해당 표준이 조직과 프로젝트에 스며들도록 노력하면 됩니다. 그렇지만 인증을 위한 강제적 시스템 도입이 아니라면 사후에 "왜?" 라는 질문을 꼭 던져 보라는 것과 함께 사전에 일단 한번 사용해보라는 두가지를 권면하고 싶습니다.

"귀챦음" 만큼 개발자의 변화를 가로막는 이유같지 않은 이유도 없을 것입니다. 저의 경우 형상관리/버전관리 시스템을 사용하는 이유는 다음과 같습니다. 서브버전이 되었든 깃이 되었든 버전관리 시스템과 친숙한 것과 그렇지 않은것은 서로 다른 세계에 살고 있는 것입니다.

제가 버전관리 시스템(VCS)을 사용하는 첫번째 이유는 일처리의 깔끔함입니다.

프로그래밍은 "일"입니다. 물론 놀이로 프로그래밍하는 분들도 계실 수 있겠지만 목표점을 두고 그것을 완수하려는 "일"임에는 틀림없습니다. "일"이란 그것을 왜하는지 무엇을 위해, 어떤 목표점을 향해 가야 하는지가 분명합니다. 그래서 시작점과 끝점을 분명히 하고 완성에 이르는 과정을 남기는 것 또한 중요하다고 여깁니다. 무언가를 이루었는데 어디서 시작했고 어떻게 이루었는지도 불분명하다면 그것만큼 허망한 결과도 없을 것입니다. 프로그래밍을 시작할 때 커밋했던 모습에서 여러 버전을 거쳐 최종 릴리즈 시점에 도달했을 때의 모습까지 모든 기록이 남겨져 있다면 그것만으로도 미련없는 일처리를 할 수 있습니다. 버그와 설계 실패, 스펙 해석 오류는 있을 수 있지만 버전관리 시스템을 통한 프로젝트 수행은 근거에 기반한 원인 분석과 수정 과정의 논리적인 피드백, 특정 시점으로의 롤백등 다양한 대처를 간편하게 처리할 수 있도록 돕습니다. 버전 관리 시스템과 함께 이슈트래킹, 위키와 같은 협업 문서화 시스템, 오픈 채널등 다른 시스템과의 효과적인 연동이 있다면 버전 관리 시스템의 가치는 더욱 빛을 발할 것입니다.

제가  버전관리 시스템(VCS)을 사용하는 두번째 이유는 팀웍의 극대화입니다.

조직에서 선임자와 후임자 간의 원활한 업무 인계만큼 조직의 지속성과 생산성에 영향을 미치는 것은 없을 것입니다. 업무 인계 과정에서 소스코드는 최후의 보루와 같은 것이지만 버전 관리 시스템을 수반한 소스 코드는 단순한 소스 코드의 차원을 넘어섭니다. 누가, 언제, 어떤 사유로 어떤 부분의 소스 코드를 수정했는지가 기록으로 남고 후임자는 소스 코드의 변천 과정을 간편하게 확인 할 수 있기 때문에 버전 관리 시스템에 등록한 소스 코드는 그 자체로 문서화 자료의 역할을 할 수 있습니다. 팀내의 고수라 할 수 있는 선임자가 심각한 버그를 수정했다고 하는데, 나머지 팀원이 그저 감탄에 그치는 것이 아니라 선임이 수정한 부분을 버전 관리 시스템을 통해서 간편하게 확인하는 과정을 통해서 자연스러운 노하우 전수도 일어나게 됩니다. 또한 하나의 프로젝트를 각자 독립적인 개발환경에서 나누어서 개발하더라도 주기적으로 최신 변경 사항을 주기적으로 간편하게 업데이트 및 공유 할 수 있는 기능을 제공하므로 효과적이고 생산적인 팀 프로그래밍을 할 수 있습니다. 프로그램 개발은 한국과 미국에서 나누어 진행하고 루마니아에서 소스 코드를 받아 QA를 진행하는 협업도 가능합니다.



제가  버전관리 시스템(VCS)을 사용하는 마지막 이유는 비용과 안정성입니다.

형상관리/버전관리를 적용하기 위한 비용은 없습니다. 비용이라면 학습과 노력 정도입니다. 이 분야 만큼은 오픈소스 솔루션이 상용 소프트웨어를 지배하고 있다 할 정도로 오픈 소스 솔루션의 장약력이 높습니다. 물론 기업에서도 무료로 사용할 수 있습니다. 비용 뿐만아니라 버전 관리 시스템은 프로젝트의 안정성을 담보합니다. 실수에 의한 삭제, 실험 과정의 임의 변경등은 버전 관리 시스템에서는 간편하게 원상 복구가 가능하기 때문에 전혀 문제될 것이 없습니다. 또한, 스펙 변경이나 설계 변경과 복원은 버전 관리 시스템에서는 문제가 되지 않습니다. 팀으로 프로그래밍하는 경우 중간 시점에 위험 요소를 인지하게 하는 등 다양한 측면에서 프로젝트의 안정성을 증대시키는 역할을 합니다.


여러 개발자가 귀챦음, 또는 또다른 절차라는 부정적인 인식 때문에 버전 관리 시스템 도입을 주저하고 있다면 일단 맛보기를 권해 드리고 싶습니다. 이미 버전 관리 시스템을 사용하고 있는 조직이라면 당연히 이슈트래킹도 같이 사용하고 있겠지만 버전 관리 시스템 기반으로 코드리뷰와 함께 자동 빌드 시스템, 자동 QA도 적용해 보길 권합니다. 버전 관리 시스템은 개발 조직을 살리고 나아가 개발자를 살리는 역할을 할것입니다.


728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함