소프트웨어 엔지니어로서 ‘유용함’에 대한 내적 강박이 어떻게 나를 움직이고, 그 강박을 보상으로 이어지게 하면서도 함정을 피하려고 노력하는지에 대한 글.
친구들 중 업계에서 일하는 사람들과 함께 시간을 보낼 때면, 내가 내 일을 얼마나 좋아하는지에 대해 약간의 죄책감을 느낀다. 지금은 소프트웨어 엔지니어로 일하기에 힘든 시기다. 2010년대 후반에는 지금보다 일이 덜 스트레스였고, 그 변화에 화가 난 사람들에게 나는 공감한다. 일 때문에 기분이 나쁠 수밖에 없는 객관적인 이유들이 많이 있다. 그런데도 나는 여전히 신이 난다. 프로젝트를 한데 모으고, 어려운 버그를 파헤치고, 전반적으로 코드를 쓰는 일을 즐긴다. 나는 컴퓨터와 시간을 보내는 게 좋다. 하지만 내가 정말로 사랑하는 것은 유용해지는 것이다.
고골의 단편소설 외투의 주인공은 아카키 아카예비치라는 남자다1. 아카키의 일은 객관적으로 끔찍하다. 그는 앞이 막힌 필사(베껴쓰기) 업무에 갇혀 있고, 급여도 매우 적으며, 동료들도 그를 존중하지 않는다. 그럼에도 그는 일을 사랑한다. 집에 가져갈 일이 없으면, 그냥 자기만족을 위해 오락 삼아 베껴 쓰기까지 할 정도다. 아카키는 기능적으로 문제가 있는 사람이다. 하지만 그 문제는 그를 그의 직업에 완벽하게 맞는 사람으로 만든다2.
나는 문제를 보면 해결하지 않고는 지나치기 어렵다. 특히 내가 그 문제를 해결할 수 있는 유일한 사람(혹은 거의 유일한 사람)일 때, 또는 누군가가 내 도움을 요청할 때는 더 그렇다. 나는 그걸 두고 거의 신체적인 불편함을 느끼고, 실제로 가서 문제를 해결하면 그에 상응하는 안도감과 만족감을 느낀다. 소프트웨어 엔지니어의 일—적어도 스태프 소프트웨어 엔지니어로서 내가 하는 일—은 이런 성향에 완벽하게 맞춰져 있다. 매일 사람들은 내가 일련의 기술적 문제들을 해결해주길 기대한다3.
다시 말해, 아카키 아카예비치처럼 나도 내 직업이 기능적으로 어긋난 부분들을 크게 개의치 않는다. 그 어긋남이, 나 자신이 어긋난 방식과 맞아떨어지기 때문이다. 구체적으로 말하면 유용해지는 것에 대한 나의 중독과 말이다. (물론 내 근무 환경이 전반적으로 아카키보다 훨씬 낫다는 점도 도움이 된다.) 나는 어떤 면에서는 일하는 개와 비슷하다. 일하는 개들은 간식으로 보상을 받지만4, 간식을 위해서 일하지는 않는다. 그들은 일 그 자체를 위해 일한다. 일 자체가 본질적으로 만족스럽기 때문이다.
이게 모든 소프트웨어 엔지니어에게 해당되는 건 아니다. 하지만 내가 만난 많은 사람들에게는 확실히 해당된다. 유용해지는 것에 대한 중독이 아니라면, 퍼즐을 푸는 것에 대한 중독이거나, 소프트웨어나 수학에서만 진짜로 얻을 수 있는 ‘내 산출물에 대한 완전한 통제’에 대한 중독 같은 것이다. 만약 그들이 소프트웨어 엔지니어로 일하지 않았다면, Factorio에 심취했을 수도 있고, 크로스워드 퍼즐에 빠졌을 수도 있고, 어떤 인터넷 커뮤니티를 폭군처럼 조정하며 관리했을 수도 있다.
내가 소프트웨어 엔지니어라는 직업을 어떻게 하면 잘할 수 있는지에 대해 자주 하는 조언들 중 상당수는, 사실 ‘유용해지고 싶어 하는 나의 욕구’를 물질적 보상으로 연결되도록 내가 어떻게 형태를 잡아왔는지, 그리고 그런 욕구가 가진 함정을 어떻게 피하려고 하는지에 관한 것이다. 예를 들어, 대형 테크 기업에서 포식자들로부터 내 시간을 지키기는 회사 안의 어떤 사람들이 나 같은 사람을 알아보고, 오로지 자기에게만 이득이 되도록 우리를 쥐어짜는 방식에 관한 글이다. JIRA 티켓 부수기는 파티 트릭이지, 임팩트로 가는 길이 아니다는 내가 티켓 큐가 아니라 _내 관리 체계(매니지먼트 라인)_에 유용해야 한다는 점에 관한 글이다. 존중하지 않는 사람들에게 잘 보이려 하기는 내가 존중하지 않거나 심지어 좋아하지도 않는 사람들에게도 유용해져야 한다는 강박을 어떻게 감당하는지에 관한 글이다.
인터넷에는 소프트웨어 엔지니어를 움직여야 하는 동기가 무엇인지(무엇이어야 하는지)에 대한 논의가 많다. 돈과 권력, 진짜 가치를 만들어내는 것, AI 기계신을 강림시키는 것 등등. 하지만 소프트웨어 엔지니어를 실제로 움직이는 것은 종종 그런 외부적 목표라기보다는 내적인 강박에 더 가깝다. 당신이 그 범주에 속한다면—아마 우리 대부분이 그렇다고 나는 의심한다—그 강박을 가장 효과적으로 활용할 방법이 무엇인지 알아내는 데 시간과 노력을 들일 가치가 있다.
↩ 2. 불행히도 아카키의 낮은 지위와 낮은 급여는 결국 그를 따라잡는다. 추운 러시아 겨울을 나기 위해 새 외투를 마련하는 과정에서 겪는 재정적 어려움(그리고 그의 줏대 없음)이 결국 그를 무너뜨리고, 그 지점부터 이야기는 유령 이야기로 바뀐다.
↩ 3. 여기서 나는 ‘기술적 문제’를 꽤 넓게 해석한다. 질문에 답하기, 설명하기, 버그 수정은 모두 여기에 포함된다.
↩ 4. 또는 장난감, 또는 놀이 시간, 또는 뭐든.
이 글이 좋았다면, 새 글 이메일 업데이트를 받기 위해 구독하는 것을 고려해 보거나, Hacker News에 공유해보길 바란다. 아래는 이 글과 태그가 겹치는 관련 글의 미리보기다.
대규모 소프트웨어 제품이 어떻게 동작하는지 아무도 모른다
크고 빠르게 움직이는 테크 기업들은 자기들 시스템에 대해 끊임없이 ‘전장의 안개(fog of war)’ 속에서 운영된다. “Y 타입의 사용자가 X 기능에 접근할 수 있나?”, “이 상황에서 Z 행동을 하면 무슨 일이 일어나나?”, 또는 “우리는 서로 다른 요금제를 몇 개나 제공하나” 같은 단순한 질문들조차 조직 내 소수의 사람만 답할 수 있는 경우가 많다. 때로는 그런 질문에 답할 수 있는 사람이 조직에 _0명_인 경우도 있고, 누군가는 연구자처럼 파고들어 알아내는 일을 맡아야 한다.