혁신세: 개발자의 비생산성과 불만족으로 인해 발생하는 비용은 어느 정도입니까?
저는 개발자의 응석을 받아줘야 한다고 생각하는 사람이 아닙니다. 개발자나 최고 경영진과 같이 조직에서 실질적인 권한을 가진 사람들의 특권을 옹호하는 문화에 찬성하지도 않습니다. 우리 모두는 현실 세계에서 전문가로 일하고 있는 성인입니다. 역할이나 책임에 관계없이 서로를 어른으로 대해야 합니다. 컴퓨터 프로그래머에서부터 재무 분석가, 영업 담당자에 이르기까지 모든 직원이 회사에 고유한 가치를 제공하고 있습니다.
따라서 저 같은 경영진은 모든 팀원들이 발휘하는 중요한 역량을 이해하고 인정 및 육성하기 위해 노력해야 합니다.
그럼 제가 가장 좋아하는 개발자 집단부터 살펴보겠습니다. 디지털 시대를 살아가는 지금 흔히 듣는 말이 있습니다. 바로 “모든 기업이 소프트웨어 기업이 되어가고 있다”는 것입니다. 이 말은 디지털 분야의 혁신(애플리케이션 개발)이 새로운 비즈니스 창출과 경쟁 우위 확보의 주요 원동력이라는 뜻입니다. 새로운 애플리케이션을 신속하게 배포하고 애플리케이션에 다양한 혁신 기능을 적용할 수 있는 능력은 비즈니스의 성공에 직접적인 영향을 미칩니다.
애플리케이션이 새로운 디지털 경제의 화폐라면 개발 팀은 시장 조성자입니다. 그러나 제 경험상, 전략적으로 디지털 경제의 속도와 혁신을 부단히 강조하는 분위기에도 불구하고 대기업과 중소기업 모두 개발 팀이 오해를 받거나, 잘못 관리되거나, 소외되는 일이 계속 발생하고 있습니다.
이것은 부당한 일일 뿐만 아니라, 엄청난 비용 손실을 야기합니다. 저는 이것을 회사에서 창출 가능한 혁신의 양에 대한 세금으로 생각합니다. 개발자가 수행하는 업무의 속성을 이해하지 못하거나, 안전하고 생산적인 업무 환경을 제공하지 못할 때 기업은 이러한 세금을 지불하게 됩니다. 이러한 부분을 간과한 기업은 오랫동안 살아남을 수 없습니다.
저는 요즘 프로덕션 코드를 개발하고 있지는 않지만, 마음만은 여전히 개발자입니다. MongoDB의 경우, 수 십 개의 팀에 수 백 명의 개발자가 분산되어 있기 때문에 개발자 문제가 계속해서 발생하고 있습니다. 저는 지금까지 일해오면서 개발자를 위한 생산적인 문화를 조성하기 위해 해야 할 것과 하지 말아야 할 것을 배웠습니다. 이 문제는 뒤에서 다시 말씀드리겠습니다. 먼저, 현재 지불하고 있는 "혁신세"를 줄이고 싶다면 다음의 몇 가지 사항을 고려해야 합니다.
• 개발자에게 비즈니스 컨텍스트를 제공
개발자의 지능이나 성숙도를 모욕해서는 안 됩니다. 개발자는 자신의 업무에 대한 비즈니스 근거를 이해할 수 있고, 또 이해해야 합니다. 실제로 개발자를 위한 전략적 목표를 설정하면 소프트웨어의 아키텍처와 설계 경험 측면에서 중요한 결정을 조율할 때 더 나은 결과물이 도출됩니다. 비즈니스 컨텍스트를 이해한 개발자는 저 같은 CTO가 주도하는 하향식 혁신이 아니라, 상향식으로 혁신을 달성하는 효과적인 방법을 찾을 수 있습니다.
• 기술 부채를 중요시 여기고 원금을 상환
제 경험으로 미루어볼 때 개발자들의 사기를 떨어트리는 가장 큰 원인은 과도한 기술 부채와 이를 묵살하는 경영진의 태도입니다. 제품 출시를 위한 약간의 부채를 지는 것은 괜찮습니다. 부채라는 것을 인식하고 나중에 원금을 갚는다면 말입니다. 하지만 부채 증가에 신경 쓰지 않는 리더는 자신이 간트 차트에 매달리느라 엔지니어링 정신과 멀어지고 있다는 것을 개발자에게 여실히 보여주는 셈입니다. 이러한 인지 부조화 상태에서는 개발자가 제 역량을 발휘하지 못합니다. 이렇게 손을 쓸 수 없는 상태에서 개발자에게 혁신 기술을 개발하도록 지시한다면 이들로부터 신뢰를 잃게 되고 개발자의 인내심도 바닥이 날 것입니다. 그리고 무엇보다 혁신의 속도가 점차 느려지면서 비용 손실이 발생하게 됩니다.
• 개발자의 실질적인 업무 이해
이 부분에 대해서는 할 말이 많지만 요점만 말하자면, 리더가 개발자의 업무 방식을 이해하지 못하면 팀을 이끌어갈 수 없다는 것입니다. 새로운 기능에만 집중하는 것은 쉽습니다. 하지만 리더라면 데이터베이스나 레거시 스테이징 환경을 유지 관리하는 등의 관련 업무가 혁신 가치를 제공하지 않고 개발자의 시간을 빼앗으며 사기를 저해하는 아주 고된 작업이라는 사실을 인정하고, 이를 해결해야 합니다. 그 이유를 이해하려면 인접하거나 종속된 시스템을 개조해야 한다고 주장하는 개발자의 말을 들어보십시오.
• OKR 및 허영 지표 제거
하향식으로 혁신한다는 것 자체가 모순입니다. 개발자가 원하는 것은 자신의 아이디어를 실현하는 것뿐이라는 사실을 믿어야 합니다. 경영진이 목표, 주요 성과 및 기타 KPI(Key Performance Indicator)를 통해 개발자의 업무 방식을 통제하려고 할수록 혁신의 범위는 제한됩니다. 목표를 설정했다면 개발자에게 맡기고 한 발 물러나야 합니다.
• 목표 조정
이는 비즈니스 컨텍스트를 제공하는 것과 관련이 있습니다. 리더와 개발자는 같은 목표를 향해 나아가고 있음을 체감해야 합니다. 적대적인 관계는 개발자의 이탈을 초래하고, 단 한 번의 부정적인 상호 작용만으로도 하루 종일 수행한 업무의 성과가 날아갈 수 있습니다. 다시 말하지만, 컴퓨터 프로그래머의 응석을 받아주자는 것이 아닙니다. 개발자는 다른 사람들과 마찬가지로 기업의 성공을 위해 복잡한 레시피에서 자신의 역할을 수행하고 있습니다. 하지만 이를 위해서는 비즈니스와 기술 및 조직의 목표를 조율하고 개발자와 정직하고 투명한 관계를 구축해야 합니다.
앞서 말했듯이 이 주제에 관해서는 며칠이라도 이야기를 할 수 있을 정도로 할 말이 많습니다. 당부드리건대, 개발자를 잘못 관리하면 혁신세가 발생한다는 것을 명심하십시오. 저는 앞으로 몇 달에 걸쳐 혁신세와 관련된 다른 숨은 비용들을 살펴볼 것입니다. 모쪼록 본 게시글이 해야 할 일과 하지 말아야 할 일에 대한 대화를 나눌 시작점이 되기를 바랍니다. 트위터에서 자유롭게 @MarkLovesTech를 추가하거나 삭제하실 수 있습니다.