양심 없고, 간절함도 없는 사람들...
적당하게 하고 많은 것을 원하는 사람들이 있다.
대부분의 사람들은 알고 있다. 회사에서 5% 정도의 사람들만 치열하게 일을 하고 있지, 대부분의 사람들은 그들을 따라서 움직이는 사람들일 뿐이다. 그리고, 대부분의 사람들은 '월급도둑'에 가까운 사람들이 20% 이상이나 된다.
이것은 어느 조직이나 똑같다. 개발자가 아니라고 해도 아마 대부분 비슷한 수치일 것이다.
대기업이건 스타트업이건 비슷한 수치를 가지고 있다.
재미있는 것은 이런 월급도둑들의 특징은 자신의 업이나 롤에서는 열정도 없으면서도, 자신에게 기회가 주어지지 않는다고 투덜 되고, 회사 탓이나 조직 탓, 상사의 문제로 치부하는 경우가 대부분이다. 그리고, 그렇게 이야기하는 사람들은 주변 사람들을 물들게 하고, 조직을 멍들게 한다.
더군다나 실력도 없으면서 자신에게 주어지는 업무의 수준이나 기준점에 대해서 불평을 가지고 있다.
그리고, 재미있는 것은 자신들은 '월급도둑'이 아니라고들 대부분 생각한다.
사회구조나 조직구조에 대한 탓을 하고, 자신들은 최선을 다해서 일을 하는데, 기회가 부여되지 않는다고 푸념만 늘어놓는다. 이것이 그들의 특징이다.
사회를 바꾸기 위해서 나서는 5%의 사람들이 있듯이, 조직이나 개발을 위해서 나서는 5%의 사람들이 있다. 어떻게든 의미 있는 서비스로 변화하기 위해서 뒷감당을 하거나, 필요한 서비스들을 각자 만드는 사람들이 있기 때문에 서비스는 동작하고 조직은 동작한다.
분명, 개발은 즐거운 일이다. 그리고, 너무 재미있다.
사용자들에게 의미 있고, 같이 일하는 동료들과 호흡하는 것이 재미있다. 하지만, 그것이 '노는 것'으로만 움직이면 문제가 된다.
자신이 생각하기에 옳은 방향이고, 맞는 방향이라고 생각한다면, 그 누구와도 독기 있게 논쟁을 펴야 한다. 하지만, 중요한 구조 결정이나 의사결정에서 '나는 잘 모르겠다'는 심정으로 빠져있다가, 나중에 딴소리를 하거나, 동료나 상사가 내 말을 안 들어주었다고 푸념을 늘어놓는 행위를 늘어놓는 사람들은 '독기'나 '의지'가 없는 사람이라고 생각한다.
특히, 기업에 속한 개발자들은 그들에게 주어지는 월급과 시간, 의사결정의 중요 과정과 판단들에 의해서 하나의 동료처럼 움직여야 한다.
가령, 상사나 회사의 중요 비즈니스 결정이 틀렸다고 생각한다면. 초기부터 의지 있게 그 결정이 틀렸다고 당당하게 이야기하고, 그 결정이 왜 틀렸는지에 대해서 이야기를 해야 한다.
자신이 알고 있는 작은 지식과 경험, 자신이 만들어 놓은 작은 생각과 판단을 근거로 큰 그림을 보지도 못하고, 자신의 관점에서만 푸념을 계속 늘어놓으면서 동료들과 이간질을 시킨다거나, 서비스의 진행의 걸림돌로써 자꾸 걸리적 거린다는 것은 매우 불행한 일이다.
대부분의 서비스 계획이나 개발은 빠른 속도로 진행되고, 중요한 의사결정 때문에 계획 이상의 일을 해야 하는 동료가 있다면, 그 동료를 위해서 자신의 생각을 열어두어야 하지만, 이미 몇 개월 전의 의사결정 과정의 의문점을 자신만 해소하지 못한 체 과거의 쓰레기 코드에서 닫아버린 마음의 문을 열지 못한다는 것은 정말.. 매우 불행한 현상이다.
서비스 개발은 인생을 걸 정도로 중요한 일이 아닐지도 모른다.
하지만, 그 서비스 개발을 위해서 인생을 걸고, 돈을 투자하고, 비즈니스 기회를 던지고 있으며, 중요한 의사결정 과정에서 갈등하다가 과거와 단절하고, 비즈니스를 동작시키기 위해서 고전 분투하는 동료들이 있다.
이런 경우 그들에게 '반대'되는 발언을 계속한다는 것은 정말 슬픈 행위이며, 필자가 가장 싫어하는 개발자의 유형이다.
자신이 열정이 없다면...
열정에 넘치는 동료들을 응원하고, 필요한 중요 의사결정이라면 격렬하게 의사소통하고, 이미 결정된 사안이라면 말없이 따라야 한다. 대부분의 서비스들은 공동작업이고, 그 공동작업을 같이하고 있는 동료의 한 사람이라도 서비스에 대한 애정이 떨어지게 되면 전체 서비스는 그 속도감을 잊게 된다.
열정은 없지만, 동료를 좋아하고 같이하고 싶다면, 열정이 되살아 나기 전까지 그 열정적인 동료를 응원해야 한다.
정말 필요한 시기의 의사결정 과정에서 의사발언을 하지 않았거나, 수긍하였다면 동료들을 위해서 같이 뛰어야 한다. 지금 과거의 것을 이야기해봐야 어찌할 것인가? 모든 동료들은 그다음 것으로 달려가고 있는데.
개발자의 커뮤니케이션은 누가 당신에게 다가오는 것이 아니다. 당신이 그에게 다가가는 것이고, 그것이 힘들다면 그들이 이야기한 것을 따르는 것이다.
미래의 문제를 해결하기 위해서 움직이는 자세를 더 많이 가져야지,
과거의 문제에 자신이 참여하지도 않고, 불평불만을 늘어놓는 사람을 경계하자.
그들 대부분은 열정도 없고, 열정적으로 일하지도 않으며, 서비스에 대한 애정도 없는 사람들이 대부분이다.
마지막으로 그들의 유형을 정리하자면, 비개발자들이 보기에는 참 열정적으로 일하는 것처럼 보이기도 한다. 자신들이 흥미를 느낄만한 부분을 하고 있다거나, 서비스의 품질보다는 무언가를 실험적으로 계속 만들고 있으며, 가치를 증대하기보다는, 부정확한 서비스를 반복적으로 자신들의 관점에서 '일'을 한다고 착각하는 경우이며, 비개발자들이 보기에는 정말 일을 잘하는 것처럼 보이는 경우일 때이다.
하지만, 선배나 전문가가 보기에는 '놀고 있는 일'이거나, '바퀴의 재발명'이거나, '비즈니스에 대한 이해 없는 행위'이거나 '책임감 없는 코드'인 경우가 많다.
나는 그렇게 일하는 개발자를 좋아하지 않는다. 그들이 만든 코드들 대부분은 쓰레기이고, 그 쓰레기를 다루기 위해서는 쓰레기 더미 속으로 들어가 난잡하게 일을 해야 하는 경우이기 때문이다. 그리고, 그 서비스들은 불안하고, 컨트롤이 안되고, 의미 파악도 안 되는 형태이다.
내가 싫어하는 개발자들은 그런 쓰레기 속에서 코딩하기를 좋아한다. 문제를 해결하기보다는 그 문제를 남겨둔 상태에서 '일하는 척'하는 상황을 반복하고 있기 때문이다. 나는, 그런 개발자들이 싫다.
가장 좋은 개발자는 만들어 놓은 코드가 정해진 요구사항동안은 유지보수나 코드에 손을 대지 않는 경우이다. 대부분은 정해진 요구사항에 맞추어서 동작을 잘한다. 작은 기능이든 큰 기능이든...