본문 바로가기

Software for Life

개발자는 노동자인가? 아니면 과학자인가?

안녕하세요~ 장선진입니다.

조금 일찍 찾아온 추위 덕분에 주변 산들이 울긋불긋한 단풍으로 아름답게 물들어가고 있습니다.
참고로 일교차가 많이 날수록 단풍의 색이 곱게 물들어 간다고 하네요~ 모든 일에는 동전의 양면처럼 장점과 단점이 모두 존재하는 것 같습니다.

최근 우리나라 소프트웨어 개발자의 노동시간에 관한 문제가 많이 부각되고 있는 것 같습니다.

안타까운 현실입니다. 사실 회사를 이끌고 있는 입장에 Start-up 기업인 저희 Software in Life 식구들 역시 많은 시간을 회사에서 보내고 있습니다. 조금 더 풍요로운 일상을 선물해주고 싶지만 아직 많은 부분이 갖추어있지 않은 회사라서 그렇지 못하네요~

다만 다른 기업에서는 할 수 없는 다양한 경험들을 하고 있습니다.
다들 상도 하나씩 받을 예정입니다. 재미있게 다양한 활동들을 하기에 이런 상도 하나씩 받게 되는 것 같습니다.

최근 개발자의 노동시간에 대한 이야기들이 많이 나오고 있는 것 같습니다.
저 역시 아내에게 많은 잔소리를 들어가며, 월화수목금금금 회사에서 개발을 해왔던 터라 그 고민이 무엇인지 잘 알고 있습니다.

다만 바라보는 시각의 차이가 많다는 생각을 하고 있습니다.

예전에 제가 대학교를 다닐때 방학때마다 공장에서 아르바이트를 하곤 하였습니다. 다른 일자리보다 많은 급여를 주었기 때문이죠~ 보통 인력파견업체를 통해서 일을 하곤 했는데, 학기중에도 급하면 저에게 연락을 하여 대타로 야간근무를 하곤 하였습니다.

가장 힘들게 일했던 것은 공장에서 프레스 머신으로 일정 간격으로 알류미늄 막대를 절단하는 작업도 해보았습니다.
프레스 머신이란게 까딱 잘못하면 손가락 절단과 같은 큰 사고가 일어날 수 있는 일이었는데, 같이 간 친구중에 하려고하는 친구가 없는 관계로 제가 했었습니다.

그때 정말 노동이란것이 얼마나 힘들다는 것을 많이 체험했습니다.
여러가지 위험을 감수하고 한시간에 딱 10분 휴식해가면서 프레스 앞에서 아무생각없이... 아니 손가락이 절단되지 않으려고 주의를 기울이면서 작업량을 채우기 위하여 열심히 프레스를 눌렀습니다.

노동자에게 노동시간이란것이 정말 보장되어야한다는 것도 많이 느꼈습니다.
공장이란 환경이 아무리 좋아도 여러분의 책상 주변보다 좋지는 않거든요.. 그런 여건 속에서 묵묵히 자신이 채워야 할 작업량을 채우고 있는 것은 정말 어려운 일입니다.

그렇기 때문에 잔업을 하면 당연히 작업 수당이란것도 나와야하고 특근을 하면 특근 수당이 나와야 합니다.
그리고 공장에서 느낀 것 중에 하나는 공장과 같은 작업 절차가 명확한 하드웨어적인 일을 하는 경우, 즉 노동의 경우 정말 투입한 시간만큼 산출물이 나온다는 것입니다.


우리가 하는 개발 등의 일을 생각해보겠습니다.

다행이도 우리는 공장의 근로자분들처럼 키보드에 손이 절단될 수 있다는 고민은 하지 않습니다. 그리고 주변의 환경적인 여건이 공장보다는 좋을 것입니다. 주변에서 누가 찾아와도 편하에 앉아서 커피한잔 마실 수 있는 여유를 즐기실 수 있으실 것입니다.

아울러 늘 바쁜 개발업무때문에 야근을 해도 야근수당이 나오지 않는 곳이 많긴 한 것 같습니다. 사실 저희 회사 역시 마찬가지 입니다.
앞으로도 나름의 이유가 있어 저희 Software in Life에는 야근 수당이란 개념을 두지 않을 예정입니다. 대신 인센티브를 주려고 합니다.


만약 여러분들이 공장의 노동자와 같은 환경에서 노동자 처럼 일하신다고 생각하신다면, 저는 여러분들이 투입한 시간만큼 공장의 노동자처럼 산출물이 나와야한다고 생각합니다.

