SW 개발을 위해 사용되는 방법은 크게 Waterfall, Agile 그리고 두 가지를 혼용한 방식이(Hybrid 라고 흔히들 표현하는 것 같습니다.) 주를 이루고 있습니다. 두 가지 접근 방법 모두 꽤 오랜 역사를 가지고 나름의 의미와 철학이 SW개발에 반영되고 있습니다. 애자일은 최근 Business Agility를 위한 Application Modernization(어플리케이션 현대화)라는 주제와 맞물려 SW 개발에서뿐만 아니라 기업조직의 운영방식에 이를 적용하려는 노력과 효과에 대한 많은 Agenda들이 시장에서 부각되고 있습니다.


SW개발에 Silver Bullet이 없다는 것은 업계에 종사하시는 분들이라면 누구나 공감할 수 있을 것입니다. 다만 교과서적 접근 또는 그 동안 업계에서 Buildup 된 경험치에 따르면 순수한 애자일 접근방식은(흔히 Pure Agile 접근이라고 부르는) 주로 솔루션 개발-Package SW, 어플리케이션 운영 시 필요에 따른 추가개발-기능 보완/추가 등, 경험이 축적되지 않은 새로운 기술기반의 개발 등에 적합하다는 의견이 많습니다.


전통적인 Waterfall방식의 SW개발은 기존 Legacy System이 존재하고, 이를 기반으로 한 대규모 업그레이드 또는 전면적인 재개편(그러나 기존의 기능이나 업무는 변화가 적은), 매우 정형화된 관리/개발 산출물이 요구되는 공공, 금융(특히 계정계) 등에 적합하다고들 합니다. 그리고 계약방식은 일괄도급형태(확정계약)가 주를 이루고 있습니다.


국내에서의 차세대 등 대규모 개발은 여전히 Waterfall에 기반한 계약과 개발이 압도적인 비율을 점유하고 있지만 Waterfall 접근 방식 내에서 Agile을 부분적으로 활용하는 경우가 늘어나고 있습니다. 앞서 첫 번째 노트에서 언급했듯이 문화적 측면과 국내의 개발 프랙티스가 애자일을 채용하는데 쉽지 않은 여건과 환경이라는 것에 대해서는 대부분 공감하실 것으로 짐작합니다.

SI 개발은, 고객의 요구사항이 정리되어 단일사업으로 발주됩니다. 그리고 다수의 SI회사가 경쟁에 참여하여 기술과 가격을 통해 가장 적합한 제안을 제시한 개발회사가 그 사업을 수주하게 됩니다. RFP에 명시된 요구사항을 고객과 사업수행사가 합의한 기간안에 완료하는 형태가 국내에서 가장 흔히 볼 수 있는 주문형 SW 개발 방식입니다.


기업고객 또는 정부에 의해 발주된 사업에는 SI사 또는 IT서비스 회사들이주관사업자 + 하도급업체 + 프리랜서또는공동주관사(컨소시엄) + 각각의 하도급 업체 + 프리랜서등의 형태로 Team building 을 하게 됩니다. 유사 사업에 경험이 있는 기업들과 프리랜서의 집합으로 볼 수도 있습니다. 그러나 일하는 방식과 역량측면에서 근본적인 차이를 가지고 있는 이질적이고 균질하지 않은 개인과 조직들의 집합이라고 보는 것이 더 정확한 관점 같습니다. 즉 매우 이질적인(Heterogeneous) 특성을 가지고 있습니다.


국내의 고객발주형 대외SI 방식은, 일에 접근하는 방법(Practice)이 다른 형태로 축적되어온 그룹 또는 개인들이 특정 Task를 위해 단기간에 모여서 성과와 생산성을 극대화 시켜야 합니다. 이런 형태의 일에 Heterogeneous 한 조직과 개인들로 이루어진 팀이 애자일로 손발을 맞추고 효율적인 커뮤니케이션을 통해서 SW개발을 주어진 시간내에서 완료한다는 것은 쉬운 일이 아니겠지요.


이론적으로 Agile Sprint의 회수가 거듭될수록 일에 대한 서로 간의 합을 맞추고 조정해 나가면서 최적화하는 과정을 포함한다고 합니다. 이론의 세계가 실무의 세계로 운반되는 것이 쉽지 않은 것은 업계에서 개발과정을 경험해 보신 분들은 충분히 공감하실 것으로 이해합니다.



결국 애자일의 채용은 Homogeneous(동질적인)한 개발팀을 유지하고 활용할 수 있는 팀이어야만 그 철학을 수용하고 생산성을 극대화할 수 있을 것으로 판단됩니다. 이런 이유로 인해서 일정기간 이상 호흡을 같이 이어온 개발조직을 보유하고 있는 솔루션/프로덕트 개발회사들이 주로 애자일 채용에 적극적 이었던 같습니다. 그리고 어플리케이션 운영조직(우리가 흔히 얘기하는 어플리케이션 유지보수) 역시 꽤 오랜 기간 큰 변화없이 팀을 유지하기 때문에 개발성 업무에 애자일을 채용하는 것이 바람직할 것으로 보입니다.


개발팀을 Build up 하고 유지하고, 팀이 가진 역량을 극대화 하는 방법은 팀이 어떤 소규모 그룹 또는 개인들로 구체화되는지에 따라 달라지고, 팀을 이끄는 리더에 의해서도 달라질 것 입니다. 애자일로 개발하는 방식이든, Waterfall에 접근하는 방식이든 방법론 자체가 중요한 것은 아닌 것 같습니다. 현실은 늘 기대를 배반하고 새롭고 유연한 창의성을 요구합니다. 한 시대를 풍미한 전 세계 헤비급 챔피언인 마이크 타이슨이 한 유명한 말로 이야기를 마무리합니다.


Everyone has a plan 'till they get punched in the mouth” 링 위에서 얻어터지기 전까지는 누구나 그럴싸한 계획을 가지고 있다.


저자소개 | 김민철상무 (메타넷 ADC/GDC 기술리더)


김민철상무는 미국 실리콘밸리에서 소프트웨어 개발자로 근무하다가 2004년부터 메타넷대우정보와 함께해 왔으며 최신 IT 기술에 대한 높은 지식과 통찰력으로 메타넷그룹에서 테크놀로지 리더 역할을 하고 있다. 현재 메타넷 본사에서 ADC(Advanced Development Center)를 총괄하고 있으며 메타넷 베트남 GDC(Global Delivery Center)와 협력하여 애자일 방법을 통한 애플리케이션 개발 프로젝트를 총괄하고 있다.





댓글을 달아 주세요