당신이 SI를 떠나야하는 이유
System Integration(SI). 네트웍, 하드웨어 및 소프트웨어 등 IT와 관련된 수많은 요소들을 결합시켜, 하나의 시스템으로서 함께 운영될 수 있도록 하는 사업을 의미한다.(나무위키 발췌). 쉽게 말해 돈을 받고 고객이 원하는 소프트웨어를 만들어주는 형태의 사업인데, 현재 대한민국 IT 시장에서 가장 많은 비중을 차지하는 사업이 바로 SI사업일 것이다. 그러나 동시에 SI지옥, 개발자들의 무덤이라는 오명 또한 가지고 있다.
나 또한 2년 가까이 이 SI 업계에서 몸담아봤고 현재 대한민국 SI산업에 대해 부정적인 시각을 가지고 있다. 하지만 SI 산업 자체를 부정하고 싶지는 않다. 수요가 확실한 사업이며 배울 수 있는 것이 분명 있다. 다만 적어도 당신이 개발자를 꿈꾸는 사람이라면, 기술에 대한 관심과 열망이 있는 사람이라면, SI를 떠나는 것이 옳은 선택이라고 다음과 같은 이유로 감히 확신한다.
1. 시간노동자
SI종사자라면 Man/Month(맨먼쓰)라는 단어를 지겹게 쓰거나 들어보았을 것이다. 주어진 일을 할 때 한달에 노동력이 얼마나 필요한지를 계산하는 단위이다. SI업계에서는 주로 이 맨먼쓰라는 척도로 인건비를 계산하고 계약을 진행한다. 처음에는 이 맨먼쓰라는 단위를 사용하는 것이 이상하게 느껴졌다.
'이 서비스/기능은 한달에 중급 개발자 4명 기준으로 두달..'
정말 이런식으로 업무 일정을 산정 한다. 건설현장에서 인부 몇명이 벽돌을 차곡 차곡 쌓아올려야 건물을 완성될지를 산정하기 위한 체계를 소프트웨어 개발에 적용한 것이다. 일단 이렇게 일정이 정해지면 그 일정은 죽었다 깨어나도 바뀔 수 없다.
물론 아무리 소프트웨어라도 일정과 납기는 필요하지만 그것이 '좋은 서비스'보다 우선인 절대적 가치여서는 안된다. 하지만 SI업계에서는 정해진 프로젝트 일정보다 더 중요한 것은 없다. 따라서 당연히 서비스 품질과 그에 대한 고민 또한 후순위가 되어버리고, 개발자는 시간노동자로 전락하게 된다.
2. Ownership
SI는 쉽게 말해 돈을 받고 소프트웨어를 만들어주는 일이다. 계약에 의해 약속한 소프트웨어를 만들어주는 것. 애석하게도 이러한 구조때문에 실제 SI 현장에서는 소프트웨어에 대한 Ownership을 가지고 일하는 것이 어렵다.
계약시, 받을 돈은 약속되어 있다. 개발 수행사는 이익을 내기 위해서 당연히 최소한의 자원만을 투입하려고 한다. 최소한의 인력, 최소한의 비용만 투자해서 딱 약속한 수준의 소프트웨어를 만드는데 집중하게 된다. 여기까지도 좋다. 하지만 프로젝트가 진행되면 결국 수행사는 '돌아만가면 되는 수준'의 소프트웨어를 개발하는데 집중한다. 어쨌든 약속한대로만 작동하면 되지 않는가.
그러다보니 당연히 소프트웨어에 대한 Ownership을 논하기 어렵다. 개발자의 기술 역량은 더 나은 서비스를 만들기 위한 고민을 통해 발전하기 마련이다. 하지만 SI 프로젝트의 개발 일정은 계약에 명시된 기능을 구현하는데 필요한 최소한의 기간으로 산정되게 된다. 애초에 더 나은 서비스가 어쨌다거나 하는 낭만적인 고민을 할 시간도 여유도 없다. 약속된 기능만 돌아가면 그만이지 코드가 어떻고, 시스템 구조가 어떻고를 누가 신경이나 쓰겠는가? 당연히도 개발자가 개인 역량을 발전시킬 기회 또한 없다.
3. 역할의 제한
일단 SI 프로젝트에 투입되면 당신의 역할은 분명하다. 아키텍트들이 잘 구축해놓은 프로젝트 환경을 내려받아서, 당신이 담당하는 업무의 비즈니스 로직을 코드로 풀어낸다. 개발을 위해 대단한 기술적 역량이 요구되는 것은 없다. 그리고 비슷한 경험이 계속된다. 프로젝트를 하고, 또 하고, 또 해도, 당신에게 요구되는 기술적 역량의 수준은 변함없으며 업무(도메인) 지식만 나날이 쌓이게 된다.
이러한 환경에서 개발적 역량을 쌓아가기란 어렵다. 몇 년동안 기술적 역량 발전에 있어 정체를 겪게 된다면 사실상 개발자로서의 커리어는 끝이 나는 것이다. 연차가 쌓여도 다른 개발자들의 '맨먼스'를 챙기는 SI 관리자가 되는 것 외에 커리어 전환의 선택지가 없다.
물론 커리어에도 이런 저런 방향이 있으니까 잘못된 건 아니지만 개발자를 꿈꾼다면 이러한 환경적 제약을 뚫고 기술 역량을 쌓기는 쉽지 않다. 1년차든, 5년차든 SI 개발자는 변함없이 똑같은 일을 하게될 가능성이 높다.
하지만 끊임없이 변화하는 기술 트렌드를 쫓아가는게 귀찮거나 버겁고, 더 나은 코드와 서비스를 고민할 자신도 필요성도 느끼지 못하겠다면 그냥 SI업계에 머무르는 것도 나쁜 선택만은 아니다. 개발자의 길을 걷기 싫다면 말이다.
나 역시 개발자가 되겠다는 목표를 가지고 SI 업계를 떠나왔다. 2년 가까운 시간동안 현장에서 SI 산업을 피부로 느끼면서 정말 많은 생각을 하게되었고, 그 생각을 공유하고 싶었다. 이 글조써 모든 것을 표현할 수 없어 아쉬울 따름이지만 내가 전하고자 하는 바는 분명하다.
'개발자를 꿈꾼다면, SI를 떠나라.'