2010년 2월 16일 화요일

소프트웨어 회사에 산업 스파이가 존재하는가?

최근에 블로그에 올린 글들의 댓글을 보면 소프트웨어를 잘 개발하는 것이 어떤 것인지 바라보는 시각이 무척 다릅니다. 필자는 주장하는 바가 있어서 소프트웨어 개발에 대한 생각을 꾸준히 공유하고자 합니다. 제 블로그의 미션은 어떻게 하면 소프트웨어를 효과적으로 잘~~ 개발하느냐를 공유하는 겁니다. 대상은 학생 개인부터 대기업에 이르기까지 모두 포함합니다. 하지만 이를 효과적으로 전달하는 것은 쉽지 않습니다. 또한 블로그 글 몇 건으로 생각을 바꾸게하는 것은 더욱더 어렵습니다. 그래서 다양한 측면에서 조명을 해봅니다. 

오늘은 소프트웨어가 하드웨어와 얼마나 다른지 하나의 예를 보여주겠습니다.

예나 지금이나 산업 스파이에 관련된 뉴스들은 종종 나옵니다.
수백억, 수천억을 투자한 기술을 1,2명이서 빼돌려서 해외에 팔아 넘기곤 합니다. 이런 일이 발생하면 회사에 치명적인 손실을 가져오게 합니다. 

위 기사만 봐도 얼마나 많은 기술 유출이 발생하고 있는지 알 수 있습니다. 

하지만 소프트웨어 분야에서 이런 일이 일어난 것을 본 적이 있나요? 소프트웨어 분야에서는 Open Source 정책을 통해서 심지어는 소스코드를 모두 공개하기도 합니다. 구글을 비롯해서 실리콘밸리의 대부분의 소프트웨어 회사들은 개발자가 입사를 하면 바로 회사의 거의 모든 소스코드를 바로 볼 수 있습니다. "개발자가 이 소스코드를 유출하면 어떻게 하나"하는 걱정은 하지 않습니다.

여기서 알 수 있는 것은 소프트웨어 회사의 핵심 기술이 무엇인가 하는 것입니다. 소프트웨어 회사의 핵심 기술을 설계 도면도 아니고 소스코드도 아니고 "사람과 개발 문화"입니다. 아무리 똑같은 소스코드를 가지고 있어도 그대로 따라 할 수가 없습니다. 당연히 그대로 팔아 먹을 수는 없겠죠? 또 유지보수는 어떻게 할까요? 소스코드를 열심히 연구해서 더 좋은 것을 만들려고 해도 만들 수가 없습니다. 

이런 소프트웨어 회사를 다니다가 본인에게 기회가 생기면 회사를 나와서 창업을 하기도 합니다. 이 때 소스코드 다 들고나가도 별로 신경을 쓰지 않습니다. 소스코드를 그대로 사용할 수도 없습니다. 개발자가 들고 나가는 것 중에서 가장 가치 있는 것은 "개발문화와 좋은 동료들"입니다. 이렇게 새로운 Start up이 탄생을 하고 성장하기도 하고 망하기도 하고 이런 시도가 계속 되면서 좋은 소프트웨어 토양을 이룹니다. 이 과정에서 기술과 문화가 계속 섞이면서 발전해나갑니다.

우리나라에서는 많은 소프트웨어 회사들은 소스코드를 신주단지 모시듯하고 심지어는 개발자들에게 공개하지 않고 소수의 개발자들만 볼 수 있게 하기도 합니다. (물론 우리나라에서는 꼭 이래야 하는 극소수의 예외는 있습니다.) 그 이유는 "사람과 개발 문화"가 변변치 않기 때문입니다. 개발자 한두명이 퇴사를 하여 경쟁업체를 만들거나 경쟁업체에 입사를 하면 치명적인 타격을 입기도 합니다. 참으로 척박한 환경입니다. 

소프트웨어 회사에서는 훔칠게 별로 없어야 합니다. 회사가 개발자들을 제대로 Retain하지 못해서 몽땅 나가버리는 경우라면 어쩔 수 없겠지만, 자연적인 개발자 순환을 거치면서도 소프트웨어 회사는 지속적인 기술 발전을 시킬 수 있어야 합니다. 소스코드를 모두 공개해도 좋은 개발팀을 유지하고 있으면 어느 누구도 우리보다 잘 할 수 없어야 합니다. 한두명 개발자가 퇴사를 해도 치명적인 타격을 입지 않아야 합니다. (아주 작은 회사는 예외) 소프트웨어 회사의 재산은 "좋은 개발자들과 개발 문화"여야 합니다. 

적당히 뽑은 공대생들 잔뜩 모아 놓고 프로그래밍 가르쳐서 회사에서 정해 놓은 프로세스대로 개발하고 지정한 문서 만들게 해서 좋은 개발팀이라고 착각하면 안됩니다. 세계 유수의 개발방법론 도입하고 CMMI Level5라고 해서 좋은 소프트웨어 개발 문화와 프로세스를 가지고 있다고 착각하면 안됩니다. 지금까지 나열한 것들은 오히려 방해요소가 될 수도 있습니다. 

물론 하드웨어도 소프트웨어와 공통점이 있겠죠. 좋은 인재가 필요하고 문화도 필요하겠죠. 하지만 저는 하드웨어 전문가는 아니니 이것은 언급하지 않겠습니다. 소프트웨어가 얼마나 다른지를 강조하고자 합니다. 이글을 자신의 회사에 적용해보고 우리 회사의 "개발문화"를 한번씩 가늠해보도록 합시다.

댓글 25개:

  1. 딱 규정된 방법론이란게 없는 것. 더 나은 방법을 회사내에서 가꾸어야 한다는 것.
    많이 공감이 되는 내용입니다.
    소프트웨어와 하드웨어의 공통점중에서 표준과 스팩을 정립하는 것은
    어떤 분야라도 더 안정된 시장을 만들 수 있는 초석이 아닌가 싶습니다. 물론 여러가지 사례를 통해서 알 수 있는것이구요. 하지만 하드웨어와 소프트웨어는 이름 명명을 보더라도 확연하게 다른 시장임을 참작할 수 있습니다. ( 단, 소프트웨어도 스팩재정의 힘은 있습니다. ), 장점과 단점을 잘 다스려서 가꾸어 나갔으면 하는 바램입니다.

    답글삭제
  2. 하지면 현실은 시궁창이란 문제가 ㅠ.ㅠ

    아! 새해복 많이 받으세요!

    답글삭제
  3. 어떤 곳에서는, 어떻게 일을 하는지, 어떤방식으로 소프트웨어를 개발하는지 하나 하나 모니터링을 하더군요.
    결국 그런 모니터링을 하더라도.. 똑같이 따라할 수가 없는 이유는 자신의 노하우가 아니기 때문일 것입니다. 이런 관점에서 보면 소스코드도 마찬가지 입니다.
    아무리 숨기고 기발한 소스코드라고 하더라도 소스코드만을 가지고 똑같이 따라하려 해도 그것과 똑같이 만들 수는 없는 것이죠.
    더 발전된 기업일 수록 소스의 오픈화를 합니다. 경험적으로도 더 창의적인 기업은 소스코드에 집착하는 모습을 볼 수 없었습니다.
    ( 오픈소스 프로젝트에서 소스코드를 블랙박스화를 한 곳을 봤습니다. 그곳도 기술적 가치나 흐름을 주장했지만 결국, 소스코드는 결국 장벽으로 쌓아놓더군요. 왜 아무것도 아닌데, 그렇게 숨기려고 하는지 모르겠습니다만, 신생기업이나 안정된 기업이 아닐 수록 그런 폐쇄적인 모습들을 종종 보곤합니다.

    결국 그런곳은 가치를 배우는 것보다, 가치를 전달해 주는것 때문에 골머리를 앓고 말죠.

    각 조직의 장단점을 아는 이들이 움직이면,
    그에 따라 귀를 열고 있어야 하는데 조직내부의 목표가 소프트웨어 목표로 둔갑해서,
    목표를 상실하는 것이 당연시 되는 문화도 있더군요..
    아무것도 아닌 소스코드나 전달한 소스코드도 오픈하지 말라고 하는 것 상식적으로나, 요즘 추세쪽으로나 이해가 가지 않는 부분입니다. )

    답글삭제
  4. 원래 무른모 개발이란 건설과 판박이랍니다.
    엔지니어링회사가 다 디자인 하죠. 그래서 건축가들은 명성을 얻는답니다. 이런 디자인에 바탕하여 하청, 재하청이 반복됩니다. 이런 구조적 사슬에 있다는 것을 이 땅의 무른모개발자/지망자는 몰랐다는 것이고
    무른모 개발이 이 딴 것이었다면 갑/을 이었다면 애초 쳐다보지도 않았을 것이랍니다.

    그러나 이런 갑/을 관계가 무른모의 구조적인 문제는 아니고
    무른모는 모두 공짜여야 한다는 무의식적인 산짜이 의분에 휩싸여서
    거의 깨어나올 가망이 없는 것이지요.

    그저 과거부터 현재까지 약간의 보조금을 주고서 연명을 하는 것이지요.
    다만 게임분야만큼은 좀 모습이 괜찮은 듯 하나
    정부.공기업.대기업 하는 꼴을 보면 바로 이집트 세리의 모습이고
    이 장면 한번 보면 다 이 곳이 이런데구나 하고 뼈아프게 후회한답니다.

    한 편으로 이런 나약한 약골들은 이 나라의 무른모 세상에서 빨리 떠나 다른 길을 모색해야 한답니다.
    그만큼 척박한 땅이 이 땅의 무른모 세상이니.

    사실 지나보면 이런 멋진 디자인을 하고 멋진 건축을 만든 무른모 선배가 없어
    롤모델이 없기도 한데
    세상에 선배가 별볼일 없으면 더 멋진 디자인과 건축물을 만들면 돼지요.

    지나보면 무른모란 벌레들이 많이 기어다니지만 결국 멋진 건축물, 멋진 손만, 멋진 그림을 만드는 사람들이라 생각한다오.

    무엇보다 중요한 것은 기골을 키워야 한다오.
    무른모란 결국 기골에 들어가는 것이니
    그래야 다른 기골들이 움직인다오.
    기골을 키우고 고집理를 쉽게 꺾지 말기요.

    답글삭제
  5. '소스코드를 모두 공개해도 좋은 개발팀을 유지하고 있으면 어느 누구도 우리보다 잘 할 수 없어야 합니다. 한두명 개발자가 퇴사를 해도 치명적인 타격을 입지 않아야 합니다.'

    좋은 지표네요. :)

    답글삭제
  6. 아래 부분 200% 공감 합니다.

    - 소프트웨어 회사의 핵심 기술을 설계 도면도 아니고 소스코드도 아니고 "사람과 개발 문화"입니다.

    회사들도 이제는 폐쇄적 접근 방법 보다는 오픈을 하면서도 수익이 발생 할수
    있는 방법에 대해서 고민이 필요한 시기라고 생각합니다.
    그러기 위해서는 정말 유연하고 자유로운 조직 문화가 필요하다고 생각합니다.
    이런 분위기라면 개발자들도 조직을 쉽게 떠나지 않을 것입니다.

    답글삭제
  7. 기관 및 기업정보의 유출이 일상다반사로 일어나는 있습니다.. 알게모르게 언론보도가 되지 않은 것들도 많습니다. 그래서 개인적으로 기업스파이? 산업스파이들이 어떤식으로 접근하여 정보를 빼가거나 유추하는지에 대해서(고급기술이 들어가는 기법보다는 일반적으로 이렇게 할까? 라는 상식선에서.. 하지만 실제로 일어나고 있는 행위들) 몇자 적어보도록 하겠습니다. 1. 박람회나 세미나에서 자사의 기술력 설명에서 자랑하거나 기술자들간의 대화에서 흔하게 노출될수 있는..

    답글삭제
  8. 이슈와는 거리가 먼 답글입니다만..
    소프트웨어 개발자로써 종사하는 사람임에도 "무른모"가 무슨 뜻인지 몰라서 사전을 찾아봤습니다.
    소프트웨어를 의미하는 말이더군요. 색다른 표현을 알려주신것에 대해 감사드립니다. (__)a

    답글삭제
  9. "무른모"란 용어를 안다는 것은 오래된 개발자라는 뜻?
    한때 외래어 한글화 일환으로 여러 단어들의 한글화가 시도되었었죠.
    누리꾼, 댓글 등 자리잡은 단어들도 많은데 "무른모"는 소리소문없이 사라졌네요.
    그런데, 한글화의 문제점이 일반인은 좋지만, 개발자 입장에서 두 단어를 모두 알아야 하는 단점이 있죠. 그래서 그냥 영어를 그대로 쓰는게 개발자에게는 편하긴 합니다.

    답글삭제
  10. moova님 안녕하세요.
    실리콘밸리의 소프트웨어 회사에 가서 "너희 방법론은 뭐냐?"라고 물어보면 대부분 그런거 없고 그냥 개발한다고 합니다. 요즘은 Agile에 관심이 좀 있기는 하더군요. 하지만, 자신의 회사에 맞게 이거 저거 섞어서 사용하기 때문에 특별한 방법론은 없습니다.
    그래도 스펙을 가장 중요시하는 것은 여전합니다. 뭐하나 개발을 해도 스펙을 꼭 작성하고 리뷰를 한 후에 개발을 하죠.

    답글삭제
  11. 정말 획기적이고 기발하고 어렵고 새로운 것은 별로 없습니다. 아이디어는 새로울 수 있으나 소프트웨어를 개발하면서 사용하는 기술들의 99%는 그렇지 않습니다. 새로운 기술이라면 바로 프로젝트에 적용할 수 없죠. 이를 검증하는 프로젝트가 별도로 필요하곤 하죠.

    답글삭제
  12. 안녕하세요. 구차니님
    우리들이 바꿔나가야 하겠죠. 아자.

    답글삭제
  13. 소프트웨어 산업의 고질적인 문제를 더 언급하셨네요.

    저가 수주에 따른 저가 하청 및 재하청
    불합리한 갑/을 관계
    소프트웨어의 가격을 쳐주지 않는 관행 및 불법복제
    정부 지원금 및 이것으로 연명하는 기업들

    블로그가 있으면 좀 알려주시지요? 감사합니다.

    답글삭제
  14. 안녕하세요. 영회님 오랫만이예요.
    요즘도 블로그 잘 보고 있습니다.

    답글삭제
  15. 안녕하세요. Beyond J2EE님
    많은 경영자들이 개발자를 단순히 도구로 생각하고 있습니다. 공장에서 조립라인의 직원 생각하듯히 하는 경우가 많습니다.

    답글삭제
  16. 매번 공감하는 글을 쓰셔서 잘 봅니다.

    아직까지 소프트웨어만의 특성을 이해하는 상위 관리자는 많지 않은 듯 합니다. 바로 앞의 성과만 중요시하다보니 사람과 개발 문화에 대한 이야기를 하면 왠 뚱딴지 같은 소리하냐며 무시 당하기 일쑤입니다.

    외국의 소프트웨어 기술과 환경이 급속히 발전하고 있는데 국내는 계속해서 정체만 하고 있는 듯하여 마음이 아플 따름입니다.

    답글삭제
  17. 안녕하세요. 자바지기님
    아직 저변이 부족해서 그런 것 같습니다. 요즘 스마트폰이 관심의 대상이 되면서 삼성전자의 부진이 이슈가 되고 그 원인으로 소프트웨어가 대두되고 있는 상황입니다. 이런 일이 반복되면 소프트웨어에 대한 시각이 바뀌는데 일조하지 않을까 생각합니다.

    답글삭제
  18. 많이 공감되는 글입니다.

    부족한 토론 문화, 싹을 잘 죽이는 조직문화, 다른것을 인정 안하는 문화

    대충 생각만해봐도 개발문화에 걸림돌이 되는 사회적인 습관이 많군요.

    사람자원은 최고중 하나인 나라에서 문화가 걸림돌이 되는데 이와같은

    문제의식을 지닌 사람 자체가 드물다는게 더 슬프군요.

    PS: 글 주제에선 약간 벗어낫지만 소프트웨어 산업의 핵심이 사람과 문화라는것에 동조하면서 다른생각이 나서 씁니다.

    답글삭제
  19. 사람들이 쓸것이고 사람들이 모여서 만들기 때문에
    사람들과 그 사이에서 피어나는 문화를 이해하는 것이 가장 중요한것 같습니다.
    틀에 갖히고 안주하지 않기 위해 계속 틀을 깨야 한다고 생각합니다.
    개인적으로 이번에 큰 틀을 깨고 나옵니다.^^ 지금까지 해온게 아쉽지만 기대되네요..

    답글삭제
  20. 신기술이라면 바로 프로젝트에 적용할 수 없다는 것에 공감합니다. 그것에 더해서, 신기술에 대해 기술적 검증이 필요한 기간은 꼭 필요한 것 같습니다. 신기술이라고 해서 장담할 수 없는 것 중에 하나가, 기존 사례가 미약해서 쉽게 계약이나 결정을 못하는 것은 어떻게 보면 당연한 것 같습니다. 하지만, 사례가 많다면 여러가지 장점을 취할 수도 있겠습니다.

    답글삭제
  21. 무른모..라는 말이 먼저 나왔는지 모르겠는데 한참 그말이 널리 쓰이려는 즈음에 "씨앗" 이라는 순수 한글 풀그림 언어도 있었죠. 한때나마 이 척박한 땅에서도 나무를 키워 숲을 이룰수 있다고 생각해본 순진한 시기였습니다만...

    답글삭제
  22. 항상 좋은글 감사합니다 ^^ 어쩜 이리도 부지런 하실까요~! 배워야겠습니다~~

    답글삭제
  23. 안녕하세요. BackToT님
    "토론문화" 중요하죠. 소프트웨어 개발하는데 있어서 정말 중요한 요소입니다.

    답글삭제
  24. 청하님 안녕하세요.
    소프트웨어 문화 막상 보면 별거 아니고 다 아는 것처럼 보입니다. 하지만 교과서에서 보고 아는 것과 오랫동안 해와서 몸에 익은 것은 하늘과 땅 차입니다.

    답글삭제
  25. 안녕하세요. Mr봉쿠레님
    감사합니다. 사실 별로 부지런하지도 않습니다. - -;

    답글삭제