개발&Development/개발방법론

가장 취약한 코더가 시스템의 가장 취약한 코드를 만든다

겐도 2005. 11. 2. 16:18
보안에서는 시스템의 가장 취약한 부분이 시스템 전체의 보안성을 결정한다라고 하는데 이와 비슷한 현상이 코딩에도 일어나는 것 같다. 지아무리 아키텍쳐가 잘하고 PM, PL, 그리고 각 파트의 장들이 잘 해낸다 하더라고 실제의 말단 코드를 작성하는 코더에게 문제가 있다면 그 시스템은 결국 무너져 내린다.

이런 부분을 보완하기 위해서 테스팅이라던가 코드 리뷰등의 방법을 동원하지만 너무나 뛰어난 서포트 시스템에 의해 오히려 초보 코더의 실수는 숨겨져 버릴 가능성이 높아진다. Bug에 대해 소위 빈도와 중요도에 따라 분류하고 적절히 대처한다 하더라도 고객의 클레임에 날밤 까는건 결국 일주일이나 한달에 한번 발생하는 시덥잖은 오동작일 것이고 찾아보면 말단 코더의 오타일 경우가 많다는 것이 문제이다.

그럼 1년차 신입 코더는 절대로 코드를 짜지 말라는 것인가? 이 글을 쓰게 된 것은 다른 이유이다. 말단 코더에게도 신경을 써야 한다라는 점이다. 대부분의 회사에서.. 아니 대부분의 경우(다른 분야까지) 소위 잘나가는 스타를 머리에 앉혀두기만을 바란다. 잘하는 PM을 선임하면 고객과 술을 잘 마실지는 모른다. 하지만 그것이 좋은 결과물을 보장하지 않으며 반대로 좋은 결과물을 위해선 머리부터 발톱의 때까지 신경을 써야 한다는 것이다.

아무리 잘나가는 회사도 말단 코더까지 경력 10년 이상의 베테랑으로 구성하기는 힘들다. 돈이 문제가 아니라 어느정도 수준이 되면 사람들은 말단 코더라는 직책은 기피하기 때문이다. 어떠한 이유가 되었든 말단 코더는 1~3년차 정도의 실수 투성이의 개발자가 맡게 되며 또한 변두리 묘듈만을 받으며 사람들의 관심도도 적어서 그들이 만들어내는 작업물에 대해 리뷰도 떨어진다.

말단 개발자를 소중히 해야 하는 이유는 여러가지가 있겠지만 우선 그들이 앞으로 제대로 성장하게 되면 과거의 히스토리를 잘 알고 프로젝트에 대한 이해도도 높으며 뿐만 아니라 회사에 대한 애정도 있는 중간 관리자 혹은 높은 관리자까지 될 것이다. 그리고 그 이전에 말단 코더들이 얼마나 안정된 산출물을 만드느냐도 윗대가리 못지 않게 중요할 것이다.

하지만 대부분의 경우 말단 코더는 소모품이다. 회사의 구조조정이 일어나면 정리대상 1순위는 말단 코더들이다. 회사내에서 힘도 없고 문제를 자주 일으켜 왔고 잘 못하기 때문이다. (잘하면 당연히 위에 있지 왜 말단에 있겠는가!) 필요에 의해 쉽게 정리해 버렸다가 다시 또 어디선가 충원해 오곤 하면서 말단의 품질은 여전히 말단으로 유지된다. MS정도의 자금력-필요하다면 원하는 개발자가 있는 회사를 사버릴 정도의-이 없다면 개발팀을 어느 수준 이상의 사람들로만 유지하기도 힘들다. 그렇다면 말단을 소중히 여겨야 한다.


최근에 팀원들이 짜놓은 코드를 보고 한바탕 할려다가... 당연히 그들은 잘 못할 수도 있고 오히려 기회는 있었음에도 대외업무가 많다는 이유로 그들을 소중히 여기지 못한 나 스스로의 잘못을 느끼게 되었다. 인생의 선배는 그들일지 모르겠지만 코더의 선배로서 그들에게 많은 것들을 가르쳐 주었어야 하는데 너무나 외로운 곳에 버려 둔 것은 아닌지... 팀장으로서 잘나가는 팀원들과 일하고 싶어하지만 팀원들을 그렇게 만들어 내는 것은 팀장인것을..