brunch

You can make anything
by writing

C.S.Lewis

by 서일환 Apr 11. 2021

지양하고 싶은 외주 개발

용병은 일치단결 되지 않으며 야심만 가득하다.

많은 기업들은 전문적인 자체 IT 개발 조직을 가지고 싶어 한다. 사업의 존속과 확장을 위해 충분한 IT 개발인력을 확보하는 것은 쉬운 일이 아니다. 최근 소프트웨어 개발자의 모시기 경쟁이 심화된 상황에서는 더욱이 그럴 것이다. 


요즘은 여기저기서 디지털 트랜스포메이션(Digital transformation)이라는 말을 많이 사용한다. 내가 자주 가는 쇼핑몰의 전광판에서도 저 단어가 나올 정도이다. 저마다 다른 이유로 또는 다른 모습으로 디지털로의 전환을 희망한다. 


디지털 트랜스포메이션을 위해서 많은 기업들은 자체적으로 IT 개발 조직을 확보하고자 노력하고 있다. IT로의 혁신을 위해서 개발자를 처음부터 채용해야 하는 조직도 있을 것이고, 자체 IT조직이 있긴 있지만 이미 비대해진 서비스의 운영부담을 덜고 싶은 조직도 있을 것이다.


새롭게 IT서비스를 시작하려는데 개발자가 아예 없는 조직도 있을 것이고, 이미 내부에 IT전담 조직이 있고 그들이 만들어 둔 비대해진 서비스의 운영부담을 덜고 싶은 조직도 있을 것이다.

이렇게 서로 다른 사연을 가진 두 조직 모두 필연적으로 '외주 개발'을 떠올리게 된다. 여기서 '외주 개발'이란 여건상 자신의 조직에서 만들 수 없는 소프트웨어를 다른 회사에 맡겨 만들게 하는 일을 뜻한다. 


지극히 개인적인 경험으로 비추어볼 때 외주 개발은 장기적인 관점에서 성공하기 힘들다고 생각한다.


신규 IT서비스를 아웃소싱 하는 경우를 생각해보자. 보통의 경우에는 내부에서 개발할 수 있는 여력이 없는 경우에 신규 개발을 외부에 맡기는 선택을 하게 된다. 안타깝게도 소프트웨어는 만드는 것이 끝이 아니다. 만들고 나서부터가 시작이다. 초기 버전이 아무리 잘 만들어져서 배포되었다고 하더라도 지속적인 개선이 없다면 서비스는 죽어갈 수밖에 없다. 외주 개발은 지속적인 향상을 어렵게 한다. 일단 서비스를 만드는 시간을 벌어놓고 사람을 뽑아가며 차츰 핵심역량으로 발전시키면 된다고 생각하겠지만 안타깝게도 그런 여력은 프로젝트 초반 이후에는 다시는 주어지지 않는다. 만약에 그런 여력이 다시 주어졌다면 그것은 이미 만든 서비스가 망해서 완전히 다시 만들어야 하는 경우일 것이다.


소프트웨어가 지속적으로 개선되지 않으면 거기서부터 새로운 문제가 따라온다. 우리가 처해 있는 사업환경과 개발 패러다임은 끊임없이 변한다. 이러한 상황 속에서 소프트웨어만 낮은 수준으로 머물러 있게 되면 결국 개발자와 사용자는 그 낮은 수준에 계속 머물러 있어야만 한다. 사업하는 사람은 변화와 학습의 기회를 놓치게 된다. 개발 실무자의 실력 수준은 몇 년 전의 기술 수준에 갇혀 있어야 한다. 결국 회사의 IT 발전 수준도 정체될 수밖에 없게 된다.


처음부터 빚지고 시작하는 사업은 성공하기 어렵다. 외주 개발로 시작하는 IT서비스는 기술적인 빚을 미리 지고 시작하는 게임이다. 빚은 틈틈이 갚아두지 않으면 어느 시점이 넘어갔을 때 우리를 심하게 괴롭힌다. 일을 처음 시작할 때부터 중간중간 빚을 상환할 수 있는 구조를 만들어 놓지 않는다면 우리는 기술적인 부채를 끝내 통제하지 못하게 될 것이다.


