'시니어 엔지니어는 거절할 줄 아는 사람이다.' 새 프레임워크에 노, 전면 재작성에 노, 마이크로서비스에 노, 금요일까지 해달라는 PM의 기능 요청에 노. '최고의 코드는 없는 코드'라는 격언과 함께, 거절은 연차의 상징처럼 여겨져 왔죠. 그런데 이 통념을 정면으로 반박하는 글을 읽었는데요, 주장이 꽤 도발적이에요. '노는 초급 기술이다.'
왜 '노'가 초급 기술인가
논리가 재미있어요. 만들어지지 않은 시스템 때문에 새벽 3시에 호출당한 사람은 없어요. 그래서 거절하는 사람은 판단력 있다는 평판을 쌓지만, 그 판단이 옳았다는 증거는 하나도 쌓이지 않아요. 그의 실적은 '일어나지 않은 재앙의 목록'인데, 이건 반증이 불가능하니까 공짜로 얻는 평판이라는 거죠. 반면 시니어의 기술은 '안전하게 예스하기'예요. 위험한 마이그레이션을 거절하는 건 누구나 할 수 있어요. 저자가 팀에 원하는 엔지니어는 이렇게 말하는 사람이에요. '네, 마이그레이션 할 수 있어요. 여기 실제 트래픽을 복제해서 새 시스템에 흘려보는 섀도 트래픽 구성이 있고, 여기 롤백 경로가 있고, 우리가 틀렸다면 한 시간 안에 알려줄 지표가 여기 있어요.' 예스는 엔지니어링으로 방어해야 하는 주장이고, 노는 분위기와 연차로 방어하는 주장이라는 거예요.
아무것도 막지 않는 엔지니어
저자가 이 생각을 하게 된 계기는 함께 일한 어떤 동료 때문이었대요. 다나라고 부르는 이 엔지니어는 아무것도 막지 않았어요. 대신 끔찍한 아이디어가 그를 거치면 모습이 바뀌어서 돌아왔어요. 범위가 줄고, 계측이 붙고, 되돌릴 수 있게 돼서요. 금요일까지 기능을 원하던 PM은 실제로 금요일에 기능을 받았어요. 다만 피처 플래그(코드 배포와 기능 공개를 분리해서, 스위치처럼 켜고 끌 수 있게 하는 장치) 뒤에서, 사용자 2%에게만, 킬 스위치와 함께요. 나쁜 아이디어는 보통 일주일 안에 데이터로 정체를 드러내고 조용히 죽었고, PM은 엔지니어링팀에 대한 원한 대신 진짜 배움을 얻었대요. 그리고 가끔은 끔찍해 보이던 아이디어가 옳았던 걸로 판명 났는데, 이건 어떤 아키텍처 리뷰로도 얻을 수 없는 정보였다는 거죠.
경제학으로 따져보면
거절하는 팀은 아무것도 배우지 못해요. 가설은 검증되지 않은 채 분기마다 백로그로 돌아와서, 매번 기획 회의 시간을 세금처럼 잡아먹어요. 안전하게 예스하는 팀은 '플래그 뒤에서 일주일'이라는 한정된 비용을 내고 답을 사는 거고요. 저자의 표현을 빌리면, 노는 나쁜 아이디어를 죽이지 못해요. 증거만이 죽여요. 노는 그냥 아이디어를 냉동실에 넣어둘 뿐이에요. 물론 진짜 노도 있어요. 컴플라이언스, 보안, 데이터 손실처럼 피해 범위를 한정할 수 없는 것들요. 그런데 이런 건 정확히 '구조적인' 노예요. 비밀번호를 평문으로 저장하지 말라는 데에 백발의 현자가 필요하진 않잖아요. 연차가 있어야만 전달할 수 있는 노는 대부분 수상한 노라는 거죠. 영역 방어이거나, 편안함이거나, 지난 아키텍처에 들인 매몰 비용이거나요.
반대쪽 함정도 짚어요. 모든 것에 동의하고 잔해만 배달하는 예스맨요. 그런데 예스맨과 노맨은 같은 실수를 한대요. 메커니즘을 줘야 할 자리에 답을 주는 거요. 예스는 결과에 대한 약속이 아니라 '실험을 제대로 돌리겠다'는 약속이에요. 전제 조건도 솔직하게 인정해요. 이 방식은 피처 플래그, 관측 도구, 대시보드를 읽는 팀이 있어야 가능한데, 없다면 첫 번째 '안전한 예스' 프로젝트가 바로 그 인프라를 만드는 일이래요. 그리고 거절을 아예 하지 말라는 게 아니라, 거절에도 비용이 붙어야 한대요. '어떤 증거가 나오면 내 생각을 바꾸겠다'를 적은 설계 문서 같은 것으로요.
한국 조직에서는
우리 조직 문화에서는 애초에 거절 자체가 어렵다는 분들이 많으실 텐데요, 그래서 오히려 이 프레임이 실용적일 수 있어요. '안 됩니다' 대신 '이 조건이면 됩니다'는 관계를 깨지 않으면서 위험을 관리하는 언어거든요. 거절할 힘이 없는 주니어에게도, 거절이 습관이 된 시니어에게도 각기 다른 방식으로 유효한 조언이에요.
한 줄 정리: 노는 브레이크고, 브레이크를 먼저 배우는 건 맞지만, 결국 일은 운전이다. 여러분 팀에서는 나쁜 아이디어가 어디서 죽나요? 회의실에서 죽나요, 데이터로 죽나요? 그리고 '안전한 예스'를 하고 싶어도 피처 플래그나 관측 인프라가 없다면, 어디서부터 시작하는 게 좋을까요?
🔗 출처: Hacker News