작가님의 허락을 받고 번역한 글입니다.(원문)
PHP가 짜증나는 이유에 대해서 포스팅하고 있는 스스로를 발견했다면, 준비되지 않은 것입니다.
CTO가 되는 것은 팀에서 엄청난 해커가 되는 것을 의미하는 것이 아닙니다. 실제로, 프로그래밍 작업은 아마 가장 우선순위가 낮은 작은 일이 될 겁니다. 대신, 다른 사람에게 기술 관련 의사소통을 할 수 있어야하고, 프로젝트 실행 전반을 리드 해야 합니다. 어떤 면에서는 외부 방해로부터 기술팀을 보호하는 사람이며, 필요하다면 실수에 대한 책임을 질 줄 알아야 합니다.
대부분 스타트업에서 볼 수 있듯이, 개발자가 많지 않은 작은 회사에서는 일반 개발자가 갑작스럽게 CTO로 고용되기도 합니다. 하지만 이 경우 "Chief Technology Officer"라는 타이틀은 "워커홀릭 개발자"를 듣기 좋게 줄인 말이 될 가능성이 큽니다. 이런 경우를 막기 위해서 CTO라는 자리가 무엇을 요구하는지, 그 요구 조건을 달성하는 방법은 무엇인지 인지 하는 게 중요합니다.
개인적으로, 단순히 구현만 하는 기술 부서를 극도로 싫어합니다. 외주 개발팀도 마찬가지인데, 의사 결정 과정이 개발 업무와 동 떨어져 있기 때문입니다. Camille Fournier가 On the role of CTO
에서 언급했듯이, CTO는 기술 팀이 자체적 아이디어나 필요 사항을 고려하지 않는 단순 아이디어 구현 도구가 되지 않게 보호 해야 합니다.
회사에 CTO가 필요하다면, 해당 담당자는 사내 기술의 장기적인 비전을 정의할 수 있는 사람일 것입니다. 게다가 최근 기업들은 기술을 일부 활용하는 것을 넘어, 기술에 의해 정의되기에 이르렀습니다. 소매 전자 상거래에서 모바일 앱에 이르기까지 모든 것이 기술을 기반으로 구축되고 있으며, 내부에서 약간의 개선으로 장점을 극대화시키고 있습니다. 이는 CTO로서 포기하면 안되는 싸움이며, 기술 팀이 구현 도구가 되게 해서는 안됩니다.
동료 CTO들과 자리를 가지면, 대부분의 이야기는 어떻게 하면, 사내 타 부서가 개발 업무를 존중할까에 관한 것입니다. 예를 들면, 아래와 같습니다. A: "어떻게 하면 이사들에게 유닛 테스트를 납득시킬 수 있을까?" B: "그건 니 생각이고, 나라면 설득 보다는 이게 일을 하는 방식이고 우리가 일하는 방식이라고 말할 거야" 요약하면, CTO가 무엇이라 말하든, 그렇게 될 거라는 겁니다. 만약 CTO가 일종의 기술적 결정에 있어 힘이 없다면, 정장 입은 리드 엔지니어일 뿐이지 CTO가 아닙니다.
CTO는 사내 기술의 방향성을 정하는 경영 전략에 관한 직업입니다. 비기술인들, 매니저는 앉아서 아무것도 하지 않는다고 생각하는 사람들과 논의 해야 되기 때문에 만약 회의를 싫어한다면, 적절한 직업은 아닙니다. 이 모든 것은 도움이 될만한 많은 좋은 책들로부터 배울 수 있습니다. 사업의 방향성과 사업을 기술적으로 어떻게 도울 수 있는지, 때로는 새로운 성장 기회를 어떻게 만들어낼 것인지에 대한 논의가 회의의 주 의제가 될 것입니다. 이것은 모두가 이해할 수 있는 방향으로, 영어와 같은 언어를 통해 표현되어야 할 필요가 있습니다.
따라서 사업과 고객의 요구 사항을 이해하는 것은 필수적입니다. 경험에 의하면, 수 많은 기술인 들은 경영 관련 된 것들로부터 멀리하는 경향이 있습니다. 하지만 이것은 CTO로서 제일 먼저 알아야 할 것들입니다. 비기술적인 결정은 하드웨어나 소프트웨어에 대한 영향이 전혀 없는 부분에서 발생합니다. CTO는 대부분의 시간을 프로덕트 매니저와 소통을 함으로써, 제품 전략이 개발 관련 행위에 반영될 수 있도록 해야합니다.
궁극적으로 CTO는 기술팀이 엄청난 것을 만들어낼 수 있는 환경을 제공해야합니다. 요즘 큰 문제는 고용입니다. 모든 사람이 개발자를 찾고 있지만 너무 많습니다. 그래서 업무 환경은 가능한 그들을 제대로 수용할 수 있어야 합니다. 이건 그들 중 일부였던, CTO가 어떻게 해야할지 잘 알아야 하는 것입니다. 만약 팀이 TDD나 페어 프로그래밍, staging 서버등을 원한다면, 그것들은 CTO에겐 모두 승인될 겁니다. 하지만 이러한 변화들이 전체 시스템에 미칠 거대한 영향력을 고려하는 것은 CTO에게 달렸습니다.
기술의 경제적 작용에 대한 생각은 중요합니다. 스타트업은 그게 무엇이든 가장 좋고 최신의 것에 뛰어들 수 있습니다. 하지만 더 큰 조직은 감당할 수 없는 것들입니다. 모든 것이 얼마나 많은 가치가 고객에게 전달되는지와 ROI에 달렸습니다. 그러므로 대부분의 경우, 기존에 있는 것을 개선시키는 것과, 새로운 것을 도입하는 것 사이의 균형을 조절하는 것이 될 것입니다. 결과의 80%가 비용의 20%를 차지하는 80/20 법칙을 따르는 것이 중요한 부분입니다.
미래의 CTO 후보들과 인터뷰를 해봤더니, 왜 이런 구식에 머무려고 합니까?, 왜 react.js로 재작성하려고 하지 않습니까?와 같은 질문을 받았습니다. 환상을 부셔서 죄송하지만, 좋은 생각이 아닙니다. 때로는 기존 애플리케이션이 근래에 관리비가 비쌀 수 있지만, 재작성은 거의 항상 고객에게 어떤 가치도 전달하지 못합니다. 이건 회사의 개발 인력을 조정하는 것입니다. 신기술만 다루길 원하는 사람들로 팀을 이루면 유지할 수 없습니다.
이것은 가장 중요하다고 여겨지는 것을 구현하는 단계를 만듭니다. 예를 들면, 신뢰성과 보안은 모든 소프트웨어에서 가장 중요한 기능 두 개라고 생각합니다. 개인정보는 물론, 사업 목표의 어떤 변화들은 이것을 대항하려고 하는 게 있습니다. 이것들은 여전히 비기술인들이 이해하기 어려운 주제일 겁니다. 하지만 그것은 회사가 추구하는 것을 단순히 제한합니다. 왜냐하면, 개인정보를 존중하지 않는 것이기 때문입니다. 제 일 중 일부는 이것들을 처리하고 제한하는 것입니다.
업무가 전부 기술 관련 이기는 하나, 기술은 고객에게 보이지 않아야 합니다. 그래서 PHP가 나쁜지 아닌지에 대한 논의는 CTO와는 크게 관련이 있지는 않다고 봅니다. 누군가에게는 자극적인 질문일 수 있겠으나, 어떤 조직에게는 전혀 중요하지 않습니다. 이것이 CTO가 되는 디딤돌이라고 믿고 싶습니다 - 이런 종류를 다루는게 아니라, 기술적 디테일에 지나치게 집중하지 않고 팀과 모든 것을 상자 위에서 바라보는 것
CTO가 되는 것은 사업을 어떻게 표현하고, 그것이 어떻게 고객을 도울 수 있는지에 대한 기술적 큰 그림을 깨닫는 것입니다. 이것은 기술 자체를 이해하는 것으로부터 굉장g한 도움을 받을 수 있지만, 그 기술 이상입니다.
Comments