engineering-management

6 개의 포스트

개발자가 디자인에 적극적으로 참여 (새 탭에서 열림)

Figma의 Dev Mode는 단순한 디자인 뷰어 기능을 넘어 디자이너와 엔지니어 사이의 작업 흐름을 근본적으로 변화시켰습니다. 지난 1년 동안 이 기능을 도입한 결과, 코드와 디자인의 동기화를 강화하고 불필요한 커뮤니케이션 비용을 획기적으로 줄이는 데 성공했습니다. 이제 Figma는 단순한 디자인 전달 도구가 아니라, 엔지니어가 실제 개발 환경과 연동하여 활용할 수 있는 강력한 협업 플랫폼으로 진화했습니다. ### 코드 연결성 강화와 Code Connect * **Code Connect 활용**: Figma 컴포넌트와 실제 프로덕션 코드(React, SwiftUI 등)를 직접 연결하여, 엔지니어가 디자인을 클릭했을 때 디자인 속성 대신 실제 사용하는 코드 스니펫을 즉시 확인할 수 있습니다. * **일관성 유지**: 디자인 시스템의 라이브러리 코드를 직접 노출함으로써 엔지니어가 임의로 스타일을 구현하는 것을 방지하고, 코드베이스와 디자인 사이의 일관성을 높입니다. ### 명확한 워크플로우 상태 관리 * **개발 준비 완료(Ready for Dev) 표시**: 섹션별로 작업 상태를 지정할 수 있어, 엔지니어는 작업 중인 디자인과 구현을 시작해도 되는 디자인을 즉각적으로 구분할 수 있습니다. * **커뮤니케이션 효율화**: 디자인이 수정될 때마다 수동으로 알리는 대신, 상태 값을 통해 작업의 진척도를 공유함으로써 불필요한 회의와 확인 과정을 줄였습니다. ### 개발 리소스 및 컨텍스트 통합 * **Dev Resources 연결**: Jira 티켓, GitHub PR, Storybook 문서 등 해당 디자인과 관련된 외부 링크를 Figma 내부에 직접 첨부할 수 있습니다. * **정보 파편화 방지**: 엔지니어는 툴 사이를 이동할 필요 없이 Figma 한곳에서 프로젝트의 모든 맥락과 관련 문서를 파악할 수 있어 몰입도가 높아집니다. ### 정교한 속성 검사 및 변경 사항 추적 * **Annotation(주석) 기능**: 레드라인(수치 표기) 작업을 자동화하는 주석 기능을 통해 측정값이나 구체적인 속성 정보를 명확하게 전달하며, 이는 수동으로 수치를 기입하던 과거의 번거로움을 해결합니다. * **Compare Changes**: '변경 사항 비교' 기능을 통해 이전 버전과 현재 버전의 디자인 차이를 시각적으로 대조할 수 있어, 어떤 픽셀이 수정되었는지 추측할 필요가 없습니다. ### 디자인 토큰 및 변수(Variables) 활용 * **디자인 토큰 시각화**: 색상, 간격, 타이포그래피 등의 변수 값을 코드로 바로 확인할 수 있어 토큰 기반의 개발 환경 구축이 용이해집니다. * **다크 모드 및 모드 전환**: 하나의 디자인에서 변수를 통해 다크 모드나 모바일 뷰 등을 빠르게 전환하며 각 환경에 맞는 속성값을 신속하게 추출할 수 있습니다. --- Dev Mode의 성공적인 도입을 위해서는 기술적인 툴 사용법을 익히는 것만큼이나 **디자인 시스템과 실제 코드의 구조를 일치시키려는 팀 간의 협업 문화**가 중요합니다. 엔지니어링 매니저라면 단순히 엔지니어에게 Figma 계정을 부여하는 것에 그치지 말고, Code Connect를 통해 라이브러리를 동기화하고 개발 리소스를 문서화하는 프로세스를 정착시키는 것을 추천합니다.

VS Code 방식: 개발자의 이너 (새 탭에서 열림)

