난 어이해 개발 직종에서 STE(Software Test Engineer)로...(2)

물론 테스터도 필요하다는 단순한 생각만으로 제 커리어를 변경했다고 한다면 거짓말이겠죠. 말그대로 <10%입니다. 사실 제가 원한 것은 커리어의 변경보다는 언제부턴가 낮아지기 시작한 개발 자체에 대한 흥미와 그로인한 심리적인 공황의 해소였습니다. 사실은 꼭 직업을 바꾸거나 직장 자체를 바꾸지 않고도 가능한 일이기도 했겠죠. 개발일을 하다가 흥미가 떨어진 것은 아마도 이성을 사귀면서 갖는 권태기 비슷한 것이었을 것 같습니다. 어떤 분은 권태기가 2~3년 혹은 몇달(?)만에 찾아올 수도 있을 것이고, 반대로 권태기가 없는 행복하신 분이 계실 수도 있겠습니다만, 저는 이 애매한 시점에 찾아왔습니다. 남녀관계에 있어서 권태기라고해서 무작정 헤어지는 것은 (미묘한 이야기지만) 그다지 좋은 해결책은 아닐 것입니다. 조금 더 상대를 새롭게 볼 수 있는 계기가 있다면, 다른 관점으로 상대방을 생각할 수 있다면 다시 이전처럼 확~...아무튼 이런 이슈로 인해서 뭐든 조금 더 깊이 생각해 볼 필요가 있다고 판단했습니다.

2.

소프트웨어를 개발한다는 것이 꼭 코딩을 한다는 의미는 당연히 아닐것입니다. 단지 문제는 개발자로서 소프트웨어를 개발하는 관점이 그로 인해 굉장히 좁을 수 있다는 사실일 것이라고 생각합니다. 꼭 그런 것만은 아닙니다만 개발과는 관련이 없을듯한 다른 엉뚱한 것을 하다가(경험하다가) 개발을 하는 분들의 관점이 꽤 다른 경우를 보게됩니다. 코딩을 그다지 훌륭하게 하지는 못하더라도 설명도 잘하고 이해도도 높기도 합니다. 어떨 때는 그것을 보고 코딩을 그다지 잘하지 못하기 때문에 "진정한" 개발자가 아니라고 하는 경우도 봅니다. 오히려 더 좋은 평가를 받았으면 받았지 덜하지는 않을 것입니다. 제가 생각하는 편협한 개발자상이 바로 이렇지 못한 경우입니다. 하도 코딩만 하다보니까 코딩을 위해서 개발을 하는 경우 말이죠.

"개발자는 코드로 말한다"는 말은 너무나도 위험한 말이라고 생각합니다. 코드로 말할 수 있을 만큼 코드라는 것 자체의 기술적인 수준이 아직 덜 성숙했습니다(어쩌면 이 말 자체가 어패가 있을 수 있겠습니다). 개발자들을 만나면 툭하면 듣는 말이 전임자가 만든 코드가 너무 X판이라서 고생중이라거나, 남이 짜놓은 것을 이해하느니 다시 짜겠다거나 하는 이야기입니다. 이렇게 많은 전임자들을 모아 놓으면 아마도 개발자의 절반 이상이 아닐까요? 그러면, X판인 코드와 다시 짜야하는 코드로 소통을 하는 개발자가 얼마나 된다는 것일까요? 누군가 어떤 질문을 하면 "코드를 보라구!"라고 이야기할 수 있을 만큼 모든 코드를 자신있게 짜는 개발자는 얼마나 될까요? (아, 물론 코드의 코멘트로는 말할 수 있겠죠.^^)

워드 커닝험은 아키텍트라는 직업은 필요없다는 이야기를 항상 역설합니다. 개발자들 모두가 아키텍트의 마인드를 가져야 되고 이 때문에 아키텍트가 따로 필요없다는 뜻의 이야기라고 합니다. 그런데 개개인이 그 정도 수준의 마인드를 가지게 되기 위해서는 무슨 능력을 필요로 하는 것일까요? 코딩 이외에...그림(다이어그램) 그리는 능력? 문서 잘쓰는 능력? 저는 제가 위에 제시한 편협한 코더로서 어떤 능력이 가장 부족한 것일까를 고민해봤습니다. 이전이라면 이런 이야기를 했을지도 모르겠습니다. "나무가 아니라 숲을 보는 능력." 하지만, 사실은 보통 개발자들이 나무만을 보기 때문에 문제가 되는 것이 아니라는 것을 깨달은지는 오래되었죠. 3년정도(?)면 숲을 보기에는 충분합니다. 자신은 아닌 것 같다고 생각하도라도 자신의 평가를 다른분들께 물어보세요.

나무도 보고 숲도 보면 다 끝난것 아니냐고 반문하실지 모르겠습니다만, 제가 생각할때는 더 중요한 것이 있습니다. 숲을 볼 줄 아는 것이 아키텍트 아니냐는 것은 아키텍트라는 말 자체의 함정이라고 생각합니다. 이야기했듯이 그것이 아키텍트라면 벌써 세상은 아키텍트 자질을 이미 가진 개발자가 많은 다수일 것이고 정말 워드 커닝험이 이야기하는 세상이 왔겠죠. 제가 생각하는 아키텍트의 자질 중에서 제일 큰 것이 이 숲과 나무의 괴리를 제대로 파악하고 이를 매칭해줄 수 있는 능력입니다. (사실은 자질이라는 것을 말로 표현할 수 있는 것이냐는 자체가 의심스럽지만요;;)

QA를 거쳐서 개발을 하는 커리어 패스가 좋다는 이야기를 어떤 블로그에선가 들었습니다. 저는 막연히 QA라는 것이 숲을 볼 수 있는 직업이라고 생각했더랬습니다. 하지만, 여기(Microsoft)에서의 QA는 (하기 나름이겠지만) 고배율 망원렌즈를 가지고 이곳저곳을 줌인/아웃을 마음대로 할 수 있는 위치의 역할이라고 표현하는 것이 더 정확하다는 생각을 합니다. 내가 정말 개발자 패스의 커리어를 가지기 위해서 득이 되었으면 득이 되었지, 모든 면에서 해가 될 만한 요소는 그다지 많지 않다는 생각을 했습니다. 뭐, 사실 이 정도라면 개발자 패스에서 약간 엇나가도 되지 않을까하는 생각도 포함해서 말이죠.

이전 글에 비하면 (횡설수설이 더 늘어났지만서도) 설득력이 더 생기지 않았나요? 적어도 자신의 중요한 방향을 결정해야하는 저는 그렇게 생각했습니다. 판단 기준을 잡이 아니라 저를 중심으로 바꾼거니까요.