팀
무언가를 만들어가는 과정에는 겉으로는 드러나지 않는 수많은 고민이 담겨 있습니다. 우리가 해온 일의 범위와 영향력이 커지면서, 그간 겪어온 배움과 인사이트도 함께 쌓여왔습니다. 이러한 내용은 엔지니어링, 프로덕트, 그리고 조직 전반의 의사결정에 걸쳐 있습니다.
이 블로그를 통해 그동안 내부에만 담아두었던 고민과 사고 과정을 하나씩 공개하려 합니다. 우리는 어떻게 제품을 만들고, 어떤 기준으로 결정을 내리며, 규모, 품질, 속도 사이의 균형을 어떻게 맞추고 있는지에 대해 설명할 예정입니다. 이를 통해 우리가 일하는 방식을 더 잘 이해하는 데 도움이 되기를 바라며, 동시에 우리가 자부심을 갖고 있는 엔지니어링 문화를 자연스럽게 보여주고자 합니다.
저는 현재 Axon에서 Chief Product and Engineering Officer로 일하고 있습니다. 하지만 일상적인 업무에서의 제 역할은 팀의 많은 구성원들과 같은 MTS(Member of Technical Staff)입니다.
제가 하는 일은 팀의 다른 구성원들과 크게 다르지 않습니다. 코드를 작성하고, 설계를 고민하고, 기술적인 논의를 나누는 데 시간을 씁니다. 이는 Axon의 엔지니어링과 프로덕트 리더들 역시 마찬가지입니다.
우리는 방향을 제시하는 리더일수록 현업의 손끝에서 벌어지는 일과 가까이 있어야 한다고 강하게 믿습니다. 시스템이 실제로 어떻게 운영되는지, 어떤 지점에서 트레이드오프가 발생하는지, 시스템의 복잡성이 어디에 숨어 있는지를 깊이 이해하는 것이 장기적으로 올바른 결정을 내리는 데 필수적인 기반이기 때문입니다.
Axon에서 “Builder”, 즉 실무자로 일하는 것은 언젠가 졸업하고 벗어나는 단계가 아닌 의도적으로 계속 유지하고자 하는 일의 방식이자 태도입니다.
이러한 사고방식은 내부 커뮤니케이션 방식에도 그대로 반영됩니다. 우리는 리더십의 리포트나 발표 중심의 업데이트에 크게 의존하지 않습니다. 대신, 일 자체를 통해 소통하려고 합니다. 코드, 대시보드, 설계, 그리고 실제로 운영되는 시스템이 현재 상태와 진행 상황을 그대로 보여줍니다. 프로덕션에서 실제로 돌아가는 결과물을 기반으로 한 커뮤니케이션은 더 정직하고, 해석 과정에서 발생하는 왜곡도 줄여줍니다.
우리의 철학은 말로는 단순하지만, 실천하기는 결코 쉽지 않습니다.
다음 세 가지를 동시에 이루는 것을 목표로 합니다.
1. 세상을 조금씩이라도 더 나은 방향으로 만드는 훌륭한 제품을 만드는 것
2. 만드는 사람들이 진심으로 자부심을 느낄 수 있는 훌륭한 엔지니어링을 구축하는 것
3. 그 과정 속에서 팀 구성원들이 의미 있게 성장하도록 돕는 것
우리는 이 목표들이 서로 충돌한다고 생각하지 않습니다. 만약 하나를 위해 다른 하나가 지속적으로 희생되고 있다면, 그 어딘가에는 문제가 있습니다. 대개는 인센티브, 조직 구조, 혹은 기준의 문제입니다.
우리는 매우 큰 규모로 운영되는 제품들을 책임지고 있습니다. 하지만 이에 비해 팀의 규모는, 비슷한 수준의 다른 회사들과 비교하면 예상보다 훨씬 작습니다.
이는 우연이 아닙니다.
우리는 비교적 유사한 역량을 갖춘 다기능 팀으로 운영됩니다. 역할을 지나치게 세분화하거나, 경직된 오너십 경계를 두지 않습니다. 대신 업무가 변화함에 따라, 사람들이 문제 영역, 기술과 프로젝트를 자유롭게 넘나들 수 있는 환경을 제공합니다.
이러한 구조 덕분에 더 적은 인원으로도 더 빠르게 움직일 수 있고, 조직적 마찰을 줄이며, 의사결정이 실제로 이루어지는 지점에 맥락을 유지할 수 있습니다. 물론 트레이드오프도 분명합니다. 이 모델은 탄탄한 기본기와 높은 수준의 신뢰를 요구하며, 우리는 이러한 선택을 의도적으로 하고 있습니다.
우리는 업무 범위를 엄격히 구분하지 않고, 대부분의 구성원이 다양한 영역의 작업이든 참여할 수 있습니다.
그 결과, 팀이 과거에 만든 시스템을 지키기 위해 방어적으로 행동하거나, 그 시스템에 계속 얽매여 있다는 부담을 느끼지 않아도 됩니다. 하나를 만들고, 기준에 도달할 때까지 개선한 뒤에는 다음 작업으로 넘어갑니다. 오너십과 유지보수에 대한 책임은 Axon 엔지니어링 팀 전체가 함께 나눕니다.
이러한 방식은 오래 운영되는 시스템에서 흔히 쌓이는 보이지 않는 마찰을 크게 줄이고, 정보가 특정 팀이나 개인에 고립되는 상황을 피하는 데 도움을 줍니다.
일반적인 통념과는 다를 수 있지만, 우리는 과도한 문서 작성을 권장하지 않습니다. 대신, 직관적인 엔지니어링에 더 많은 비중을 둡니다.
시스템이 불필요한 안티 패턴을 최소화하고, 논리적이고 깔끔한 구조로 설계되어 있다면 자연스럽게 이해하기 쉽고 확장하기도 수월합니다. 문서는 종종 좋지 않은 설계를 정당화하는 수단으로 사용되기도 하며, 많은 조직에서 문서는 금세 오래되거나 불완전해지고, 결국 잘 활용되지 않습니다.
우리는 잘못된 문서를 고치기보다, 문서가 필요 없는 설계를 만드는 것을 선택합니다. 이러한 접근은 정보 사일로를 줄이고, 공동 오너십을 현실적으로 만들며, 설계 단계부터 더 높은 수준의 엔지니어링 규율을 요구합니다.
우리는 엔지니어링의 품질과 ‘감각’을 매우 중요하게 생각합니다.
핵심적인 문제에 대해서는, 기존 솔루션이 우리의 요구를 충족하지 못할 경우 깊이 있게 최적화된 내부 시스템을 직접 구축하기도 합니다. 최근 오픈소스로 공개한 AxonCache도 그 중 한 예시입니다.
동시에, 불필요하게 같은 것을 다시 만들지 않도록 늘 신경씁니다. 필요한 경우에는 성숙한 클라우드 인프라와 기존 플랫폼을 적극적으로 활용합니다. 이러한 균형 잡힌 선택이야말로, 우리가 슬림한 팀으로도 효율적으로 운영할 수 있는 핵심 이유 중 하나입니다.
우리는 AI를 단순한 유행이 아니라, 실제 업무 효율을 높이기 위한 도구로 활용하고 있습니다. 엔지니어링과 프로덕트 전반에서 적극적으로 사용하고 있지만, 목적은 언제나 명확합니다.
프로덕트 측면에서는 AI를 안전성, 제품 인텔리전스, 자동화를 강화하는 데 활용합니다.
엔지니어링 측면에서는 디버깅, 로드맵 탐색, 반복 작업, 그리고 설계와 문제 해결에 참여하는 가상 엔지니어로 AI를 활용하고 있습니다.
우리는 AI의 가능성에 기대를 가지고 있지만, 동시에 상식적인 판단을 잃지 않으려 노력합니다. 도움이 되는 곳에서는 적극적으로 활용하되, 집중을 흐리는 과도한 기대는 경계합니다.
이 블로그의 목적은 단순합니다. 우리는 작고, 높은 신뢰를 바탕으로 움직이는 팀이 복잡한 시스템을 만들어가는 과정에서 얻은 배움과 인사이트를 공유하고자 합니다.
어떤 글은 매우 기술적인 내용을 다룰 것이고, 어떤 글은 제품에 대한 의사결정을 중심으로 이야기할 것입니다.
또 다른 글은 조직 운영에서의 트레이드오프를 돌아보는 내용이 될 수도 있습니다.
이야기는 언제나 실무자의 관점에서 풀어갈 것입니다. 그것이 우리가 일하는 방식이기 때문입니다.