듀오링고는 협업을 단순한 소프트 스킬이 아닌 제품 개발의 핵심 동력으로 정의하며, 이를 통해 사용자 성장을 극대화하고 있습니다. 기획자(PM)와 엔지니어가 분리되어 일하는 전통적인 방식에서 벗어나, 초기 단계부터 모든 직군이 공동의 목표를 향해 유기적으로 결합하는 시스템을 구축했습니다. 이러한 협업 중심의 문화는 기술적 타당성과 제품의 가치를 동시에 확보하며 듀오링고의 지속적인 혁신을 가능하게 하는 결론적인 핵심 자산입니다. **교차 기능 팀(Cross-functional Teams) 중심의 기획** * PM, 엔지니어, 디자이너, 데이터 과학자, 콘텐츠 개발자가 프로젝트 초기 단계부터 한 팀으로 묶여 긴밀하게 소통합니다. * 각 직군은 단순히 자신의 영역을 실행하는 데 그치지 않고, 기획안의 초안 작성부터 기술적 제약 사항과 사용자 경험을 함께 논의하며 의사결정 속도를 높입니다. * 이를 통해 제품 개발 후반부에서 발생할 수 있는 직군 간의 오해나 재작업(Rework) 비용을 획기적으로 줄입니다. **공유 지표를 통한 목표의 일치** * 엔지니어링과 제품 팀이 서로 다른 성과 지표(KPI)를 갖지 않고, '학습자 리텐션'이나 '일일 활성 사용자 수(DAU)'와 같은 공통의 북극성 지표(North Star Metric)를 공유합니다. * 기술 부채 해결이나 시스템 성능 개선이 어떻게 제품 지표에 기여하는지를 수치화하여, 엔지니어가 기술적 과업의 비즈니스 가치를 명확히 이해하도록 돕습니다. * 모든 팀원이 같은 성과를 목표로 달리기 때문에 부서 간 이기주의(Silo)를 방지하고 최적의 제품 결과물을 도출하는 데 집중합니다. **엔지니어의 제품 소유권과 리더십** * 엔지니어를 단순히 '코드를 작성하는 사람'이 아닌 '제품의 문제를 해결하는 파트너'로 대우하며, 기술적 관점에서 제품의 방향성을 제안하도록 권장합니다. * 엔지니어링 리더들은 기술 표준 수립뿐만 아니라 사용자 데이터 분석과 가설 검증 프로세스에도 깊이 관여하여 제품의 품질을 상향 평준화합니다. * 이러한 문화는 엔지니어에게 강한 책임감과 동기를 부여하며, 기술적 완성도가 곧 사용자 만족으로 이어지는 선순환 구조를 만듭니다. **반복적인 피드백과 투명한 소통 체계** * 주기적인 동기화 미팅과 피어 리뷰(Peer Review)를 통해 지식을 투명하게 공유하고, 프로젝트의 진행 상황을 모든 이해관계자가 실시간으로 파악합니다. * 실패한 실험이나 기능 출시 후에도 비난보다는 '무엇을 배웠는가'에 집중하는 포스트모텀(Post-mortem) 문화를 통해 조직 전체의 학습 속도를 가속화합니다. * 직군에 상관없이 누구나 아이디어를 제안하고 비판적인 피드백을 주고받을 수 있는 심리적 안전감을 제공합니다. 효과적인 기술 협업을 달성하기 위해서는 기획과 구현의 경계를 허무는 조직적 설계가 선행되어야 합니다. 엔지니어가 제품의 목적을 깊이 이해하고 PM이 기술적 복잡성을 존중할 때 비로소 시너지가 발생하며, 이를 위해 공동의 목표 설정과 초기 단계부터의 전 직군 참여를 제도화하는 것이 필수적입니다.

아틀라시안 방식: (새 탭에서 열림)

