1.
몇 달전에 사내 전체 개발자를 대상으로 소프트웨어회사의 개발역량 평가표를 기준으로 설문조사를 실시하였습니다. 항목별로 선택한 개발자/전체 개발자로 통계를 내면 10~20%사이로 나오지만 전사적으로 보면 모든 개발자가 동일한 답을 하지 않았기 때문에 모든 항목에서 0%가 나왔습니다.
평가 결과를 자세히 들여다 보면 C++개발자의 경우 소스코드 관리에서 모두 같은 답을 하였습니다. Visual Studio에 내장된 Visual Source Safe를 사용하기 때문입니다. 유닉스 C 개발자들은 개발기간 산정을 개발자가 한다고 모두 같이 답변을 하였습니다.
그럼에도 회사의 개발역량은 0점이었습니다.
2.
사내에서 개발역량이 중요하다고 생각하여 2008년 초반부터 몇가지 원칙을 정해서 실행을 하려고 하였습니다. 원칙은 “소스코드를 전사적으로 관리하자” , “이슈를 전사적으로 관리하자”는 정도였습니다. 그리고 프로젝트에서 정량적 평가가 가능하도록 관리하려고 하였습니다. 그런데 모 은행프로젝트에 참여하면서 중단되었습니다.
다시 복귀해서 어떻게 출발할까 고민하면서 손을 댄 일이 위 설문조사입니다.
현재 개발 직원중 70%정도가 유닉스환경에서 C언어로 프로그램을 개발합니다. 증권IT중 Frontend업무의 특수성때문입니다. 개발 환경은 Java 혹은 C++개발자와 비교할 때 차이가 많이 납니다.
– 일반적으로 발주회사는 개발서버에 개인별 계정을 주지않고 계정 하나만을 줍니다.
– 개발자들은 ultraeditor와 vi를 이용하여 소스코드를 작성합니다.
– terminal모드로 빌드를 수행하고 단위테스트를 진행합니다.
Command Line Environment와 Integrated Development Environment의 중간정도라고 생각합니다.
2007년 초반 모 증권사 프로젝트를 할 때 최소한 소스코드를 CVS로 관리하려고 시도를 해보았지만 개발자의 개발환경때문에 실패를 하였습니다. 그래서 내린 결정이 Eclipse 선택입니다.
3.
소스코드와 이슈를 관리할 수 있는 최소한의 협업개발환경(Collaborative Development Environments)를 제공하는 방법이 무엇이 있을까 고민을 해보았습니다. Ultraedito를 IDE수준으로 업그레이드한 UEStudio를 사용하는 것도 고려하였습니다. Subversion이나 CVS가 지원이 되고 개발자들이 가장 많이 사용하는 에디터이기때문입니다. 그런데 이슈관리에서 문제가 생깁니다. 웹브라우저를 실행하여 이슈시스템에 연결하여야 합니다.
모 은행 프로젝트를 하면서 티맥스사의 ProFrame Studio를 사용해보았습니다. Eclipse에 Proframe의 기능을 Plugin형태로 추가한 제품이었습니다. 솔직히 잘 만들었습니다. 물론 우리팀이 베타테스터였지만(^^) 대형 금융기관이 원하는 개발자의 자의적인 개발을 통제하고 모든 것을 규칙과 가이드라인에 따라 중앙에서 통제를 할 수 있도록 한 제품이더군요.
회사의 프레임워크에 맞는 Plugin을 개발할 능력은 없습니다. 있는 것을 잘 담아서 표준 개발환경을 만들었습니다. 현재 개발자의 개발프로세스를 크게 변경하지 않고 도구를 변경하자는 목적으로 진행하였습니다.
우선 Eclipse에서 원격시스템과 연결이 편리하도록 하는 기능을 추가하였습니다. RSE(Remote System Explorer) 플러그인으로 FTP, Telnet이 가능하도록 하였습니다. subversion Server와 연결할 수 있도록 subersive를 설치하였습니다. 이슈관리는 Eclipse에서 사실상의 표준으로 지원하는 Mylan을 이용하여 지원하였습니다. 그리고 DB개발은 Quantum DB를 사용하기로 하고 표준 매뉴얼을 작성하였습니다.개발프로세스를 정리도 하고….
4.
어제 이상을 제가 맡고 있는 모 프로젝트팀에게 설명을 하였습니다. 재미있는 의견이 나왔습니다. 어떤 증권사에서 대형SI가 제공한 개발환경이 Eclipse기반으로 소스관리기능을 추가한 것이라고 합니다. 개발가이드로 나왔는데 개발자들은 Eclipse 대신에 Utraeditor를 개발도구로 사용하고 소스관리할 때 Copy & Paste로 해서 Commit을 찍었다고 합니다. 음~~참으로 바꾸기 힘들다는 생각이 들더군요. 그래도 사용을 하였다고 합니다. 가이드는 가이드이기때문에….
프로젝트 한 팀을 대상으로 시험적용을 할 예정입니다. 아마도 실패하지는 않을 듯 합니다. 사내에서 진행하고 있는 개발자들의 독서모임에 다룬 주제가 ‘소프트웨어 개발 기반시스템’인데 소스관리와 이슈관리에 대해선 필요성을 공감하였기때문입니다.
안팎으로 변화를 모색하고 있습니다. 개발자의 변화, 회사의 변화. 이러한 변화가 모두에게 긍정적인 힘이 되었으면 바랍니다.