2009년 12월 8일 화요일

SW회사에서의 창업공신 숙청

많은 성공한 소프트웨어 회사들은 초창기에 소수의 개발자들의 피와 땀으로 현재의 성공을 이루었습니다.

이 소수의 개발자들은 일반적으로 열정도 뛰어나고 소프트웨어 개발 실력도 좋습니다. 또한 회사일 내일 가리지 않고 밤낮을 구분 없이 수년 동안 헌신해 왔습니다. 회사의 성공이 곧 나의 성공이라고 생각하고 성공 뒤에 오는 결실도 꿈꿔왔습니다.

그렇게 해서 회사는 성공을 하고 규모도 커졌는데, 과거의 그 창업공신들이 앞으로의 회사 성장에 방해가 되는 경우가 흔히 발생합니다.

회사는 외형적으로 과거와는 비교도 안되게 성장을 했지만, 창업공신들은 과거의 주먹구구 방식의 구태를 못 벗어나면서 새로운 시스템과 프로세스를 적응하지 못하는 경우가 많습니다. 
회사에서 판단해야 할 중요한 기술적이면서 비즈니스적인 이슈들이 많은데도 이들은 여전히 엔지니어 마인드를 못 벗어나서 사사건건 방해가 되곤 합니다.

이들은 이미 회사 내에서 큰 영향력과 파워를 가지고 있고 또 좋은 대우를 해주고 있기 때문에 직원들도 함부로 무시를 못하고 이들도 회사를 떠나고 싶은 생각이 별로 없습니다. 이런 건설적이지 못한 관계는 지속적으로 회사를 괴롭힙니다.

이런 결과는 개인의 성장과 회사의 성장이 조화를 이루지 못해서 발생합니다.
회사의 성장과정의 열악한 환경에서 일해온 창업공신들은 개발자가 성장하면 갖추어야 할 많은 소양을 갖추지 못하게 됩니다. 매일 촉박한 일정 속에 극히 소수의 인원이 모두 슈퍼맨처럼 일을 그것도 오랫동안 해왔기 때문에 체계적인 협업, 전문화, 프로세스 등은 점점 멀어지고, 문서도 제대로 작성 못하고, 리뷰 습관은 꿈도 못 꿉니다. 이러다 보니 10년을 일해도 신참 때보다 코딩만 빨라지고 문제 해결 능력만 좋아졌지, 선임 개발자로서 역량을 갖추지 못합니다. 여전히 혼자서 열심히 일하지 많은 개발자들을 잘 리드하여 큰 프로젝트를 효과적으로 이끌지도 못합니다.

회사에서는 이런 창업공신을 대우해주고 싶어도 그렇지 못한 경우가 많고, 규모가 커진 회사에 전문 경영인이라도 들어오면 숙청을 당하는 일도 발생합니다. 그러다 보면 이런 창업공신은 살아남기 위해서 처절한 정치 싸움이 시작되기도 합니다.

이는 회사와 개발자 모두의 책임입니다.

회사는 개발자가 꾸준히 성장할 수 있는 환경을 제공해야 합니다. 개발자에게 교육의 기회를 제공하고 자기 계발을 할 수 있는 시간과 여유도 줘야 합니다. 회사가 생존 모드인데 언제 그런 여유가 있냐고요? 이는 핑계인 경우가 많습니다. 1년 365일 그럴 수는 없습니다. 개발자 성장에 관심이 있다면 언제든지 기회는 있습니다. 회사가 커 가면서도 소수의 개발자들의 공력에만 의존하지 말고 적당한 시점에 체계를 갖추면서 개발자들도 같이 성장할 수 있는 기회를 제공해야 합니다.

