소프트웨어 회사의 가장 중요한 자산은 개발자입니다.
개발자는 회사를 흥하게도 하지만 망하게도 합니다.
안타깝게도 우리 주변에는 좋은 개발자보다 나쁜 개발자가 더 많습니다.
초년병 때는 대부분은 좋은 개발자이거나 좋은 개발자가 되려고 합니다.
하지만 시간이 흐를수록 주변의 환경 때문이던 본인 때문이던 나쁜 개발자가 더 많아집니다.
내가 생각하는 가장 나쁜 개발자는 다음과 같습니다.
- 자신의 지식을 남에게 공유하지 않는 개발자
- 다른 개발자를 도와주지 않는 개발자
- 개발보다 정치에 관심이 많은 개발자
- 자기 개발을 위해서 노력하지 않는 개발자
- 경영자, 관리자, 동료와 자신을 속이는 개발자
안타깝게도 이러한 개발자는 쉽게 구분하기 어렵거나 회사가 이러한 개발자에 완전히 종속되어서 어쩔 수 없는 경우가 대부분입니다. 아무리 그렇다고 하여도 이러한 개발자가 회사를 이끌어가고 있다면 회사의 미래는 이미 정해진 것이나 다름이 없습니다.
소프트웨어 회사는 개발자들이 정보를 공유하지 않고는 정상적으로 동작하지 않습니다. 그리고 개발자들은 위로 올라갈수록 자신의 일보다는 동료의 일, 타 부서의 일에 관여를 하며 도와야 합니다. 하지만 공유 문화가 정착되지 않은 회사에서는 정보의 단절 악순환이 계속됩니다. 이러한 현상은 회사의 경쟁력을 약화시키고 개발자의 성장을 저해하며, 특정 개발자에 대한 의존도는 점점 커지게 됩니다. 따라서 실력은 부족하지만 회사에서 영향력만 커진 개발자들은 자신의 위치를 지키기 위해서 경영자와 동료를 속이며 정치에 매달리는 경우가 흔합니다. 그리고 자신이 모르는 것을 아는 척하며 심지어는 안다고 착각하기도 합니다.
이러한 문제는 착한 개발자를 뽑는다고 해결되는 것은 아닙니다.
소프트웨어 회사는 사람에 의해서만 돌아가게 되면 이러한 문제가 발생합니다. 최소한의 조직, 시스템, 프로세스를 갖추고 좋은 개발 문화를 장려하며 넓고, 장기적인 안목으로 개발팀을 가꿔나가야 합니다. CTO가 이러한 것들을 리드하는 역할을 할 수 있습니다. 소프트웨어 회사에는 CTO가 꼭 필요한 이유입니다.
자신 스스로가 나쁜 개발자가 되어가고 있다면 한번 되돌아 봐야 합니다. 혼자서 이 굴레를 벗어날 수는 없습니다. 동료들이 같이 움직여야 하고, 회사가 도와줘야 가능한 일입니다. 필요하다면 제가 도움이 되어 드리겠습니다.