2012년 7월 30일 월요일

허울뿐인 소프트웨어 개발자 경력 보장

과거 필자가 근무했던 회사에서는 “백발을 휘날리며 개발을 할 수 있는 개발자”를 공개 채용한 적이 있다. 그 당시 수많은 경력직 개발자들이 지원을 했고 개발자로서 경력을 보장받고자 하는 열망을 충분히 알 수 있었다. 필자의 회사는 Technical career path를 확실하게 보장을 하고 있었다. 따라서 관리를 하지 않고 개발자로서 꾸준히 성장할 수 있고 그렇게 성장할 수 있도록 기업 문화와 제도가 뒷받침이 되어 있었다. 또한 대우도 관리자에 절대 뒤지지 않았다.

하지만 필자가 컨설팅을 시작한 이후 접한 수많은 회사들 중에서 제대로 개발자 경력을 보장해주는 곳은 없었다. 가장 큰 이유는 경영자의 이해 부족을 꼽을 수 있다. 개발자 경력 보장에 대한 각 기업들의 현황을 먼저 살펴보면 해결책도 보일 것이다.

우선 대기업 쪽을 살펴보자.

성공한 국내 유수의 대기업들은 HR에 대해서 많은 투자가 이루어지고 있다. 따라서 Career path에 대한 명확한 정책이 존재한다. 하지만 그 속을 들여다보면 문제가 매우 많다.

문제 사례 중 가장 흔한 것이 가장 뛰어난 고참 개발자가 관리자가 될 수 밖에 없는 상황이다. 그냥 오래 개발하다 보면 팀장, 부서장, 본부장이 되어서 조직을 관리하게 되는 것이다.

몇몇 기업은 개발자들이 관리에서 벗어나 꾸준히 개발자로 일할 수 있도록 하고 있지만, 이 또한 문제가 많다. 우선 회사에서 그렇게 개발자로서 성장하여 최고 개발자 위치까지 이른 사례를 찾아보기 어렵기 때문에 개발자들이 따를 Role model이 없다. 따라서 개발자들 스스로도 성장 단계별로 어떤 일을 해야 하는지 알지 못하고 우왕좌왕 하게 된다.

대기업 A사는 개발자의 직군에 Architect라는 직군을 만들고 이를 10여개로 세분화하고 각 직군마다의 R&R을 정하고 있다. Data Architect, System Architect, Application Architect 등 여러가지가 있다. 하지만 R&R이 소프트웨어 개발 현실과는 거리가 멀고 Role도 명확하지 않다. 결국 타이틀에 불과하고 일하는 방식은 주먹구구 방식과 큰 차이가 없다.

소프트웨어를 잘 모르는 HR 전문가나 관리자들이 만든 개발자 Career path는 현실성이 떨어져서 실제 적용이 잘 안된다.

개발자로 꾸준히 일을 하려고 해도 조직의 문화상 너무 많은 보고서 작성, 보고, 회의를 해야 하는 경우도 많다. 개발 일은 장시간 집중을 해서 성과를 낼 수 있는 일이라서 중간에 다른 일이 자주 끼어들면 제대로 일하기 어렵다. 보고를 이렇게 많이 해야 하고 보고서를 만드는데 오랜 시간을 투자해야 하는 이유는 기업의 기반시스템이 부족하여 경영자가 수시로 보고를 받아야 현황을 파악할 수 있기 때문이다.

또한 보고서의 내용보다 형식에 민감한 경영자가 많고 편하게 앉아서 자신이 필요할 때마다 아랫사람이 자세히 보고를 해주기를 원하는 경영자가 많다. 따라서 개발자라고 하더라도 이런 잡무가 많아질 수 밖에 없다.

이런 귀찮은 일들을 대신해줄 중간 관리자를 채용해도 전문성이 부족한 관리자들은 결국 일들을 개발자에게 토스하는데 그친다. 또한 중간 관리자가 일을 더 많이 만들어서 시키기 때문에 더 귀찮게 하는 경우도 있다.

대기업 개발자들과 인터뷰를 해보면 개발을 좋아해서 개발을 꾸준히 하고 싶은 개발자들도 개발 환경의 열악함, 개발자의 낮은 대우 등으로 인해서 현실적으로 관리자의 경력을 택하고 있었다.