또한 개발자들은 자신의 자기 계발에 꾸준히 노력해야 합니다. 회사가 아무리 기회를 제공해도 본인이 노력하지 않으면 성장할 수 없습니다. 회사가 아무리 바쁘다고 매일 코딩에만 매달리다가는 몇 년이 지나서 코딩기계가 될지도 모릅니다.
여기서 자기 계발이란 개발자로서 성장하는데 필요한 모든 것을 말합니다. 새로운 Technology를 계속 배우고, 프로세스, 툴을 익히고, 소프트웨어 공학도 배우고, 영어가 필요하면 영어 공부도 해야 합니다.
오로지 코딩에만 관심 있다고 하는 개발자들이 있는데 대부분은 코딩의 의미를 너무 광범위하게 생각해서 발생하는 오해이고 대부분, 설계/분석 등 개발에 다양한 분야에 관심이 있는 경우가 대부분입니다. 
너무 바빠서 자기 계발을 할 시간이 없다고 하면 일욕심이 너무 많은 개발자일 겁니다. 일을 조금 천천히 하더라도 자기 계발할 시간을 가지는 것이 본인과 회사 모두를 위해서 좋은 겁니다.

창업공신을 숙청하는 일은 소프트웨어 업계 말고 정치판에서나 있으면 좋겠습니다.