듀얼링고는 협업을 단순한 구호가 아닌 제품 개발의 핵심 동력으로 삼아 성장을 이끌어냈습니다. 기획자(PM), 디자이너, 엔지니어가 평등하게 권한과 책임을 공유하는 '삼각대(Three-Legged Stool)' 모델을 통해 기술적 가능성과 사용자 경험의 균형을 유지하며 신속한 의사결정을 내립니다. 이러한 협력 방식은 팀원 모두가 비즈니스 목표에 공감하고 주도적으로 문제 해결에 참여하게 만드는 듀얼링고만의 독특한 경쟁력입니다. ## 삼각대 모델을 통한 공동 리더십 구축 * PM, 디자인, 엔지니어링 리더가 동등한 파트너로서 제품의 방향성을 설정하고 모든 주요 의사결정에 참여합니다. * 특정 직군이 권한을 독점하지 않기 때문에 기술적 부채 해결과 신규 기능 개발 사이의 균형을 실무 수준에서 효과적으로 조율할 수 있습니다. * 각 직군이 서로의 전문 영역을 존중하면서도 프로젝트의 성공이라는 공동의 KPI를 공유하여 부서 간 칸막이 현상(Silo)을 방지합니다. ## 자율적인 교차 기능 조직(Squad) 운영 * 특정 기능이나 지표를 책임지는 소규모 '스쿼드' 단위로 팀을 구성하여 의사결정의 병목 현상을 최소화합니다. * 엔지니어가 단순한 코드 구현자가 아닌, 기획 초기 단계부터 참여하여 기술적 관점에서 아이디어를 제안하고 비즈니스 로직에 깊이 관여합니다. * 팀 내에 필요한 모든 역량이 포함되어 있어 외부 의존성 없이 독립적으로 실험(A/B Test)을 설계하고 기민하게 실행할 수 있습니다. ## 데이터와 실험 중심의 엔지니어링 문화 * 모든 기능 배포는 철저하게 데이터에 기반한 가설 검증 과정을 거치며, 주관적인 판단보다 객관적인 지표를 우선시합니다. * 엔지니어들은 자신이 작성한 코드가 실제 사용자 경험과 비즈니스 지표에 어떤 영향을 미치는지 데이터로 확인하며 높은 업무 동기부여를 얻습니다. * 실험 결과가 부정적이더라도 이를 실패가 아닌 학습의 과정으로 여기는 문화를 조성하여, 기술적 도전과 혁신이 지속될 수 있는 환경을 제공합니다. 성공적인 프로덕트 개발을 위해서는 기술적 역량만큼이나 직군 간의 신뢰와 시스템화된 협업 방식이 중요합니다. 듀얼링고의 사례처럼 실무진에게 데이터에 기반한 자율권을 부여하고 리더십을 분산할 때, 조직 전체의 생산성과 제품의 완성도를 동시에 극대화할 수 있습니다.

리니어 방식: 주 (새 탭에서 열림)

듀오링고는 협업을 단순한 선택 사항이 아닌 조직의 핵심 원칙으로 정의하며, 제품 관리(PM), 엔지니어링, 디자인 조직이 유기적으로 결합된 구조를 통해 성장을 이끌어냅니다. 이들은 모든 구성원이 비즈니스 지표와 기술적 완성도에 공통된 책임을 지는 '트라이어드(Triad)' 모델을 운영하며, 이를 통해 사일로 현상을 방지하고 사용자 경험을 최적화합니다. 결과적으로 이러한 긴밀한 협업 문화는 빠른 실험과 견고한 프로덕트 개발을 동시에 가능하게 하는 듀오링고만의 경쟁력이 됩니다. **트라이어드(Triad) 협업 모델** * 각 팀은 제품 관리자(PM), 엔지니어링 매니저(EM), 프로덕트 디자이너(PD) 세 명의 리더로 구성된 '트라이어드' 체제로 운영됩니다. * 이들은 기획 초기 단계부터 최종 출시까지 모든 의사결정을 함께 내리며, 각 직군이 서로의 영역에 깊이 관여할 수 있는 구조를 만듭니다. * 엔지니어는 단순히 코드만 작성하는 것이 아니라 제품의 목표와 사용자 가치를 이해하고, PM은 기술적 부채와 인프라의 중요성을 인정하며 우선순위를 조정합니다. **지표 중심의 공동 책임제** * 듀오링고의 모든 팀원은 특정 직군에 국한되지 않고 일일 활성 사용자 수(DAU), 리텐션 등 비즈니스 핵심 지표를 공유합니다. * 엔지니어도 제품 실험 데이터와 사용자 피드백을 직접 분석하며, 이를 바탕으로 기능 개선 제안을 자유롭게 수행합니다. * 분기별 OKR(Objectives and Key Results) 수립 시 하향식 전달이 아닌, 팀원 전체가 참여하는 상향식 논의를 통해 목표를 설정하여 실행력을 높입니다. **개발 생산성을 높이는 기술적 토대** * 협업의 마찰을 줄이기 위해 '골든 패스(Golden Path)'라고 불리는 표준화된 개발 환경과 문서를 구축하여 누구나 쉽게 시스템을 이해하고 기여할 수 있게 합니다. * 코드 리뷰와 RFC(Request for Comments) 과정을 통해 설계 단계에서부터 타 직군 및 팀원들의 피드백을 수렴하여 기술적 오류를 최소화합니다. * 자동화된 테스트와 지속적 통합/배포(CI/CD) 환경을 강화하여, 개발자가 협업 과정에서 발생하는 오버헤드 없이 제품의 가치를 높이는 데 집중할 수 있도록 지원합니다. **효율적인 커뮤니케이션과 문서화** * 회의 지상주의를 지양하고, PRD(Product Requirements Document)와 기술 설계 문서를 중심으로 비동기 소통을 활성화합니다. * 모든 실험 결과와 배운 점을 전사적으로 공유하는 문화를 통해 중복된 실수를 방지하고 조직 전체의 학습 속도를 가속화합니다. * 갈등이 발생할 경우 직급이나 권위가 아닌, 데이터와 사용자 가치를 기준으로 의사결정을 내리는 투명한 소통 방식을 고수합니다. 성공적인 협업은 단순히 사이좋게 지내는 것이 아니라, 서로의 전문성을 존중하면서도 하나의 목표(Metric)를 향해 정렬되는 구조를 만드는 데서 시작됩니다. 듀오링고처럼 직군 간의 벽을 허물고 기술과 비즈니스의 언어를 통합하는 조직 문화를 구축한다면, 대규모 조직에서도 스타트업과 같은 빠른 실행력을 유지할 수 있을 것입니다.