프레스 머신을 한시간 돌렸을때 나오는 산출물이 있습니다. 마찬가지로 여러분들이 개발 IDE로 개발을 한시간 하신다면 나와야하는 코드의 라인이 일정하게 나와야합니다. 그게 노동자가 일하고 일금을 받는 근본적인 이유입니다.

작업한 시간만큼 상응하는 산출물을 우리는 노동의 결과라고 보는 것이며, 노동의 결과에 상응하는 대가를 받는 것입니다.
제조업처럼 작업 절차가 세분화되어 있고 하드웨어적인 결과물을 만드는 일에는 이러한 개념을 바탕으로 노동의 대가를 산정하는 것이 바르다고 생각합니다.


그렇다면 우리가 개발하는 소프트웨어를 생각해보겠습니다.
여러분들이 한시간 코딩을하시면 무조건 일정량 이상의 코드가 산출되는지요?

여러분이 소프트웨어 개발을 노동으로 생각하는 노동자라면 당연히 일정량 이상의 코드가 산출되어야하고 일정량 이상의 소프트웨어 컴포넌트가 작성되어야 하며 일정량 이상의 소프트웨어가 개발되어야 합니다.
하지만, 소프트웨어 개발이란것이 프레스 머신으로 알류미늄을 절단하듯 그렇게 딱딱 맞추어서 개발이 되지 않습니다.

어떤 부분은 10분에도 몇백라인이 나갈 수 있고, 어떤 부분은 한시간 내내 한 라인도 짜기 힘듭니다.
즉 여러분이 투입한 시간만큼 결과물이 명확하게 나오지 않는 것이 소프트웨어 개발이라고 생각합니다.

어떨때는 구글 신과 함께 인터넷의 자료만 찾느라고 하루가 다 갈때가 있습니다. 그리고 어떨 때는 단위 테스트만 하느라고 하루가 갈때가 있습니다.


이러한 비슷한 일이 어떤 일이 어떤 일이 있을까요?
과학자 분들이 이런 비슷한 일을 하시는 것 같습니다.

과학자분들은 연구(Research)를 열심히 하시고 개발(Development)를 하고 수없이 많은 실험(Test)를 합니다.

재미있는 사실은 과학자 분들에게 있어 실패는 실험이라고 생각한다는 것입니다.
그래서 더 좋은 결과물을 얻기 위하여 다양한 실험을 하고 그 결과물이 타당하다는 것을 입증하여 연구 성과물을 만들어 냅니다.


과학자적인 측면에서 소프트웨어 개발을 생각해본다면 여러분들이 구글신과 열심히 새로운 지식을 찾고 익히는 시간은 연구하는 시간이며, 개발하여 테스트하는 시간은 실험하는 시간이라고 생각합니다.

근데, 과학자 분들에게 야근이란 개념은 존재하지 않는 다는 사실을 아십니까?
물론 기관에서 일하시는 과학자 분들에게 야근 수당이란것이 존재할지라도, 원래 과학자 분들은 자신이 좋아하는 연구를 위하여, 그리고 더 좋은 성과를 만들어 내가 위하여 밤을 새워서 다양한 실험을 하고 자신이 만들어내는 결과물을 지속적으로 진보시킵니다.

즉, 과학자로서 다양한 실험과 연구를 위하여 쏟는 시간이기 때문에 야근 이라고 생각하지도 않을 뿐만 아니라 그 연구 성과물을 더욱 좋게 만들기 위한 과정이므로 자연스럽게 연구 시간이 늘어나서 밤에도 일한다는 것입니다.

그리고 그 연구결과물을 평가하고 그 평가에따라 상도 받으시고, 다양한 금전적인 혜택도 보십니다.
대표적인 예가 특허이며, 발명품입니다. 에디슨의 전구가 대표적인 예이지요.


물론 소프트웨어 개발이 완벽하게 과학자 분들처럼 연구하는 활동은 아니지만, 저는 상당히 많은 부분이 소프트웨어 개발업무과 과학자분들의 연구개발 업무가 매우 유사하다고 생각합니다.

이런 일을 시간으로 측정하고 시간으로 측정당한다는 것 자체가 어불 성설입니다.

정말 어렵고 획기적인 알고리즘을 만들어 내기 위하여 1년이란 시간을 쏟을 수 도 있는 것입니다. 반대로 천재적인 분이라면 하루에도 만들 수 있겠지요.
즉, 알고리즘 자체를 평가해야 좋은 것이지 알고리즘을 만들어내기 위한 시간만을 평가한다면 과연 1년이란 시간을 쏟아서 만든 분과 하루만에 만든 분과 어떤 평가를 내려야 하는지 생각해봐야 합니다.


