SI 개발자와 회사에 필요한것

어제 고등학교 동창 친구를 만났습니다. SI개발 출신으로 이직 준비를 하고 있어서 이야기를 나누었는데, 매우 답답하고 안타까운 느낌이 들었습니다. 같은 SW개발직군에 있었으나, 다른 프로세스, 다른 문화, 바꿀 수 없다는 패배감. SI직군들의 개발자들에 전체적으로 드는 느낌입니다.

인터넷 기업의 문화를 한참 떠들었습니다. 그러니, 그 친구가 하는 말이 머리를 한대 맞은것 같다라는 느낌이라더군요.

정말 안타까운 생각이 들었습니다.

인터넷기업들이 하는 개발 문화는 하늘에서 뚝 떨어진게 아닙니다. 소프트웨어가 가지고 있는 가장 기본적인 속성과 대학에서 배운 컴퓨터과학에 모두 녹아있던 것을 그대로 하는 회사일 뿐입니다.

로그나 출력을 기반으로 디버깅하고 고쳐나가고, 반복되는 코드는 리팩토링을 통해 합치고, 순서를 바꾸거나 앞단에서 처리가 가능하면 해당 코드로 성능을 개선하고. 한번에 만들고 테스팅하면 디버깅이 어려우니, 조금씩 코드를 짜면서 반복 테스팅으로 작은 단위를 검증하고, 원격에 있는 API는 레퍼런스를 믿고 코딩하고, 이러한 일련의 과정이 회사 전체에 녹아있을 뿐입니다.

4369776892_5cd42d27ba_z

그러나 SI는 시간단위의 돈을 받기 때문에 반복되는 코드는 오히려 시간을 증가하므로 선호하고, 프로세스 개선을 통해 성능개선을 할 수 있음에도 불구하고, 고객에 맞추어서 일을 해주는 것이 중요하니 쓴소리는 하지 않고, 결국 결과물을 주고 돈받는게 중요하니 빠른 피드백이 아니라 인수 시점만 중요하고, 설계수정은 지속적인 사업관계를 위해 허용하다보니 소프트웨어는 망가지고, 발주자는 화가나고, 개발자들의 삶도 망가지고, 수주회사의 이익도 망가지고, 서로를 믿지 못하니 꼭 붙어서 지켜봐야하고.

SI의 가장 큰 문제는 학교에서 배운 원칙을 지키지 않음으로서 자식과 같은 소프트웨어는 망가지고, 신뢰가 망가져서 산업이 망가진 느낌입니다.

그리고, 한국의 개발자들은 착하다보니 그래도 맡은건 끝내야지 않겠냐 하길래.  왜 소프트웨어가 중요한데 NO라는 말을 못해서 결국은 다시 개발의 책임이 되야 하는지. 권한은 없고 책임만 있다면 그곳에 왜 있는 것인지. 너 자신에게 내제화되는게 없다고 느끼고 성장하지 않는다고 느끼면 왜 그 조직에 속해있는것이냐. 라고 말했습니다. 또한 그 회사가 공무원처럼 정년을 보장해주냐? 라고 하면 아니라고 하더군요.

빈꿈님의 풀 스택개발자에 대한 웹툰을 보았습니다. 풀스택개발자. 사실 주로 인터넷 기업들에서 찾는 개발자입니다.

풀스택 개발자, 먹고 살다보니 어찌어찌 되더라만 이젠 안 하려네

그러나, 기획, 개발, 운용을 다하는 개발자를 풀스택 개발자라고 말하는 것은 상당히 이해가 잘 못된것 이라고 봅니다. 분명히 NO라고 말했어야 하는 일입니다.

풀스택개발자란 혼자 돌아가는 서비스를 만들 수 있는 수준의 개발자입니다. 스타트업의 경우 속도가 중요하여 우선 돌아가는 소프트웨어가 필요합니다. 그러면서 장기적으로 빠르게 대응할 수 있어야 하는데, 속도는 결국 완벽함을 일부 포기하고, 그 완벽함을 언제즘 갖추어야 하는지를 알고, 사람을 투입하거나 적합한 기술과 솔루션을 식별할 수 있는 개발자가 바로 풀스택 개발자라고 봅니다.

