2012년 1월 8일 일요일

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다.
정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다.

그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다.

원래는 이렇게 개발자가 다해야 하는 상황은 One Man Company에서나 벌어지는 상황이어야 한다.
하지만 작은 벤처 기업이나 거대한 대기업이나 개발자가 수십명이나 또는 수백명 있어도 One Man Company에서 벌어지는 상황과 별반 다르지 않다.

그럼 왜 개발자는 개발에만 집중해야 하는가?
소프트웨어 개발이라는 것이 다른 일도 해가면서 적당히 해 나간다고 해서 잘할 수 있는 분야가 아니다. 개발만 10년, 20년을 집중해야 잘할 수 있는 분야다.
개발 외에 다른 일도 다 하면서 개발도 잘한다고? 그러면 정말 천재이거나, 자기 자신을 과대평가하거나, 지금은 그럭저럭 잘하기는 하지만 개발에 집중했으면 더 잘했을 경우 일 것이다. 

그럼 어떠한 일들이 개발자들이 개발에 집중하지 못하게 하는가?

첫째, 마케팅의 부재다.
우리나라에서는 대부분 제품 비전만 툭 던져 놓고 나머지는 다 개발자가 알아서 해야 한다.
개발할 제품이 딱 정해지면 Architecture 연구하고 Technology 공부하기 바쁜 개발자가, 고객 인터뷰도 해야 하고 경쟁회사 동향도 파악해야 하고, 회사에서 서로 다른 얘기하고 있는 사람들 다시 만나서 제품의 비전부터 다시 정해야 한다.
또, 마케팅은 온갖 요구사항 다 합쳐 놓은 Kitchen sink를 가져다주고 기획이라고 하는 경우가 많다. 결국 개발에 실패를 하기도 하고 개발을 했어도 가치가 없는 제품을 만들게 된다. 결국 고생은 개발자가 다하고 욕도 개발자가 다 먹는다.

둘째, 다음은 Technical support의 부재이다.

개발자가 가장 잘 안다는 이유로 개발자가 기술지원을 해야 한다.
가끔은 고객 사이트에서의 장애에 대한 사과를 하러 개발자가 직접 방문을 해야 한다. 이유는 고객이 화가 나서 개발자가 직접와서 사과를 하지 않으면 안된다고 영업이 주장하기 때문이다. 밖에서 발생한 모든 문제의 책임을 직접 개발자 돌리는 것이다. 코미디가 아닐 수 없다. 
영업은 이런 제스처를 취함으로써 모든 책임을 개발자에게 돌리는데 성공을 했다. 정상적인 영업이라면 이런 터무니 없는 요구는 애초에 막았어야 하는 것이다.
설령 개발자가 1차적인 책임이 있다고 하더라도 이런 일로 개발자가 사과를 한다는 것은 회사에게 훨씬 더 큰 손해를 끼치게 된다. 
이렇게 밖으로 내둘리는 개발자는 개발 실력보다는 남 비위 맞추는 실력이나 늘고, 소프트웨어 개발에 염증을 느끼게 된다.

셋째,  QA의 부재 또는 부족이다.
 
QA담당자가 없는 경우가 많고 제대로 된 기획, 스펙 없이 개발을 하다보니 제품의 기능을 개발자밖에 몰라서 개발자가 테스트를 하는 경우가 많다. 심지어는 팀장, 기획자 등 여러 관련자들이 다 테스트에 동참하는 경우가 있다. 이는 전문성을 무시하는 것이고 아주 작은 회사에서나 있을법한 일이다.
개발자는 개발하기도 바쁘고 할 일도 많다. 또한 마케팅, 기술지원, QA는 잘 하지도 못한다.
개발자는 개발에 집중해야 밥값을 하는 것이다. 다른 일을 하느라고 개발할 시간이 부족하다면 …

이럴 때 개발자는 경영자에게 꾸준히 주지 시켜야 한다. 대부분의 경영자는 소프트웨어에 대한 이해도가 낮아서 개발자가 왜 개발에 집중해야 하고 조직이 전문화 되어야 하는지 잘 모른다. 그러기 때문에 경영자가 알 수 있도록 설득해야 한다.
CTO가 있다면 이런 일은 벌어지지 않고 이런 일이 벌어진다고 해도 CTO가 다른 경영자를 설득하여 이를 해결해 줄 것이다.
그래서 개발자는 좋은 환경을 찾아가야 한다는 것이다. 연봉을 약간 많이 주더라도 제대로 일하고 성장할 수 없는 환경이라면 개발자에게 그리 좋은 직장은 아니다.   

즐겁게 개발하면서 개발자로 크게 성장하고 개발자로서 가치를 높이고 개발자로 은퇴하고 싶다면 개발자가 일할만한 직장에서 일해야 한다. 

우리나라에서는 이러한 회사를 찾는 것이 쉬운 일이 아니다. 물론 나의 미션 중의 하나가 좋은 소프트웨어를 만드는 것이고, 개발자가 일할만한 소프트웨어 회사가 점점 늘어날 것을 기대한다.

댓글 11개:

  1. 개발 입장에서는 영업은 할줄도 모르는게 어디서 주워들은것만 많아서 입만 놀린다고 무시할수밖에 없고
    영업으로는 주워들은건 많아서 눈만 높아지고, 자기가 죄송하다고 하기에는 자기가 만든게 아니니 개발에게 떠넘기고.. 그게 가장 근본적인 문제가 아닐까 싶어요.

    답글삭제
  2. 구차니님 오랫만입니다.

    이 모든 것을 한마디로 얘기하면 전문성 부족입니다. 어떻게 보면 개발자도 포함해서 말입니다. ^^

    답글삭제
  3. 좋은 글... 매번 잘 읽고 있습니다.
    공감...

    답글삭제
  4. 이제 막 개발계에 입문한 풋내기 신입니다.
    경력자 로써의 개발실력을 쌓기전에 뭔가 올바른 개념을 잡아가면서
    공부할수 있게 되는것같아 좋은글들 써주셔서 감사하게 생각합니다.

    아무리 시간없어도 하루에 한번씩 1개의포스팅을 읽을 예정입니다.
    앞으로도 잘 부탁드리겠습니다^^ 감사합니다.

    답글삭제
  5. 안녕하세요. UYEONG님

    읽는 속도에 따라잡히지 않으려면 저도 하루에 하나씩 포스트를 해야 하는 것 아닌지 모르겠습니다. ^^

    답글삭제
  6. 공감 지수 100 입니다.

    답글삭제
  7. 잘읽었습니다. 제품을 기획하고, 경쟁사 제품들을 리서치하여 공유하고...프로토타이핑 하여 내부 시연하고, 설계하고...개발(코딩)하고.. 통합테스트 여러번을 거치고.. 고객에게 데모 준비하려 밤새고.. 직접 데모하고.. PoC, BMT있으면 준비하며 밤새고..직접 수행하고..제안서 작성 도와야 되고...제품 팔리면 고객사에 볼모로 잡혀가고...욕먹고...버그리포팅 직접 등록하고 직접 해결 및 close처리하고...프로젝트 오픈에 맞춰서 같이 밤새주고..시간날때 코딩하고..

    이런 생활 5년 넘었습니다. ㅎㅎㅎ

    답글삭제
  8. 숙취님 안녕하세요.

    이제 정체성을 찾아야 할 때네요. ^^ 선택과 집중을 해야 합니다.

    답글삭제
  9. 안녕하세요, 어제에 이어 오늘도 들렸습니다.

    개발자가 성장할 수 있는 환경에서 근무해야 한다는 말에 공감 100%입니다.

    만일 성장이 어렵더라도 그런 환경으로 만들수 있다면 이것도 괜찮을 겁니다.

    좀 해보고자 하는 의욕이 생기네요.
    어떻게 반응하실지 심히 걱정이 되기도 하지만요.
    개발자가 이렇게 자기 앞날을 개척하기란 중소기업엥서는 쉽지가 않네요.
    딸린 식구들이 있으니 오히려 더 힘이 나고 부딪혀야 겠다는 생각이 강하게 듭니다.

    수고하세요.

    답글삭제
  10. 안녕하세요. 바람마당님

    개발자 주도의 변화와 개혁은 반대에 많이 부딪히게 되고 반대를 누를만한 힘이 없기 때문에 쉽게 실패하곤 합니다. - -;
    그래서 저와 같은 전문가들이 있죠. ^^

    그래도 꼭 필요하고 쉬운 것부터 하나씩 만들어가는 것은 좋은 방법입니다.

    회사를 분석해봐야 어떤 것부터 바꿔야 하는지 정확하게 알 수 있지만 직원들이 거부감이 적은 것부터 하나씩 적용해보세요.

    제가 쓴 책(소프트웨어 개발의 모든 것)에는 어떤 것부터 바꿔나가야 하는지에 대한 가이드가 있으니 참고를 하시고, 우선 소스코드관리, 버그관리시스템을 제대로 쓰는 것부터 적용하시는 것이 좋을 것 같습니다. 만약에 쓰고 있다면 제대로 쓰는 방법을 익히셔야 합니다. ^^

    그리고, Daily build, Build 자동화 등등 할일은 많지만 차근차근 해보세요.

    진행 과정에서 어려운 것이 나오면 블로그나 Email을 통해서 문의를 하시면 해결해드리도록 하겠습니다.

    답글삭제