중소기업도 크게 다르지는 않다. 개발을 아주 잘 이해하고 있는 경영자가 있는 회사가 아니라면 중소기업도 개발자 경력이 잘 보장 되지 않는다. 중소기업은 인력이 부족하다 보니 직종을 상세히 구분하지 못하고 개발자에게 팀장 또는 PM(Project Manager)일을 맡기게 된다. 그러다 보면 자연스럽게 개발과 관리의 경계가 무너지게 된다.

많은 회사들이 개발자 경력을 보장해야 한다는 사실 자체는 인지를 하고 있는 것 같다. 하지만 이를 문자 그대로 받아 들일 뿐, 진정으로 깨닫고 있지는 않은 것 같다. 현재의 기업문화와 개발 환경을 그대로 두고 개발자 경력 보장이 되기는 어렵다.

개발에 꼭 필요한 기반시스템들이 잘 구축되어서 제대로 쓰여야 한다. 그래서 투명한 개발 환경이 되어야 불필요한 보고와 회의가 대폭 줄어들게 된다. 경영자들도 매번 보고를 받지 말고 대부분의 정보는 시스템을 통해서 확인 할 수 있어야 한다. 기업 문화도 전문성을 존중하는 방향으로 바뀌어야 한다. 또한 관리자는 윗사람이라 상명하복 관계라는 생각도 바뀌어야 한다. 관리면 관리, 개발이면 개발 각각 전문성 있는 일을 하는 것일 뿐이다.

물론 개발자도 바뀌어야 하지만 경영자와 기업이 먼저 바뀌어야 할 것이다. 그래야 개발자 경력 보장이 제대로 정착이 될 수 있을 것이다.

이글은 Tech it!에 기고한 글입니다.

댓글 5개:

  1. 요즘 혼자 설계문서 작성하고 개발하다보니 문득 든 생각인데
    소프트웨어의 규모가 커지고 여러사람이 개발에 참여할 수록 설계의 중요도가 커진다고 생각이 되어지는데
    혼자 개발및 설계를 하는 정도에서 문서가 효율적인가 생각이 들더군요 개발노트정도면 충분하지않은가 생각이 들기도 하고 어떻게 생각하시는지 궁금합니다.

    답글삭제
  2. 기업문화가 얼마나 중요한지 다시금 깨닫게 하는 글이네요

    답글삭제
  3. 분석과 설계 문서는 항상 적절하게 해야 합니다.

    적절한 정도가 1page가 될 수도 있고 1,000page가 될 수도 있습니다. 이는 프로젝트마다 다릅니다.

    혼자 개발하더라도 문서는 작성해야 합니다. 제품의 규모와 성격에 따라서 기억으로만 모든 것을 처리할 수 없는 경우가 대부분입니다. 1주일만 지나면 상당 부분 잊어버리는 것이 보통입니다. ^^

    또 나중에 다른 사람들과 협업이 필요 할 수도 있습니다.

    우선은 혼자 개발한다면 본인 스스로 설계를 할 수 있을 만큼 스펙을 작성하고 코딩을 할 수 있을 만큼 설계를 하는 것이 좋습니다. 그렇지 않으면 여럿이 개발하면서 발생하는 재작업 등의 부작용이 똑같이 발생합니다.

    문제는 문서를 제대로 적는 것이 어렵다는 것입니다. 이것은 선배들에게 배우던지, 전문가에게 배우던지, 오랜 시간에 걸쳐서 시행착오를 거쳐서 배우는 방법 밖에는 없습니다.

    제가 검토한 대기업부터 중소기업까지의 수많은 개발자가 작성한 스펙, 설계문서는 95% 이상이 100점만점에 30점 이하입니다. 문서를 강제로 쓰라고 해도 작성 능력이 부족한 상황에서 문서 작성에 대한 회의가 드는 것은 당연합니다.

    여기 질문이 있습니다.
    "문서를 작성하면 개발이 더 빨리 끝납니까?"
    여기에 자신있게 "예"라고 대답하지 못하면 문서 작성 방법이나 역량 등 뭔가 잘못된 겁니다.

    이 질문에 "예"를 할 수 있는 방법을 찾아야 합니다.

    답글삭제
  4. 너무나 공감이 가는 글입니다.
    저두 몇년을 문서는 귀찮은 작업으로 여겼다가...
    이제서야 꼭 필요한 작업이라고 느끼고 있습니다.
    진작에 깨닫고 '꼼꼼하게 작성을 했어야 하는데' 하는..
    후회가 밀려오고 있습니다.

    답글삭제