요즘 하루가 이렇다. 아침에 출근해서 회의를 하고, 미팅을 하고, 누가 물어보는 걸 답하고, 결정할 걸 결정하고 나면 오후 다섯 시쯤 된다. 그때부터 내 개발을 시작한다.

이게 이상하다는 생각은 안 했다. 원래 그랬으니까. 그런데 최근에 들은 조언 두 개가 머릿속에서 계속 부딪히면서 이 하루를 다시 보게 됐다.

두 조언

하나는 행사에서 들은 말이다. 열 명 미만까지는 CTO가 가장 개발을 많이, 잘하는 사람이어야 한다고. 그 이후로는 반대로 CTO가 가장 잘하면 안 되고, 더 잘하는 사람을 적재적소에 쓰는 사람이어야 한다고.

다른 하나는 한 사이클을 다 돌아본 분에게 커피챗에서 들은 말이다. 개발을 언제 놓을지가 중요하다고.

첫 번째는 지금 내 하루를 정당화해준다. 아직은 내가 많이 해야 하는 시기라고. 두 번째는 그 시기가 끝난다는 걸 미리 알아두라는 말로 들렸다.

놓는다는 게 뭔지 모르겠다

“개발을 놓는다"가 정확히 뭘 안 하는 건지부터 애매하다.

코드를 안 쓰는 것인가. 코드 리뷰를 안 하는 것인가. 아키텍처 결정을 안 하는 것인가. 아니면 그냥 하루에 코드 보는 시간을 줄이는 것인가.

지금은 다 한다. 팀이 커졌는데도 내 하루에서 개발이 차지하는 총량은 거의 안 줄었다. 낮에 팀 일을 하는 시간이 늘어난 만큼 저녁이 길어졌을 뿐이다. 이게 “아직 놓지 않은 상태"라면, 놓은 상태는 이 중 뭘 빼는 건지 모르겠다.

낮과 저녁이 다른 일이다

하루를 다시 보니 낮과 저녁이 다른 종류의 일이었다.

낮에 하는 건 다른 사람이 일할 수 있게 만드는 일이다. 막힌 걸 풀어주고, 뭘 먼저 할지 정해주고, 왜 하는지 설명해주고, 다른 팀과 조율한다. 내가 이걸 안 하면 팀이 멈추거나 느려진다.

저녁에 하는 건 내가 직접 만드는 일이다. 내가 안 하면 그 기능이 늦어진다.

전자가 늘고 있고, 갈수록 이쪽이 내 역할이라는 게 느껴진다. 팀 전체가 제 속도로, 아니 그 이상으로 일할 수 있게 만드는 것. 한 사람이 저녁에 몇 시간 더 코드를 쓰는 것보다, 낮에 팀이 막히는 시간을 줄이는 게 팀 전체로는 훨씬 큰 차이를 만든다. 머리로는 안다.

그런데 저녁을 못 놓는다.

놓으면 생기는 문제

이유가 있긴 하다.

내가 모르는 채로 결정하는 상황이 생긴다. 예전에 적어둔 적이 있는데, 내가 책임지는 서비스는 다 알고 있어야 한다고 생각해왔다. 모르는 채로 결정을 내리는 게 제일 무섭다고. 코드를 놓으면 그 앎이 옅어진다. 옅어진 채로 기술 결정을 내리면 그건 결정이 아니라 추측이다.

그리고 솔직히 이건 두려움이기도 하다. 코드를 놓으면 나는 뭐가 남나. 회사 밖에서 사람을 만나면 나는 아직도 개발자라고 소개한다. 그게 편하다. 그걸 놓는다는 게 타이틀만 남기고 실체를 비우는 것 같아서 싫다.

아직 정한 건 없다

두 조언을 나란히 놓고 보면 사실 충돌하는 게 아니다. 순서의 문제다. 지금은 많이 하고, 어느 시점에 놓는다. 문제는 그 시점을 누가 알려주느냐다.

열 명이라는 숫자는 기준이 되기엔 너무 깔끔하다. 어느 날 갑자기 스위치가 켜지진 않을 것이다. 아마 어느 순간 내가 리뷰를 못 따라가고 있다는 걸 알게 되거나, 내 결정보다 팀원의 결정이 더 나았던 일이 몇 번 쌓이거나, 저녁에 시작한 개발이 자꾸 다음 날로 넘어가거나, 그런 식으로 알게 될 것 같다.

돌이켜보면 그 신호는 이미 조금씩 오고 있는지도 모른다. 오후 다섯 시에 시작하는 개발이 그 신호일 수도 있다.

그 신호를 놓치지 않으려면 지금부터 봐야 한다. 그래서 적어둔다. 지금은 낮에 팀 일을 하고 저녁에 개발을 하고, 그게 맞다고 믿고 있고, 이 믿음에는 유효기간이 있다.

커피챗에서 들은 다른 말도 같이 적어둔다. 3년 뒤를 정확히 정의할 순 없어도 고민과 새로운 지식 습득을 멈추지 말라고. 놓는 시점이 언제든, 그때까지 계속 배우고 있어야 놓아도 앎이 안 옅어질 것이다. 그건 지금 할 수 있는 일이다.