brunch

You can make anything
by writing

C.S.Lewis

by 박재성 Aug 05. 2023

push가 아닌 pull로 살기

push가 아닌 pull로 살기라니. 뚱딴지 같이 무슨 말일까? 소프트웨어 업계에서 소스 코드 관리를 위해 사용하는 git의 push와 pull인가? 의미상으로 git의 push와 pull이 맞다. 개발자와 교육자의 삶을 살면서 push가 아닌 pull로 산 경험을 몇 번 했는데 이 경험들이 관통하는 부분이 있어 공유해 보려 한다.


pull인지도 몰랐던 pull 경험

개발자의 길을 걷기 시작한 후 4개월 즈음이 지났을까? 신입사원으로 입사한 4명이 자바지기(javajigi.net) 커뮤니티를 시작했다. 새롭게 알게 된 지식을 강의 문서로 만들어 공유하고, 다른 개발자의 질문에 답변을 하는 공간이었다. 강의 문서를 만들고, 질문에 일일이 답변하는 것이 귀찮을 때도 있었지만 공유한 강의 문서와 답변에 도움을 받는다는 피드백에 힘을 얻어 꾸준히 지속할 수 있었다.


그렇게 3년 이상을 꾸준히 커뮤니티 활동을 했을까? 그러던 어느 날 출판사로부터 책을 출판하자는 제안을 받았다. 아직 개발 경력이 3년도 되지 않은 상태로 책을 출판하는 것이 망설여졌지만 용기를 내어 첫 번째 책(XML 실전 프로그래밍)을 출간했다. 첫 번째 책 출간에 용기가 난 것일까? 뒤이어 회사까지 그만두고 두 번째 책(스트럿츠 프레임워크 워크북)을 출간했다.


나는 나를 위해 지식을 정리하고, 질문에 답변을 하면서 빠르게 문제를 해결하는 역량을 쌓기 위해 꾸준히 활동한 것뿐이다. 내가 책을 쓰기 위해 출판사의 문을 두드린 것이 아니라 출판사가 나를 찾아온 첫 번째 pull 경험이었다.


업무 배정에서의 pull 방식

개발 경력 6년 차가 되었을 때 처음으로 팀장이 되었다. 팀장 업무 중 싫은 일 중의 하나가 새로운 일이 생겼을 때 이 일을 누구에게 할당하느냐였다. 자신의 성장을 위해 도전적이고, 성과로 인정받을 수 있는 일은 모든 팀원이 하려고 한다. 반면 배움도 적으면서 성과로 인정받기도 어려운 일은 모두가 피하는 것이 인지상정이다. 이런 마음을 알기에 새로운 일이 생길 때마다 누구에게 일을 배정하느냐는 정말 스트레스받는 일 중의 하나였다.


팀장을 시작한 직후에는 달리 방법이 없기 때문에 기존과 같이 나의 주도하에 업무를 분배(push방식)했다. 그러던 어느 날 우연히 읽은 글에서 pull 방식으로 업무를 배정한다는 글을 봤다. 무슨 말이지? pull 방식이라니. 너무 생소했다. 하지만 내가 지금까지 안고 있었던 고민을 해결해 줄 수 있지 않을까라는 마음으로 pull 방식으로 일하는 방법에 대해 몰입했고, 결과적으로 맞았다. pull 방식이 나의 고민을 해결해 주었다. 

pull 방식의 업무 배정 방식에 대해 간단히 설명하면 다음과 같다. 업무를 최대한 독립적인 작은 단위로 나눈다. 이렇게 나눈 각 업무에 대한 우선순위를 팀원 전체가 모여 결정한다. 팀원들은 이렇게 정한 업무 중 우선순위가 가장 높은 업무를 자신에게 할당(pull 방식)해 업무를 진행한다. 이 과정을 반복하는 것이다. 지금까지 회원 관리, 상품 관리, 주문과 같이 큰 단위로 업무를 분리하고 배정했다면 pull 방식은 각각의 큰 단위를 더 작은 단위로 분리할 필요가 있다.


