구성원들이 만드는 문화
첫 직장 생활을 개발자로 시작했고, 아직도 개발이 좋고, 개발자가 좋고, 개발로 많은 것을 이루어 낼 수 있다고 믿고 있다. 오늘은 개발 문화에 대한 이야기를 해 보고자 한다.
요새 많은 회사들이 개발 문화가 좋은 회사를 무기로 개발자들을 끌어 모으기 위해 애쓰고, 또한 개발자들도 개발 문화가 좋은 회사를 선호한다. 그런데 나는 여기서 "문화"라는 것에 집중해서 이야기해 보려고 한다. 과연 개발 문화가 회사가 제공해주고 유지하는 것이 과연 가능할까 고민해보았는데 내 생각을 정리해보려고 한다.
회사의 개발 문화는 어떻게 만들어졌을까? 문화(文化)는 일반적으로 한 사회의 주요한 행동 양식이나 상징 체계를 말한다. 문화란 사회사상, 가치관, 행동양식 등의 차이에 따른 다양한 관점의 이론적 기반에 따라 여러 가지 정의가 존재한다. 인간이 주어진 자연환경을 변화시키고 본능을 적절히 조절하여 만들어낸 생활양식과 그에 따른 산물들을 모두 문화라고 일컫는다.
출처 : 위키피디아
문화는 "사회"에서 만들어진다.어느 누구 한 명에 의해 만들어지는 것이 아니라는 것이다. 그리고 또 관심 있게 봐야 할 키워드는 "여러 가지", "변화", "조절", "산물"이다. 좋은 문화를 만드는 것은 기존에 그 회사에서 함께 했던 구성원들이 만드는 것이다. 회사가 개발 문화를 만든다기 보다는 그 안에 있는 구성원들의 사회사상, 가치관, 행동양식이 정착 되는 것이다. 주어진 환경을 변화시키고 조정해서 만들어낸 생활양식 인 것이다. 회사는 환경을 주고, 이론적 기반을 제공해줄 뿐이지 이것들을 조절해 낼 능력은 가지고 있지 않다고 본다. 조절하여 산물로 만들어내는 것은 구성원 아닐까?
어떻게 유지될까?
문화는 만들어지는 것도 중요하지만 유지되는 것이 더 중요하다고 본다. 현재 직장에 있기 전에 대기업에서 약 14년간 근무를 했었다. 처음에는 개발자로 입사했지만, 어느 순간부터 관리만 하고 있는 나를 보게 되었다. 그런데 이 회사가 변화를 시도하기 시작했다. 나는 오랜 시간 잠자고 있던 DNA가 잠에서 깨어나 변화에 동참하고 분위기를 바꾸기 위한 노력들을 하기 시작했다. 그런데, 그 변화를 주도하던 C레벨의 변화 추진자가 성과에 대한 압박을 받기 시작하였고, 결국 성과를 위해 개발 문화를 형성하는 것은 후순위로 밀렸다고 생각한다. 그런데 이런 문화를 최우선으로 생각하는 것이 과연 맞을까?라는 생각을 해보게 된다. 문화는오너 또는 C레벨의 임원들이 힘을 실어줘야 잘 유지될 수 있다고 생각하지만,꼭 C레벨이나 오너만이 할 수 있는 것이라고 생각하지는 않는다.오너가 아닌 C레벨은 조직에서 성과를 인정받아야만 하는 숙명을 타고 났고, 그 성과가 문화를 만드는 게 아닌 이상 그 지지에 대한 철회를 언제든지 할 수도 있을 것이다.
문화를 유지하기 위해서는 문화가 한번 형성되어 자리를 잡았을 때, 혹은 자리를 잡으려고 하는 과정에서 " 구성원 간의 합의 "가 가장 중요하다고 본다. 문화는 앞에서 언급되었듯이 사회의 행동 양식이다. 사회는 조직을 의미하고 행동 양식은 구성원의 행동 양식인 것이다. 따라서 "구성원 간의 합의"는 조직에서 제시한 이론적 기반하에서 가능한 행동 양식을 찾고 합의할 것이라고 보고, 이 합의는 C레벨의 도움 없이도 가능하고 이렇게 합의가 도출된 문화는 외부 환경의 변화에 쉽게 흔들리지 않는다.
어떻게 구성원을 합류시켜야 하는가?
앞에서 얘기한 것처럼 조직의 문화 특히 개발 문화는 일반적인 조직의 문화보다는 조금 더 특색이 있는 것 같다. 최근 좋은 개발자를 뽑기 위한 조건으로 복지와 개발 문화가 가장 중요한 조건이라고 본다. 그런데 이미 회사에 만들어져 있는 개발 문화가 과연 새로 합류하는 개발자에게도 잘 맞을까?라는 생각을 해 본다. 이런 개발 문화가 없는 보통 회사에서도 회사를 옮기게 되면 다른 문화 때문에 적응을 위해 상당한 시간을 필요로 한다. 그런데 그 문화를 중요시 생각하는 개발 문화는 더더욱 적응을 위한 시간과 배려가 필요하다. 문화는 앞에서 얘기했듯이 구성원 간의 합의에 의해 잘 정착될 수 있고 새로운 구성원이 합류할 때 그 합의가 잘 유지될 것인지에 대해서도 고려해야 한다. 회사는 홍보 자료에는 신기술에 대한 트렌드를 익히고, 새로운 개발 언어 학습이나 신규 서비스 개발, 수평 문화 등 다양한 조건들을 제시한다. 그러나 어떤 것이든 간에 그 이면에는 그에 대한 책임이 따르게 마련이고 보통은 그 책임에 대해서는 언급되지 않는 경우가 많다.
개발 문화를 가진 조직이 새로운 구성원을 뽑아 합류하도록 할 때 그 개발자가 담당할 업무와 정확한 근로 조건, 교육 환경, 서비스 환경 등 세세한 내용들 즉, 개발 문화라고 일컬어지는 내용들 모두와 그 이면에 따르는 책임까지 오픈하고 논의되어야 한다고 생각한다. 새로운 구성원이 조직 내에 잘 정착하게 하기 위해서 말이다.
개발 문화를 보장받기 위한 대가
회사가 그리고 조직장은 과연 언제까지 개발 문화를 보장할 수 있을까? 자유에는 책임이 따른 다는 말이 있다. 조직에서도 무언가를 보장받기 위해서는 항상 그 대가가 따르게 마련이고,개발 문화를 보장받기 위해서는 그것을 보장받기 위해 조직의 성과를 충분히 달성해야 한다. 개발자들이 생각하는 성과가 아니라 회사가 생각하는 사업적 성과를 이야기하는 것이다. 개발 회사가 기술을 개발하는 것 자체로의 목적이 아니라 개발된 기술을 어떻게 사업적으로 연결시킬지를 고민해 주는 사람이 필요한 이유이다.개발자들로만 구성된 조직이 조직의 사업 목표를 잘 이해하고 추진할 수 있다면 가장 좋겠지만, 그렇지 않은 경우에 대해서도 대비해야 한다.
만약 조직이 신기술을 개발하든 신사업을 개발하든 일정 기간 동안 또는 기약 없는 동안 조직을 유지하고 있다면 그 조직은 최선을 다해 그 결과물을 만들어내야 한다. 그렇게 할 때만 그 조직과 조직이 가진 문화를 보장받을 수 있다고 생각한다.
애자일은 다른 회사를 보고 배울 수 있나?
타인, 다른 회사에서 성공적인 무엇인가를 발표할 때 후발 주자로서 이것을 가장 빠르게 접근하여 따라잡는 방법은 성공한 회사의 모델을 학습하여 내부에 적용하는 방법이다. 수년 전부터 애자일 방법론에 대해 많이 논의되고 정착을 위한 시도를 하고, 이것을 정착시키기 위한 노력을 하고 있다. 그런데 앞에서 이야기했듯이 이것은 문화의 결과물이다. 결국 애자일 방법론도 회사 내의 주어진 조건에서 본능을 조절하여 만들어 낸 산물이다.회사마다 주어진 환경이 다르고, 조절에 의해 이르는 합의점이 달라질 것이다. 이런 상황에서 다른 회사의 성공적인 애자일 방법론을 내부에 적용한다고 성공할 수 있다는 것은 문화에 대해 너무 안일한 생각을 가지고 있는 것이라고 본다. 다른 사람이 입던 옷을 가져다가 입으면, 클 수도 있고 작을 수도 있다. 소매 길이만 길 수도 있고, 바지 기장이 짧을 수도 있고, 몸에는 딱 맞을 수도 있지만 허리 기장이 길어서 어울리지 않을 수도 있다. 몸에 딱 맞는 옷이라고 하더라도 디자인이 맞지 않거나 의도했던 상황에 입을 수 있는 옷이 아닐 수도 있다. 남의 옷이 아니라 백화점에서 사는 옷의 경우에도 딱 맞는 경우보다는 표준화된 사이즈에 맞추어 출시되는 옷 중에 가장 잘 맞는 옷을 고르는 것이다. 타사의 성공적인 문화가 공유될 때도일반적이고 표준화된 내용을 기준으로 공개가 된다고 본다. 결국 내부 도입을 위해서는 여기저기 손봐야 할 내용이 많고, 그러다 보면 그냥 처음부터 시작하는 것이 낫다고 생각한다.그러나 옷을 한 번도 만들어본 적이 없는, 회사 내에 문화를 만들어 정착시켜 본 적이 없는 또는 구성원 간의 합의가 아니라 회사에서 제공되는 것이라고 생각하는, 내 일이 아니라 문화를 주도하는 다른 조직의 일이라고 생각하는구성원들 사이에서는 애자일 방법론 같은 새로운 문화는 정착이 거의 불가능하다고 본다. 누군가 해주는 일이 아니라 바로 내 일이고, 내가 바뀌어야 정착될 수 있는 것이다.
개발 문화는 누가 만드나?
아직도 개발 문화는 회사가 조직과 개인에게 주는 것이라고 생각한다면 좋은 개발 문화를 가진 회사에 다니기 위해서는 창업을 하라고 권하고 싶다. 나는 지금도 그렇고 앞으로도 좋은 개발 문화는 구성원이 만들어야 한다고 주장한다. 만약 조직이 그런 것에 관심이 없다면 관심을 갖도록 어필하고 협상하고 방법을 찾아야 한다. 회사의 핑계 조직의 핑계를 대다 보면 평생 좋은 개발 문화는 만들어지지 않는다. 오너나 C레벨의 지원이 없다고 하더라도 방법을 찾으면 된다. 아직 찾지 못했을 뿐 방법이 없는 것은 아니라고 본다.