그리고, 누가 풀스택 개발자냐라고 묻는다면, 역시 학교에서 다 배웠습니다. OS부터 웹까지 배웠는데, 왜 풀스택 개발자가 아닌가요?  중요한건 할 수 있는 것입니다. 풀스택의 뛰어난 스킬을 가진 개발자라고 할지라도 주변의 사람들을 마이너스 시키는 이와는 함께 일하기 힘듭니다. 결국은 SI측의 개발자들에게 중요한것은 실력이상으로 필요한것은 긍정적 에티튜트가 아닌가 싶습니다. 무언가를 만들 수 있는 실력을 지녔는데 왜 그렇게 안될거라는 이야기를 하는지 무척 안타깝습니다.

소프트웨어 개발자에게 요구하는 능력은 되게 하는 것입니다. 그리고 될 수 있을것 처럼 얘기해야 합니다. 안된다는 것은 똑부러지게 안된다고 말해야 합니다.

늘 10씩 일해주고 10의 돈을 받는게 아니라, 늘 10씩 일하다가 10을 1에 할 수 있는 것을 개발해서 8을 달라고 해야 합니다. 이는 발주자가 생각하지 못했던 것이어야 합니다. SI기업들은 특정 영역에 2등, 3등이 존재합니다. 그러나 재사용이 가능한 SW의 본질에서는 2등 3등이 존재할 이유가 없습니다. 소프트웨어가 중요한 만큼 2등 3등 제품을 싸게 써야 할 이유가 없습니다. 오히려 1등이 더 쌀 이유를 더 많이 갖게 됩니다.

때문에 인터넷 기업들의 특징은 사실 2등, 3등이 없습니다. 각 기업들은 같은 산업군처럼 보이지만 다른 사용자를 타겟으로 생존한 1등 기업들입니다. 적당히 만들어서 가격 경쟁을 하고, 내가 일한 만큼 받는다라는 것이 상당히 SI측에 널리 퍼져 있는 것 같지만, 이것이 소프트웨어적이지는 않습니다.

소프트웨어가 적당하게 만들어서 싸게 파는것. 투입시간, 투입코드 만큼 가격을 쳐주는 것.. 소프트웨어에 정말 맞는걸까요?

소프트웨어 산업이 커지고 미래가 되더라도 커스텀에 대한 욕구가 없어지지는 않을겁니다. 하지만, 확실한건 커스텀이란 오픈소스를 이용해 자신의 입맛에 맞게 직접 사용하는 것과 외부의 다양한 소스들을 엮어서 만드는 것이 소프트웨어의 속성입니다. 쓴만큼 돈내고, 경험한 가치만큼 지불하는 것이 소프트웨어에 가장 적합한 방식입니다. 그리고, 소프트웨어의 개발자에 대한 평가도 만든 코드에 의한 가치를 메겨야 합니다. 내가 만든 소프트웨어가 남이 만든것과 같다면, 왜 만들죠? 학교에서 교과서를 보고 코딩을 하는 것과 뭐가 다를까요? Copy는 사람보다 컴퓨터가 잘합니다.

중요한건 이미 소프트웨어를 통해 다 배웠습니다. 실천할 때 입니다.

만들 수 있는 능력이 있는데, 왜 전문가 답게 가치를 증명하지 못하는걸까요?

능력은 이미 있습니다. 필요한건 자신감이고, 배운데로 하는겁니다.

체념하면 아무것도 바뀌지 않습니다.

 배운데로 하는 것이 지속적으로 묵살된다면, 그곳은 위험합니다. 탈출하세요.

순리대로하는 회사가 더 좋은 소프트웨어를 만들어 시장을 언제든 장악할 수 있음을 의미합니다.

 

글 : 숲속얘기
출처 : http://goo.gl/4UC2Eq

%d bloggers like this: