2008년 12월 22일 월요일

개발자 5적

소프트웨어 회사의 가장 중요한 자산은 개발자입니다.
개발자는 회사를 흥하게도 하지만 망하게도 합니다.
안타깝게도 우리 주변에는 좋은 개발자보다 나쁜 개발자가 더 많습니다.
초년병 때는 대부분은 좋은 개발자이거나 좋은 개발자가 되려고 합니다.
하지만 시간이 흐를수록 주변의 환경 때문이던 본인 때문이던 나쁜 개발자가 더 많아집니다.
내가 생각하는 가장 나쁜 개발자는 다음과 같습니다.

  • 자신의 지식을 남에게 공유하지 않는 개발자
  • 다른 개발자를 도와주지 않는 개발자
  • 개발보다 정치에 관심이 많은 개발자
  • 자기 개발을 위해서 노력하지 않는 개발자
  • 경영자, 관리자, 동료와 자신을 속이는 개발자

안타깝게도 이러한 개발자는 쉽게 구분하기 어렵거나 회사가 이러한 개발자에 완전히 종속되어서 어쩔 수 없는 경우가 대부분입니다. 아무리 그렇다고 하여도 이러한 개발자가 회사를 이끌어가고 있다면 회사의 미래는 이미 정해진 것이나 다름이 없습니다.

소프트웨어 회사는 개발자들이 정보를 공유하지 않고는 정상적으로 동작하지 않습니다. 그리고 개발자들은 위로 올라갈수록 자신의 일보다는 동료의 일, 타 부서의 일에 관여를 하며 도와야 합니다. 하지만 공유 문화가 정착되지 않은 회사에서는 정보의 단절 악순환이 계속됩니다. 이러한 현상은 회사의 경쟁력을 약화시키고 개발자의 성장을 저해하며, 특정 개발자에 대한 의존도는 점점 커지게 됩니다. 따라서 실력은 부족하지만 회사에서 영향력만 커진 개발자들은 자신의 위치를 지키기 위해서 경영자와 동료를 속이며 정치에 매달리는 경우가 흔합니다. 그리고 자신이 모르는 것을 아는 척하며 심지어는 안다고 착각하기도 합니다.

이러한 문제는 착한 개발자를 뽑는다고 해결되는 것은 아닙니다.
소프트웨어 회사는 사람에 의해서만 돌아가게 되면 이러한 문제가 발생합니다. 최소한의 조직, 시스템, 프로세스를 갖추고 좋은 개발 문화를 장려하며 넓고, 장기적인 안목으로 개발팀을 가꿔나가야 합니다.  CTO가 이러한 것들을 리드하는 역할을 할 수 있습니다. 소프트웨어 회사에는 CTO가 꼭 필요한 이유입니다.

자신 스스로가 나쁜 개발자가 되어가고 있다면 한번 되돌아 봐야 합니다. 혼자서 이 굴레를 벗어날 수는 없습니다. 동료들이 같이 움직여야 하고, 회사가 도와줘야 가능한 일입니다. 필요하다면 제가 도움이 되어 드리겠습니다.

댓글 10개:

  1. 안녕하세요. 지나가다 들른 사람입니다.
    다름이 아니라 님께서 올리신 글은 개발자에 한정된 글은 아닌 것 같습니다. 굳이 개발자가 아니라 "요리사", "전문가", 심지어 "직장인" 으로 단어만 바꾸면 모두 적용되는 얘기인 것 같습니다.
    글의 내용애 공감은 가지만, 뭔가 너무 일반적인 이야기가 개발자라는 잣대에 맞추어지는 것 같습니다. 어찌보면 개발자가 동네북도 아닌데 말이지요.
    (초면에 실례가 될듯한 리플 죄송합니다만, 너무 개발자에 대한 일반화가 되어있는것 같아서요. 그럼 건필하십시오.)

    답글삭제
  2. 안녕하세요~ 레이님 :-)

    좋은 지적 담긴 글 잘 보았습니다~

    우리나라 개발현실속에 가두어져 있어서 동화되어 가면서 저런 개발자들이 생긴다고 생각합니다.

    점 명확한 비전을 보여주는 개발 현실이라면, 굳이 정치적인 개발자가 될 필요가 없을 텐데요.. ㅡ_ㅡ;;

    그럼 행복한 크리스마스 보내시구요~ 2009년에도 좋은글 기대하겠습니당~ ;-)

    답글삭제
  3. 다른건 몰라도 정보 공유를 하지 않는 개발자는 확실히 팀에 해를 끼치더군요.
    혼자 개발하고, 자기 소스 남이 보는거 싫어 하는 개발자랑 일 해 본적이 있는데요.
    완전 최악이였습니다.

    답글삭제
  4. 애들아빠님 안녕하세요.
    소프트웨어 개발 블로그라서 개발자에 대해서 촛점을 맞추었습니다. 다른 분야는 잘 모르고요. 그리고 실제 생각하고 있는 내용보다는 좀 순화를 시켜서 적은 것입니다. 문제보다도 해답을 찾는 것이 더 중요하겠죠. 댓글 남겨주셔서 감사합니다.

    답글삭제
  5. 장성진님 안녕하세요.
    이러한 것은 개발자에게만 맞겨둘 수 없는 일이죠. 회사가 제대로 갖추고 있어야 개발자가 그 틀에서 제 역할을 하게 됩니다. 그래서 제 일이 회사를 바꾸는 일이죠.

    답글삭제
  6. 묘재님 안녕하세요.
    소프트웨어 개발에 가장 필요한 것은 "공유"입니다. 대부분의 문제가 "공유"가 안되어서 발생합니다. "공유"를 개발자 혼자에게 맡겨두면 안되고 회사에서 시스템적으로 공유를 하도록 해야 합니다.

    답글삭제
  7. 완전 공감하는 글입니다.. ㅠㅠ
    요즘 그렇잖아도 골치아픈 사람이 하나 회사에 있거든요.. ㅠㅠ

    답글삭제
  8. kkommy님 안녕하세요.
    골치아픈 사람을 어떻게 해야 하는지 의견을 드리지요.
    그런 사람이 바뀔 가능성은 거의 없습니다. 따라서 그런 성향에 알맞고, 문제가 안생기는 일을 시키거나 그런 일이 없거나, 감당이 안되면 그만두게 하는 것이 좋죠.
    하지만 회사가 그사람에게 의존도가 높다면 그만두게 할 수 없습니다. 회사가 사람에 대한 의존도를 점점 낮춰가는 수 밖에 없습니다.
    여기서 중요한 것은 사람은 바뀌지 않는다는 거죠. ^^
    인력 관리의 중요한 진실입니다. :)

    답글삭제
  9. 개발자 뿐만 아니라 어떤 직종에서 일하든 저런 성향을 가진 사람들은 나쁜 직원이 될 수밖에 없을 듯합니다. 좋은 글 잘 보고 갑니다.

    답글삭제
  10. 호랭이님 안녕하세요.
    다른 분야도 마차가지겠지만, 특히나 소프트웨어는 협력이 필수적이고, 협력하기가 유난히 더 어려운 것 같습니다.

    답글삭제