pull 방식으로 일할 경우 얻게 되는 장점이 많다. 첫째는 리더의 부담감이 줄어든다. 사실 이 부담감 때문에 팀장인 내가 주도한 것이다. 둘째는 우선순위가 높은 업무를 먼저 진행할 수 있다. 큰 단위로 업무를 배분할 경우 우선순위가 낮음에도 불구하고 개발자의 구현 속도가 빠르거나, 우선순위가 높은데 담당 개발자가 휴가로 자리를 비울경우 늦게 마무리될 가능성이 발생한다. 셋째는 특정 개발자에게 업무가 몰리는 상황을 방지할 수 있다. 보통의 경우 개발 역량이 뛰어나고 일을 잘하면 중요한 업무가 배정되고, 더 많은 일이 몰리는 상황이 발생할 수 있다. pull 방식은 이런 문제점을 해결할 수 있다. 넷째는 자신이 맡은 일에 대한 주도성이 높아진다. 대부분의 사람은 내가 아닌 누군가 시키는 일은 더 하기 싫다. 똑같은 일임에도 불구하고 그렇다. 청개구리 효과라고 할 수 있을까? 그런데 pull 방식은 같은 일이지만 내가 나 자신에게 할당하는 방식이다. 작은 차이일 수 있지만 일을 대하는 태도가 달라진다고 생각한다.


단, pull 방식은 기존의 push 방식에 비해 팀의 문화로 만드는데 더 많은 시간과 노력이 필요하다. 또한 팀원들이 자기 주도적으로 업무를 배정할 것이라는 믿음이 필요하다.


NEXTSTEP 교육 사업을 통한 pull 경험

2018년 4월 NEXTSTEP이라는 이름으로 개인 사업자를 내고 교육 사업을 시작했다. 벌써 만 5년이 지났다. 5년 이상을 망하지 않고 사업을 지속하는 기업의 비율이 높지 않다는데 아직까지 망하지 않은 것만으로도 의미가 있다. 하지만 아직까지 구멍가게 수준이다.


NEXTSTEP 교육 과정은 다른 교육 과정에 비해 고통스럽고, 많은 시간을 투자해야 완료할 수 있다. 고통스럽고 힘든 과정이지만 어떻게 하면 끝까지 포기하지 않고 완료할 수 있을 것인가에 집중한다. 고통 없는 성장은 없다고 믿는다. 고통이 따른 만큼 그만큼 성장할 수 있다는 믿음을 가지고 사업을 지속하고 있다.


2018년 한 명의 교육자(나), TDD, 클린 코드 with Java 과정 하나로 시작했다. 그렇게 2년 동안 이 같은 믿음을 가지고 묵묵히 걸어갔다. 2년이 지나 나와 뜻을 같이하는 교육자가 늘어가고 교육 과정 또한 늘어갔다. 지금도 꾸준히 새로운 교육 과정을 추가하고, 함께하는 교육자가 늘어가고 있다. 다소 비싼 강의이지만 꾸준히 마감되고 있다.


현재의 결과를 만들기 위해 NEXTSTEP은 5년 동안 한 번도 마케팅을 하지 않았다. 다소 느릴 수 있지만 NEXTSTEP만의 교육 철학을 믿고 묵묵히 걸어왔고, 걸어갈 것이다. 개발자의 성장과 좋은 교육 과정을 만든다면 우리가 다가가지 않아도 개발자가 찾아올 것(pull 방식)이라 믿기 때문이다.


부모, 리더, 교육자로서 pull 방식으로 살기

나는 딸 한명, 아들 한명. 두 명의 자녀를 둔 부모이다. 나는 아이들이 하고 싶은 일이 있다면 지지해 주겠다는 마음으로 아이들을 키웠다. 꼭 공부가 아니어도 괜찮았다. 그런데 아이들이 중학교를 졸업하고 고등학교로 진행해도 하고 싶은 일을 찾지 못했다. 나는 28살이라는 늦은 나이에 내가 하고 싶은 일을 찾았다. 내가 너무 늦은 나이에 하고 싶은 일을 시작했기 때문일까? 나는 조급했다. 아이들이 하고 싶은 일, 꿈이 생기면 지지해 줄 마음도 있는데 나의 바람과는 달리 아이들은 아무 생각도 없는 듯했다.