소프트웨어 개발을 노동으로 본다면 1년이란 시간을 쏟아서 만들어 내는 것이 타당한 결과를 보상받을 수 있을 것입니다.
반대로 과학자적인 측면에서 바라본다면 하루만에 만들어내는 분에게 결과에 따라 타당한 보상을 하는 것이 좋을 것입니다.


저는 과학자적인 입장에서 보상을 하는 것을 선호합니다.
같은 소프트웨어 개발은 많은 부분 연구를 통한 결과물을 만들어 내는 경우가 많으며, 더 좋은 결과물을 만들어 내는 분들에게 그 노력의 보상을 할 수 있기 때문입니다.

그저 똑같은 코드를 똑같은 로직으로 변한것 없이 고민 없이 아무런 노력없이 해왔던 대로 개발하고 시간을 때우는 분들보다는 더 좋은 소프트웨어를 만들기 위하여 다양한 연구를 하고 다양한 노력을 해서 더 좋은 결과물을 만들어 내는 분들에게 타당한 보상을 하는 것이 소프트웨어 개발에 더 좋은 평가 및 보상 방안이라고 생각합니다. 

오랜 기간 소프트웨어 업계에서 일하면서 예전과 같은... 노력을 기울이지 않으면서... 말로만 소프트웨어 개발을 해오시는 분들을 봐왔던 터라 말로 시간을 때우면서 자기 개발을 하지 않으면서 열정도 없이 더 좋은 소프트웨어를 만들려고 노력하지 않는 분들을 많이 보아왔습니다.

그리고 모두는 아니지만 이런 분들이 소프트웨어 업계의 단점만 나열하고 이야기하시는 경우를 많이 보아 왔습니다.
반대로 열정적으로 자신이 만드는 소프트웨어를 개발하시는 분들은 이런 이야기보다는 어떻게 하면 더 좋은 소프트웨어를 만들까하는 고민의 이야기들을 나누곤 하였습니다.


자, 우리나라의 개발 여건이 좋지 않다는 것은 잘 인식하고 있지만, 우리가 과연 노동자처럼 일하는 것이 맞는지는... 그리고 노동자와 같은 대우를 바라는 것이 맞는지를 생각해볼 필요는 있다고 생각합니다. 물론 모든 노동 여건이 제가 경험한 공장과 같지는 않겠지만, 노동자와 같은 측면에서 정말 야근 수당을 바란다면 우리가 소프트웨어를 개발을 정말 노동의 수준으로 해야 한다고 생각합니다.

그래야 노동한 시간만큼의 대가를 정당하게 요구할 수 있다고 생각합니다.

반대로 소프트웨어 개발을 과학의 일환으로 바라본다면, 우리는 연구를 하고 있는 것이며, 다양한 실험을 하는 것입니다. 그래서 더 좋은 소프트웨어를 만들어 내기에 당연히 인센티브를 받을 수 있는 권리가 있다고 생각합니다.

그래서 저는 결과물에 따른 인센티브를 드리려고 생각하고 있습니다.
아마 앞으로도 이러한 저의 생각에는 변화가 없을 것 같습니다. 그래서 제가 저희 회사 분들에게 과학자적인 측면에서 더 많은 창의력과 다양한 지식활동을 요구하고 있습니다.

아직 부족하지만 연구개발을 할 수 있도록 잘 지원하는 회사가 될 수 있도록 앞으로 더 노력하겠습니다.


많은 이슈가 있는 글이지만, 제 나름의 생각을 공유하는 것이 좋다고 생각되어 올립니다.
나름의 참고가 되셨으면 좋겠습니다. 감사합니다. :-)


PS: 원문에 몆자 덧붙여서 말씀드립니다.
만약 여러분들이 야근하지 않는 회사를 다니고 있는데 회사에 많은 이익이 발생하였습니다. 그럼 여러분들에게 어떻게 보상하는게 맞을까요?
분명히 야근하지 않았어도 여러분들이 노력해서 좋은 소프트웨어를 만들었기에 회사에 많은 이익이 발생한 것일텐데요.
야근을 권장해야 하나요? 성과에 따른 분배를 인센티브 말고 어떤 것으로 하는게 좋을까요?

추운 일교차가 빛고운 단풍을 만들어 내듯이 한쪽만 바라보지 마시고 양쪽을 모두 바라보셨으면 좋겠습니다.