쇼피파이가 앞서 (새 탭에서 열림)

혁신적인 제품을 만드는 것은 단순히 프로세스를 개선하는 문제가 아니라, 제품 지사적 마인드를 가진 엔지니어들이 자율성을 가지고 몰입할 수 있는 환경을 구축하는 데 있습니다. 관리자는 세세한 지시 대신 명확한 비전을 제시하고 팀이 성과를 낼 수 있도록 방해 요소를 제거하는 '정원사' 혹은 '방패'의 역할을 수행해야 합니다. 결국 뛰어난 기술력과 사용자 경험을 결합할 수 있는 높은 인재 밀도를 유지하며, 빠른 실행력을 통해 학습하는 문화가 혁신의 핵심입니다. **제품 중심 엔지니어링(Product Engineering)의 지향** - 단순히 주어진 사양(Spec)을 코드로 구현하는 개발자가 아니라, 제품의 목적과 사용자 경험을 깊이 고민하는 '제품 엔지니어'를 채용하고 육성해야 합니다. - 기획과 개발의 경계를 허물어 엔지니어가 직접 사용자와 소통하고 문제를 정의하게 함으로써, 불필요한 커뮤니케이션 비용을 줄이고 결과물의 품질을 높입니다. **높은 인재 밀도와 소규모 팀의 힘** - 뛰어난 인재들은 자신만큼 유능한 동료와 일할 때 가장 큰 동기부여를 얻으므로, 인재 채용 기준을 엄격하게 유지하여 조직의 밀도를 높여야 합니다. - 의사결정 속도를 늦추는 관료주의와 복잡한 보고 체계를 지양하고, 기동성이 뛰어난 소규모 팀 단위로 운영하여 각 팀에 완전한 소유권을 부여합니다. **속도와 모멘텀을 통한 지속적 개선** - 완벽한 계획을 세우는 데 시간을 쓰기보다, 최소 기능 단위로 빠르게 배포하고 실제 사용자 피드백을 통해 제품을 다듬어 나가는 것이 중요합니다. - 지속적인 배포(Continuous Delivery)는 단순한 기술적 프로세스를 넘어, 팀의 활력을 유지하고 시장의 변화에 기민하게 대응하게 하는 원동력이 됩니다. **관리자의 역할 변화: 통제에서 조력으로** - 관리자의 주된 업무는 팀원들을 감시하는 것이 아니라, 회의나 행정 절차 같은 외부의 방해 요소로부터 팀을 보호하는 것입니다. - 세세한 실행 방법(How)을 지시하기보다 제품이 나아가야 할 방향(Why)과 맥락(Context)을 공유하여, 팀원들이 스스로 최선의 결정을 내릴 수 있도록 지원해야 합니다. 혁신적인 제품을 만들고 싶다면 관리자는 '통제권'을 내려놓고 팀원들에게 '맥락'을 제공하는 데 집중해야 합니다. 팀이 직접 사용자의 목소리를 듣고 빠르게 실험할 수 있는 자율성을 가질 때, 비로소 시장의 판도를 바꾸는 혁신이 탄생할 수 있습니다. 당장 우리 팀의 의사결정 구조에서 불필요한 승인 절차를 하나 줄이는 것부터 시작해 보시길 권장합니다.

디자인이 일을 제대로 작동 (새 탭에서 열림)

혁신적인 제품을 만들기 위해 매니저는 단순히 기능을 출시하는 단계를 넘어, 고객의 근본적인 문제를 해결하는 '임팩트' 중심의 사고로 전환해야 합니다. 이를 위해 단순한 기능 나열(Feature Factory)에서 벗어나 깊은 고객 통찰을 바탕으로 팀에 자율성을 부여하고, 실패를 용인하는 문화를 구축하는 것이 핵심입니다. 결국 혁신은 관리의 영역이 아니라, 팀이 최선의 답을 찾을 수 있는 환경을 설계하는 것에서 시작됩니다. ### 기능 공장에서 벗어나 결과(Outcome) 중심 사고로 전환 * 많은 조직이 단순히 백로그의 기능을 빠르게 쳐내는 '기능 공장(Feature Factory)'의 함정에 빠지지만, 이는 제품의 본질적인 성장을 보장하지 않습니다. * 매니저는 '무엇을 만들 것인가(Output)'가 아니라 '어떤 사용자 행동 변화를 이끌어낼 것인가(Outcome)'를 정의하는 데 집중해야 합니다. * 성공의 지표를 코드 배포 횟수가 아닌, 고객이 느끼는 가치와 비즈니스 임팩트로 재설정하여 팀의 우선순위를 정렬해야 합니다. ### 깊은 고객 통찰(Customer Insights)의 내재화 * 데이터 수치만으로는 '왜' 그런 현상이 발생하는지 알 수 없으므로, 정성적인 고객 연구(Qualitative Research)를 제품 개발 프로세스의 핵심으로 통합해야 합니다. * 단순히 고객의 요구사항을 그대로 듣는 것이 아니라, 대화 속에 숨겨진 근본적인 고통(Pain Points)과 미충족 수요를 발견하는 능력이 필요합니다. * 팀원 전체가 고객의 피드백을 직접 접할 수 있는 구조를 만들어, 전사적인 공감대를 형성하고 의사결정의 속도를 높여야 합니다. ### 자율성을 기반으로 한 팀 임파워먼트(Empowerment) * 매니저는 구체적인 솔루션을 지시하는 '커맨드 앤 컨트롤' 방식에서 벗어나, 해결해야 할 '문제'와 '맥락'을 제시하는 가이드 역할을 수행해야 합니다. * 팀이 스스로 문제를 정의하고 해결책을 찾아낼 수 있도록 충분한 권한과 정보를 제공할 때, 비로소 창의적이고 혁신적인 아이디어가 발현됩니다. * 전문성을 가진 팀원들이 각자의 영역에서 최선의 결정을 내릴 수 있도록 신뢰 기반의 협업 환경을 조성하는 것이 매니저의 가장 중요한 책무입니다. ### 심리적 안정감과 실험 문화 구축 * 혁신적인 제품은 수많은 실패의 과정을 거쳐 탄생하므로, 실패를 문책하기보다 '학습의 과정'으로 여기는 심리적 안정감이 필수적입니다. * 가설을 세우고 최소 기능 단위로 빠르게 실험(Iteration)하여 리스크를 줄이되, 대담한 시도를 장려하는 문화를 지향해야 합니다. * 완벽한 제품을 한 번에 내놓으려 하기보다, 지속적인 피드백 루프를 통해 제품을 다듬어 나가는 '지속적 발견(Continuous Discovery)' 과정을 체계화합니다. 매니저는 '관리'하는 사람이 아니라 '환경을 조성하는 사람'이 되어야 합니다. 팀이 고객의 진짜 문제에 집중할 수 있도록 장애물을 제거해주고, 데이터와 통찰이 흐르는 구조를 만드는 데 집중하세요. 기술적인 우수성보다 중요한 것은 고객이 열광하는 '와우 모먼트(Wow Moment)'를 포착하고 이를 제품에 녹여낼 수 있는 팀의 역량을 믿고 지원하는 것입니다.