내가 자랄 때보다 환경이 이렇게 좋은데 환경을 활용하지 못하는 것이 답답했다. 그러던 어느 날 내가 왜 이렇게 조급하게 생각할까라는 생각이 들었다. 나는 중, 고등학교 시절 무슨 생각을 하며 살았지? 미래에 대해 아무 생각 없이 그냥 살았잖아. 그렇게 살았음에도 불구하고 지금 잘 살고 있지 않은가? 이 경험을 한 후 아이들이 자신의 꿈을 찾고, 도움을 요청(pull 방식)할 때까지 기다리기로 했다.


나는 10년 이상 프로그래밍을 가르치는 소프트웨어 교육자로 살고 있다. 교육자로 살면서 힘든 점 중의 하나는 내가 좋은 교육 환경을 만들기 위해 노력했음에도 불구하고 학생들이 나의 의도와 다른 모습을 보일 때다. 가끔씩 배신감도 든다. 내가 학생들이 의미 있는 배움과 성장 경험을 할 수 있도록 노력하는 만큼 배신감은 더 커졌다. 어떻게 이럴 수 있지? 내가 이 같은 환경을 만들기 위해 얼마나 많은 노력을 하지는 몰라주는 것에 대한 서운함도 있었다. 아니 지금도 가끔씩 있을 때가 있다. 나 또한 인간이지 않은가?


그런 서운함과 배신감이 들 때마다 내가 왜 그런 마음을 먹는지 생각해 본다. 그런 마음의 본질은 학생들이 성장하면서 새로운 배움을 만들 준비가 되지 않았는데 나의 성과에 대한 집착과 욕심 때문이지 않을까라는 생각이 들었다. 이 같은 생각을 반복해서 일까? 어느 때부터 나는 생각을 바꿨다. 나는 의미 있는 배움과 성장 경험을 할 수 있는 좋은 교육 환경을 만드는데 집중하기로 마음먹었다. 지금은 학생들이 교육 환경 속에서 마음껏 학습하고 소통하다 지치고, 힘들고, 흔들리는 순간 나를 찾아올(pull 방식) 수 있도록 만들려 노력한다.


pull 방식으로 살기

pull 방식으로 살기는 생각보다 쉽지 않다. 어려운 이유는 결실을 맺기까지 시간의 축적이 필요하기 때문이다. 개발자와 교육자의 삶을 살며 내가 경험한 모든 pull 방식에는 일정 기간의 시간 축적이 필요하다. 시간을 축적한다고 무조건 결실을 맺는 것 또한 아니다. 이런 불확실함이 pull 방식으로 살아가는 것에 대한 두려움을 만든다.


맞다. pull 방식으로 살려며 이 두려움에 맞설 수 있는 용기가 필요하다. 이 용기는 어떻게 만들 수 있을까? 나는 믿음이라고 생각한다. 내가 충분한 잠재력을 가지고 있을 것이라는 나에 대한 믿음, 자기 주도적으로 일할 수 있는 환경을 만들면 더 좋은 결과물을 만들어 낼 것이라는 팀원들에 대한 믿음, 개발자의 성장을 위한 진정성 있는 교육을 하면 개발자가 인정하고 찾아올 걸이라는 교육 철학과 개발자에 대한 믿음, 좋은 환경을 만들고 기다리면 언젠가 꿈을 찾고, 성장할 것이라는 자식과 학생들에 대한 믿음. 이런 믿음이 두려움을 극복할 수 있는 용기를 만든다.


그럼 왜 pull 방식으로 살아야 하나? 나는 '외부의 상황 변화에 흔들리지 않으면서 묵묵히 나의 삶을 살아갈 수 있기 때문이다.'라고 말하고 싶다. 공자는 유혹에 흔들리지 않는 나이가 불혹(40살)이라고 했다. 어른이 된다는 것은 '내가 나답게' 살아가는 것이지 않을까?


나는 외부 유혹에 흔들리지 않고 나의 길을 묵묵히 걸어갈 계획이다.

흔들리지 않기 위해 꾸준히 노력할 것이다.

그렇게 나의 길을 걷다 지치고, 흔들리는 후배들이, 아이들이 마음 편히 도움을 청할 수 있는

그런 어른이 되고 싶다.

그런 어른이 되기 위해 나는 pull 방식으로 산다.

작가의 이전글 학습의 지속성을 어떻게 유지할 것인가?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari