6/4/2025
Timothy @ Daangn Frontend Core
Software Engineer, Frontend @Daangn Frontend Core Team
ex) Senior Lead Software Engineer @NHN Dooray (2021 ~ 2023)
ex) Lead Software Engineer @ProtoPie (2016 ~ 2021)
ex) Microsoft MVP
이 웅재
플랫폼 엔지니어링의 일정이 일반적인 애플리케이션 엔지니어링의 일정보다 훨씬 길다.
새로운 시스템을 구축하고, 테스트하고, 마이그레이션하는 데는
회사의 규모에 따라 몇 달에서 몇 년까지 걸릴 수 있다.
플랫폼 팀이 수개월간 사용자가 볼 수 있는 결과물을 전혀 제공하지 못하고,
그저 프로젝트의 실현 가능성을 입증하는 정도의 성과만 내면서 작업을 이어가는 경우도 드물지 않다.
customer impact 가 발휘되길 기다리기 싫어한다면
플랫폼 작업 내내 인내심을 시험 받을 수 있다.
플랫폼 리더로서 큰 규모의 장기 프로젝트를 감독하고
팀이 프로젝트를 점진적인 마일스톤으로 나누는 작업을 돕는데 익숙해져야 한다.
팀은 마일스톤과 논의 지점 파악을 도우면서 자신들의 노력을 올바른 방향으로 이끌어 주는 리더를 필요로 한다.
리더십을 발휘하기에 가장 좋은 출발점은
진행할 프로젝트가 구체적으로 무엇인지 명확히 하는 것
달성하고자 하는 바를 모든 관계자에게 납득시킬 필요가 있다.
프로젝트 리더는 아이디어를 제안서나 요구사항 문서 형태로 문서화해서
경영진이나 기타 엔지니어들이 평가하고 검토할 수 있게 해야 한다.
전통적인 엔지니어링 설계 문서와 다름
아마존 스타일의 6페이지 문서 같은 것이 있음
문서 형식이 어떻든, 제안서 작성에서 가장 중요한 것은 5가지 핵심 요소를 포함하는 것
배경, 원칙, 가이드라인
문제의 세부사항
가능한 해결책 개요
제안하는 해결책과 근거
실행 계획
배경, 원칙, 가이드라인
현재 상황을 설명하고 여기까지 오게 된 관련 정보를 제공한다.
예시와 같은 핵심 원칙, 요구사항, 가이드라인을 명시한다.
"cross regional failover 를 지원해야 한다."
"향후 Y개월 이내에 X의 확장을 지원할 준비가 되어야 한다."
현재 상태를 문서화하여 기준선을 설정하면
근본적인 의견 차이를 프로세스 초기에 해결할 수 있다.
문제의 세부사항
가능한 해결책 개요
제안하는 해결책과 근거
실행 계획
배경, 원칙, 가이드라인
문제의 세부사항
해결해야 할 문제를 깊이 있게 다루는 섹션
해결책을 설명하기 전에 문제를 서술하라 - 레슬리 램포트
해결책을 제시하기 전에 문제를 개략적으로 설명하면
제안된 것 이외의 가능한 해결책을 상상하기 쉽다
프로젝트 리더가 문제를 잘 이해하지 못하는 부분을 드러내서
리더가 더 많은 세부사항을 수집하고
제안하는 내용을 완전히 이해하도록 만드는 데에도 도움이 된다.
가능한 해결책 개요
제안하는 해결책과 근거
실행 계획
배경, 원칙, 가이드라인
문제의 세부사항
가능한 해결책 개요
합리적인 해결 방안들을 모두 나열하고 각각의 주요 장단점을 공정하게 평가
하나의 해결책을 정하기 전에 이 단계를 거치면, 이미 제외한 해결책을 누군가가 제시하는 일을 미리 방지할 수 있다.
장단점들을 개인적으로 고찰하고 상반된 두 가지 의견을 모두 제시하기도 함
제안하는 해결책과 근거
실행 계획
배경, 원칙, 가이드라인
문제의 세부사항
가능한 해결책 개요
제안하는 해결책과 근거
선택한 해결책을 제시하고, 시간적 제약 등의 제약 조건과 기타 관련 요소를 분석하여 결정의 근거를 설명한다.
청중을 설득하는데 필요한 만큼 시간을 할애한다.
그렇다고 너무 긴 문서말고 상위 3 ~ 5개 요소를 추려서 이들을 다른 고려 사항보다 우선시 해야 하는 이유를 주장하는 것이 적당
실행 계획
배경, 원칙, 가이드라인
문제의 세부사항
가능한 해결책 개요
제안하는 해결책과 근거
실행 계획
제안서에서는 너무 상세한 것이 아니라 구현의 전체적인 상을 그리는 데 주력해야 한다.
완료란 어떤 모습이며, 일정이 어느 정도인지를 서술
초기에서 중기까지의 마일스톤과 성공 측정 지표 제시
비기술적 문제도 포함 (시기, 인력 배치, 조직에 미치는 영향)
경영진 및 선임 엔지니어들과 함께 한번 이상 회의를 열어 장단점을 논의하고 동의를 구한다.
어떤 방식이든 이러한 회의의 목표는 아래 내용에 대해 동의하게 만드는 것
프로젝트가 가치가 있다는 점
구현 비용을 추정하고 작업 시작에 대한 최종 승인을 받기 위한 실행 계획을 수립해야 한다는 점
제안 승인 후 구현에 들어가기 전에 해야 할 문서 작업
기술적 측면이 잘 고려되었는지 확인하기 위한 "상세한 설계서"
- 선임 엔지니어들이 리뷰
제안서보다 훨씬 자세한 내용을 담은 "실행 계획" 문서
테스트와 승인 기준
의존성 분석
인력 추정
도입 추진
이정표 (마일스톤)
테스트와 승인 기준
테스트 계획서의 작성과 프로젝트 실행 과정에서 테스트 계획을 추적
테스트에 승인 기준도 포함
의존성 분석
인력 추정
도입 추진
이정표 (마일스톤)
테스트와 승인 기준
의존성 분석
어떤 다른 팀들이 이 프로젝트에서 작업해야 하는가?
프로젝트가 다른 시스템과 통합되어야 하는가?
해당 시스템을 소유한 팀의 동의와 가능한 참여를 얻었는가?
프로젝트의 의존성이 많을수록 프로젝트 전달이 어려워진다.
프로젝트의 전달을 완료하기 위해 고객의 마이그레이션이 필요하다면 마이그레이션은 프로젝트 제안서의 일부로 추정해야 할 중요한 의존성 분석 대상이다.
인력 추정
도입 추진
이정표 (마일스톤)
테스트와 승인 기준
의존성 분석
인력 추정
프로젝트의 핵심 엔지니어링에 필요한 엔지니어 수를 예상하고 추정
테스트, 통합, 마이그레이션 등을 위한 일시적인 인력 증원이 필요한지도 고려
도입 추진
이정표 (마일스톤)
테스트와 승인 기준
의존성 분석
인력 추정
도입 추진
내부 시스템 구성요소가 아니라 다른 엔지니어들이 직접 사용할 것을 만드는 경우, 도입을 추진할 계획이 있어야 한다.
팀이 무엇을 만들고 있는지 홍보해서 고객이 제품의 목적을 이해하고 사용하고 싶어 하게 만들 계획을 세워야 한다.
이름을 무엇이라고 할까? 얼리 어답터가 될 팀이 있는가? 문서가 필요한가? 사용법을 가르쳐야 할까? 발표나 블로그 등의 마케팅 활동이 필요할까? 출시를 어떻게 알릴까?
이정표 (마일스톤)
테스트와 승인 기준
의존성 분석
인력 추정
도입 추진
이정표 (마일스톤)
구현 작업을 일련의 이정표로 표현
처음 12개월은 상세하게, 기본적으로 월별 이정표
분기별 이정표는 후반부에 명확하지 않을때
기술적 역량 전달뿐만 아니라 비즈니스 성과도 지원하는 이정표는 많을수록 좋다.
왜요?
너무 일찍 투입하면 팀원들이 자신감을 가지는 것이 아니라, 팀에 일정 관리 관료주의가 생겨나서 엔지니어링 리드와 제품 관리자의 참여가 줄어든다.
계획 수립에 그들이 의견이 반영되지 않으면 추정치가 지나치게 보수적이고 부정확해지는 경우가 많다.
그래서 일정 관리의 세부사항이 프로젝트에 중대한 위험이 되는 경우에만 프로젝트 관리자를 투입하라고 조언한다.
다음과 같은 경우라면 프로젝트 관리자를 두어도 좋다
프로젝트에 확고한 마감일이 있는 경우
프로젝트에 작업 의존성이 아주 많은 경우
회사 문화가 협력하기 어려운 경우
"이번 OKR 에 포함되지 않아 다음 분기까지 기다려주세요"
합리적인 플랫폼 프로젝트가 끝없는 생고생으로 변하는 이유 알아보기
과욕
너무 크게 시작하기
불명확한 문제 영역
프로젝트 팀원 이직
이 플랫폼은 안정성이 형편없어... 게다가 기능을 제때 출시하지도 못해!
기능 전달 일정에 대한 기대치를 관리할 계획이 없으면 플랫폼 팀은 운영 업무를 소홀히 하게 되고, 결국 운영 지옥에 빠지게 된다.
시스템의 복잡도가 높아지고, 팀은 기술 부채를 만드는 땜질식 패치로 문제를 해결한다.
새로운 기능의 약속된 마감일을 지키지 못하고, 반복되는 운영 문제를 겪으며, 고객을 실망시킨다.
과도한 운영 업무와 스트레스로 엔지니어가 번아웃 된다.
이러한 결과를 피하려면 기능 전달 계획에 플랫폼 운영과 운영 개선에 필요한 작업을 추가해야 한다. 추정이 필요한 세 가지 작업 영역
Keep the lights on 작업
경영진 지시사항
시스템 개선
그냥 "운영" 이라고 부르는 조직도 있음
향후 12개월 동안 비즈니스 운영에 절대적으로 필요한, 엔지니어링 팀의 진정한 필수 운영 작업을 뜻함
예시
온콜 사고 대응 인력 배치
필수 사용자 지원 인력 배치 (온콜 또는 정규)
운영 및 보안 사고 해결과 중요 사후 분석 조치 사항 처리
하향식 명령으로, 경영진이 반드시 수행해야 한다고 말하는 것들
엄격한 일정이 정해져 있을 때도 많다.
예시
다른 플랫폼 및 인프라 팀이 주도하는 마이그레이션
새로운 클라우드 제공업체로의 이전, 인수 후 통합, 새로운 리전 구축 등의 인프라 계획
회사의 규정준수, 보안 또는 운영 태세를 개선하기 위한 계획
오래된 오픈소스 의존성 제거 또는 HIPAA 규정 준수
지역(로컬) 우선순위를 무시하는 대규모의 "전략적" 비즈니스 계획
모든 제품에 AI 기능을 대폭 추가해야 한다.
경영진 지시사항은 계획 수립에 모순을 초래한다.
이랬다 저랬다. 최악
정치적 감각으로 경영진과의 원할한 소통이 필요하다.
계획이 완벽해도 문제는 생긴다.
예상치 못한 일이 발생하고 일정이 바뀐다.
아무것도 진행되지 않는다고 생각할 수 있다.
조직이 커지면서 확신하지 못한다.
이를 해결하기 위해 ' 성과 및 난제 (Wins and Challenges) '라는 활동을 사용한다.
(언제) 2주마다 조직의 위계구조를 따라 올라가면서,
따라 올라간다 - 직속 관리자가 팀의 업데이트를 작성하고, 위계에서 그 위에 있는 각 수준은 그 업데이트 중 아래 수준에게 가장 중요하고 흥미롭거나 영향력 있는 내용을 선택해서 더 넓은 대상이 이해할 수 있도록 필요에 따라 다시 작성한다
(무엇을) 지난 2주 동안의 성과(Wins)와 문제점 혹은 난제(Challenges)를
(어떻게) 간결한 글머리 목록(bullet list) 형태로 작성한다.
이런 활동은 팀과 관리자들에게 다른 팀의 활동 상황을 적절한 수준에서 파악할 수 있는 가볍고도 정기적인 방법을 제공한다.
플랫폼 엔지니어링 팀은 장기적이고 이해하기 어려운 프로젝트를 수행하는 경우가 많다.
자신들의 업무 가치와 영향력을 설명하는 데 다른 팀들보다 더 많은 시간을 들여야 한다.
이해와 신뢰를 구축해야 한다.
이 활동이 최고다.
성과들
요점 1
요점 2
난제들
난제 1
난제 2
먼저 굵은 글씨의 짧은 요약으로 시작한 다음, 상황, 조치, 결과를 각기 한두 문장으로 설명
상황 - 조치를 취하기 전의 상황은 어땠는가
조치 - 그 상황을 해결하기 위해 무엇을 했는가
결과 - 조치가 상황에 어떤 영향을 미쳤는가 가능하면 수치로
주요 이니셔티브 관련 소식. 이정표 달성이나 지연 등.
인사 관련 소식. 팀원 이탈이나 합류, 팀 분할, 조직 개편 등.
운영 관련 소식. 사건 사고 보고, 좋은(사고 수나 페이지 호출 수 기준) 주간 성과 축하, 나쁜 성과 인정 등
제품이나 엔지니어링 지표의 변화. 성능 개선, 비용 절감, 도입 이정표, 고객 만족도 조사 변화, 주목할 만한 고객 피드백 등.
내부 건정성 모니터링
외부 신뢰 구축
협업 관련 난제들을 공유할 때는 신중
파트너 팀의 지도층과 상의 먼저
대응할 기회도 주지 않고 깐거 같은
반복적인 실천 중요
주기가 맞지 않는다는 것은 변명
팀의 실행 및 전달을 책임지는 사람이 팀원들의 업데이트 작성을 관리해야 한다.
가장 영향력 있는 업데이트를 더 널리 공유할 책임도 있다.
대부분 엔지니어링 관리자
다른 모든 이들이게 적극적으로 공유해야 한다.