brunch

You can make anything
by writing

C.S.Lewis

by 김민철 May 29. 2020

Agile Note 두 번째

[Heterogeneous vs. Homogenous Team]

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” 링위에서 얻어터지기 전까지는 누구나 그럴싸한 계획을 가지고 있다..

작가의 이전글 Agile Note 첫 번째
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari