항상 그만두기
잊을만하면 개발자들 사이에서 회자되는 농담이 있다.
”코드를 다른 개발자가 읽기 어렵게 만들고, 나만 고칠 수 있도록 하면 평생 직장을 얻을 수 있다”
코드를 복잡하게 짜서 직장 내 철밥통을 만드는 전략(?)이라는 얘기다.
심지어 유지보수하기 어렵게 코딩하는 법이라는 책도 있다.
(참고로 이 책은 반어법으로 나쁜 예시를 들어주며 좋은 소프트웨어 개발 방법을 알려주는 꽤난 진지한 책이다.)
그런데 역설적이게도, 진짜 철밥통을 지키는 방법은 철밥통을 언제든 차버릴 수 있을 때 가능하다. 지금부터 그 얘기를 해보려 한다.
약 3년 전, 개발 커뮤니티에서 항상 그만두기라는 글을 읽었다.
이 글에 감명받아 나는 회사 Github에 ABQ
라는 이름의 퍼블릭 저장소를 만들었다.
그리고 거기에 이런 걸 모아두기 시작했다:
- 복잡한 히스토리와 나만 아는 내용 문서화
- 이해하기 힘든 과거 의사결정 기록
- 미래에 누군가(내 업무를 인수인계 받을)에게 전수할 인수인계 준비 리스트
결과는 어땠을까? 놀랍게도, 이 작업을 하면서 정말이지 마음이 편해졌다.
언제든 떠날 준비가 되어 있다는 사실은 내가 더 책임감 있게 일하도록 만들어줬다.
예를 들면 시간이 날 때면 팀에서 오로지 나만 알고 있는 내용이나 문제들을 동료에게 전달하고, 전파하고 교육하고 문제를 제기했다.
그렇게 팀에서 하나하나 대체 불가능한 나를 제거해 나갔다.
그리고 퇴사를 결심한 날, 난 ABQ 저장소의 TODO 리스트를 하나씩 마무리했다.
인수인계를 끝낸 뒤, 밀린 4주치 휴가도 마음 편히 써버렸다.
그 사이, 오프보딩 문서를 작성하며 팀에서 스스로를 조용히 ‘Deprecated’ 처리했다.
이렇게 부드러운 인수인계와 함께 나는 회사를 떠났다.
여기서 중요한 건, ‘항상 그만두기’ 철학이 무책임함을 조장하는 게 아니라는 점이다.
오히려, 매일 당장 그만둘 준비가 되어 있는가?를 스스로에게 묻는 과정에서 더 신중한 의사결정을 하게 된다.
업무를 할 때 ‘내가 지금 하는 일이 누군가에게 전수할만할 정도로 정말 가치가 있는가?’ 그리고 ‘팀도 이 일을 할 수 있는가?’ 라는 트럭팩터를 높이는 질문을 자연스레 떠올리게 된다.
언젠가 온보딩 할 누군가를 위해 내 업무의 Getting Started
를 작성하는 느낌이라고 보면 된다.
이 철학은 결국 나를 자연스럽게 다음 창업 단계로 자연스레 이끌어줬다.
오늘도 나는 이렇게 믿는다.
”언제든 떠날 준비가 된 사람만이 진정으로 그 자리에서 책임감을 가지고 임무를 완수할 수 있다.”
그러니, 지금 당신도 Github에 ABQ 저장소를 만들어 보시라.
ps. 만약 보스가 ‘ABQ가 뭐냐?‘고 물으면 싱긋 웃으며 이렇게 대답하자.
”Always Build Quality.” 입니다. 그래도 아직 당신의 직장은 소중하니까. 😉
[참고자료]
- 구글 엔지니어는 이렇게 일한다 / 타이터스 윈터스, 톰 맨쉬렉, 하이럼 라이트 큐레이션 개앞매시 옮김 / 초판 1쇄 발행: 2022년 5월 10일 / 원제: Software Engineering at Google
- 항상 그만두기 / GeekNews 2021-06-12 / 원문: Always be quitting - Julio Merino (jmmv.dev)