댓글 20개:

  1. 코딩기계가 나쁜건가요? 저 역시 평생 코딩만 할 생각은 없지만..
    제가 좀 부족해서 그렇게 생각할 수도 있겠지만..
    고급개발자(코딩스킬이 다양하고 빠른 개발자)가 있으면
    아무래도 신입이나 초급 개발자들에게는 많은 도움이 될 수도 있을것 같은데요..
    생산라인의 공장장(?) 같은 역할을 할 사람도 필요한게 아닐까 싶은데요..

    제가 그런분이 필요하다고 느끼고 있어서.. --;;
    대부분의 소업체들은 기존의 소스나 문서 관리도 없이..
    물어볼 사람도 없이.. 그렇게 흘러가고 있는데.. 이건 좀 아니다 싶어서요.. ^^;;;

    답글삭제
  2. 안녕하세요. 담덕님
    이는 좋고 나쁨의 문제가 아닙니다. 코딩을 잘하는 것은 좋죠. 또한 아무리 고급 기술자라도 기본적으로 코딩을 잘 해야 합니다.
    하지만 경력이 철철 넘치는 개발자가 코딩만 한다면 그 가치가 낮아지겠죠. 그런 맥락으로 보시면 되겠습니다.
    담덕님 코멘트를 보면 코딩 기계보다는 개발팀을 이끌 수 있는 선임급 이상의 개발자가 필요한 것 같습니다.
    제 글에서도 지향하는 바입니다. 현재 회사에 그런 사람이 없다면 담덕님 입장에서는 어려움이 있을 수 있겠습니다. 지금은 책이나 제 블로그 같은 블로를 통해서 간접 경험을 하시는 것이 약간의 도움이 되지 않을까 생각합니다.
    그리고 스스로 조금씩 회사를 바꿔 보시는 것은 어떨까요?

    답글삭제
  3. 공감하는 글입니다.
    비단 IT뿐만이 아니라 모든 분야에서 일하는 사람들의 자기개발과 회사 업무가 균형있게 이루어져야 할텐데요..

    답글삭제
  4. 그냥 개발자는 슈퍼맨에 저렴한 임금에 착취당하는 노예로 점점 사회가 요구하는것 같습니다.

    물론 이상적으로는 당연한 이야기 이지만, 정작 이런 이야기를 들으면,
    내가 그런 능력 다있음 내가 회사 차리고 운영하지! 라는 생각만 드는건 왜일까요..



    (갈수록 비판적으로 리플을 다는것만 같습니다 ㅠ.ㅠ
    삶이 팍팍해져서 괜히 화풀이만 하는거 같아 죄송합니다)

    답글삭제
  5. SW 회사에서 창업공신 숙청. 맞는 말이다. 회사와 함께 직원들도 같이 성장해야 하는데, 많은 경우 회사의 성공에 희생당한다.

    답글삭제
  6. '프로그래머가 프로그래밍만 잘하면 되지.'라고 생각했었는데, 사실 그게 아니더라구요.
    코딩을 하기까지 필요한 분석/설계단계의 중요성도 깨닫게 됐구요.(+문서화라든지..)
    필요한 자료를 외국사이트에서도 얻을 수 있을만큼 영어실력도 갖춰야 한다는 것도 알게 되더라구요.
    그러고보면, "프로그래밍"이란게 단순히 '코딩'만을 의미하는 건 아니라는 생각도 들던데..

    왠지 '프로그래머는 코딩만 잘 하면 된다.'는 생각을 계속 관철해서는 진짜 "코딩 기계"가 되지 않을까란 생각도 들게 되네요.

    좋은 글 감사합니다.

    답글삭제
  7. 제주소년님 안녕하세요.
    경영자들도 특히 소프트웨어 회사 경영자들은 직원과 회사가 상생이라는 것을 깨달아야 하겠습니다.

    답글삭제
  8. 구차니님 안녕하세요.
    대부분은 슈퍼맨 같은 개발자라야 제대로 일할 수 있는 환경이라서 그렇습니다. 그러다 보니 사회도 그런 사람을 요구하지요.
    그리고 그렇게 능력있는 개발자들이 모여서 회사를 만들기도 합니다. 많이들 실패하지만, 또 시도하고 도전하죠.
    우리나라에서는 그런 실패가 쉽게 용납이 안되고 실패에 대한 타격이 너무 크기 때문에 쉽게 도전이 어려운 것 같습니다.

    "실력 + 경험 + 좋은 동료들 + 기막힌 아이디어"가 있으면 한번 도전해보겠습니다.

    답글삭제
  9. 안녕하세요. funeasy님
    개발 또는 프로그래밍을 범위를 어디까지 보냐에 따라서 다른 것 같습니다. 소프트웨어를 개발하는 전 과정 모두 중요하죠.
    그중에서 코딩은 고장 5% 중요성 밖에 가지고 있지 못하다고들 합니다.
    가장 중요한 것 "요구사항분석" 즉 스펙을 쓰는 일입니다.
    우리나라에서 코딩하는 개발자들은 코딩하면서 설계하고 코딩하면서 스펙도 정하는 방식으로 짬뽕이라서 결국 능력있는 개발자가 코딩도 잘하는 시스템인데, 이런 주먹구구 방식은 프로젝트가 조금만 커지거나 하면 엉망진창이되죠.

    답글삭제
  10. 주어진 기능만 구현하면 그만.. 이라며 자조적인 위로를 하는 개발자들도 종종 봅니다.

    개발자 스스로 성장 후의 비전을 그리기 위해서는
    개발에 필요한 다른 영역으로 관심을 뻗어나가며 배양하는 노력은 정말 중요한 것 같습니다.

    좋은 글 잘 보고 갑니다.

    답글삭제
  11. Spec의 중요성에 동감합니다. 프로그램이야 어떻게 되었던 요구사항의 분석을 어떻게 하는지 또는 SE의 능력여하에 따라서 프로젝트 진행 자체가 바뀔 수 있다고 생각합니다.
    SI이건 솔루션이건 비즈니스를 다루는 곳이라면 모두 동일하다고 생각합니다.
    그래서 규현님과 같은 소프트웨어공학 컨설턴트가 필요하고 말입니다.

    능력여부에 따라서 지금 제가 있는 판은 일을 산같이 떠 넘기고, 자신에게 굽신거리면 봐준다~
    모 이런식입니다. 상식적으로 이해가 가지 않는 수준인데..말이죠.
    걍 웃어 넘길려구요.~

    때에 따라서는 개발머신이 필요할 수도 있다고 생각합니다. 프로젝트 마지막에 투입한 사람에 한에서는 말이죠. 하지만 규현님의 관점처럼 개발자들도 꾸준한 노력이 필요하다고 생각합니다. 미래지향적으로 프로세스를 잡는 컨설턴트가 될 것인지, SE가 될 것인지 아니면 비즈니스 영역을 더 키워서 아키텍트나 SA가 된다던지 말이죠. 대부분의 개발자들은 코딩만 하고 안주하는 것보다 꿈이 많은 것 같습니다. 하지만 이것을 받쳐줄 수 있는 조직이 없다라는 것이 문제라면 문제겠지요.

    답글삭제
  12. 처음 몇줄은 저희같은 일반 개발자를 위한 글처럼 보였는데,
    쭉 읽다보니 직원의 입장보단 회사의 입장으로 글을 썼구나 하는 생각이 들었습니다.
    그러다가 마지막까지 읽으니 어느정도 공감이 갑니다.
    마무리를 잘 하셨네요.
    그리고 마지막 멘트가 멋졌습니다.^^

    답글삭제
  13. 안녕하세요. 룰루님
    개발자들은 꾸준히 어떻게 하면 더 개발을 잘할까 고민해야 합니다. 기본이죠.
    만약 기능만 구현하면 그만이라고 생각하는 개발자는 전산실로 가야죠.

    답글삭제
  14. 안녕하세요. cw님
    항상 상생이 중요하죠.

    답글삭제
  15. 안녕하세요. moova님
    개발자들이 꿈을 펼칠 수 있는 저변이 부족한 것은 사실입니다. 조금씩 좋아질 것을 기대하고 있는 것이죠.

    답글삭제
  16. 저희 회사에서는 아직 언급하신 단계까지는 아니지만 점점 비슷한 이야기들이 오가는것 같습니다.
    어제도 팀장님과 토론을 했지만 모두들 문제는 공감하면서 바뀌지 못하는 현실.. 안타깝네요ㅠㅠ
    전규현님의 글을 읽다보면 가끔 섬뜩합니다. 혹시 저희 회사 관계자 분이 아닌가 하고;;;

    답글삭제
  17. 안녕하세요. sozu님
    그 이유는 이러한 현상이 비단 sozu님 회사 뿐만 아니라 업계 전반적으로 빈번히 일어나는 일이기 때문입니다. 참 열악한 환경입니다.
    SW회사와 개발자 모두가 노력해서 바꿔나가야 합니다.

    답글삭제
  18. 개발자의 성장 모델이 제대로 정립이 안되어 있는 대한민국의 현실을 생각해 보면 , 회사의 성장에 따른 상황에 적응이 안되어 나타나는 부조화 상태 , 이런 문제가 회사와 개발자 모두의 책임이라는 부분에 공감합니다.
    초급, 중급, 고급이렇게 급이 올라가는 것이 , PL - PM - 팀장 이렇게 위치가 바뀌는 것이 개발자가 가야 될 길은 아니라고 보여 지네요. 십여년 밖에 안 된 한국의 SW개발 상황에서 너무 많은 것으로 요구하는 것도 무리이겠지만 ...

    답글삭제
  19. 석부장님 안녕하세요.
    개발자가 고참이 되면 마땅히 할 것이 없고, 관리자라 되어가는 분위기를 타파해야죠. ^^

    답글삭제
  20. 개발자에게 코딩의 중요성과 프로그래머로써의 지속가능에 대해서는 소프트웨어 공학이 나오기 시작하면서 부터 이슈가 되었을 것입니다.
    많은 개발자들이 자신이 전문프로그래머로 코딩만을 하기를 원하고 고집하며 그나름대로의 깊은 세계가 있는것도 맞는 것 같습니다.
    또한 방장이신 전규현님의 말씀을 단면만 보고 "이래서 우리나라는 고급개발자가 없는거야"라고 단정짓기도 하실겁니다.
    제가 생각하기에는 조금씩 양보하고 이해하는 마음이 필요할것 같습니다. 프로그래머로 코딩만 고집하시는 분들은 소프트웨어 개발의 전체공정을 보고 다양한 분야를 이해해야 할것이고 오너, PM 품질관리 등 다른 분야계신분들은 프로그래머의 노력과 깊은 지식을 이해해야 할것입니다.
    코딩은 악기를 다루는 것과 같아서 매일 하지 않으면 손이 굳어버립니다. 읽기는 해도 쓰기가 안되는경우가 종종 있으니깐요.. 서로 인정해줘야 하지 않을까 합니다.

    답글삭제