어떻게든 할 방법을 찾아내는 것은 새로운 가치를 창출하고 사업을 주도해야 하는 개발자의 입장으로서 매우 중요한 태도이다. 하지만 어떻게든 찾아내야 할 방법의 선택지에 '외주 개발'은 들어가지 않아야 한다고 생각한다. 사업 상 조직의 핵심역량으로 발전시켜 나가야 할 소프트웨어라면 외주 개발을 하지 않고, 어떻게든 직접 만들 방법을 찾아내야 한다. 초기 자본이나 서비스를 오픈하기까지 걸리는 시간은 길어질 수 있지만 장기적인 관점에서 봤을 때는 자체적으로 개발하는 것이 훨씬 이득이다. 물론 단기적으로 보여주기 위한 성과를 만들기에는 외주 개발이 좋은 선택이 될 수도 있다. 어쨌든 눈에 보이는 무언가가 만들어지기 때문이다. 하지만, 근본적으로 단기간 쓰고 버릴 것을 왜 만들어야 하는지에 대해서는 실용적인 관점에서의 의문은 여전히 남아있다.


운영 업무를 아웃 소싱하는 경우도 긍정적인 면보다는 부정적인 면이 훨씬 많다고 생각한다. 흔히들 외부 업체에 돈만 지불하면 모든 문제를 해결해 줄 것처럼 생각하는 경향이 있다. 주로 IT 개발을 해보지 않은 사람들이 어설프게 돈으로 다 해결할 수 있다고 착각하지만 세상은 그렇게 호락호락하지 않다. 우리에게 운영 업무가 짐이 되고 있다는 의미는 다른 이가 해도 똑같이 비효율적일 가능성이 크다는 뜻이기도 하다. 사실 몇 배는 더 비효율적이 가능성이 크다고 봐야 한다. 업체는 서비스에 대한 사랑도, 지식도 부족할 수밖에 없기 때문이다. 애초에 다른 사람에게 운영 업무를 넘겨줄 수 있는 수준으로 일을 하면 운영 업무를 넘겨줄 필요가 없다. 자체적으로 못한 일을 남이 해주기를 바라는 것은 지나친 욕심이라고 할 수 있다. 아마도 우리 조직은 우아하고 근사한 핵심역량에 집중하고, 업체에는 핵심역량과 관련 없는 단순 반복적인 일을 맡기자 였겠지만 기대한 대로 동작하기는 힘들 것이라고 생각한다.


'마키아벨리의 군주론'에서는 용병을 사용하는 것에 대해 지양하라는 이야기가 나온다. 군주론에 나오는 대부분의 문장들은 꽤나 과격하지만 용병에 대한 이야기도 마찬가지다. 군주론에서는 용병에 대해 이렇게 이야기한다. "용병은 일치단결 되지 않으며, 야심만 가득하고 규율도 없고 배반할 가능성도 크다". 현대적인 관점에서 앞의 문구의 '용병'을 그대로 '외주 개발하는 조직'으로 대입할 필요까지는 없다고 생각한다. 하지만, 담고 있는 메시지는 한번쯤 새겨볼 필요가 있다. 자체적인 핵심역량을 확보하지 못하고, 외부의 역량을 단순히 돈으로 매수한다면 장기적인 관점에서 조직은 무너지게 될 것이다. 쉬운 선택들의 집합은 최적의 선택으로 이어질 가능성을 매우 낮게 만든다.


자체 개발이 쉽다는 의미는 결코 아니다. 자체 개발은 지금 순간 외주 개발보다는 수십 배 더 어렵고 괴로운 작업이다. 하지만, 역경을 극복해 나가는 과정의 끝에는 진정한 가치의 내재화라는 더 큰 선물이 기다리고 있지 않을까?

매거진의 이전글 스스로 결정하는 조직
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari