Thoughts2007.09.09 22:48

사실 개발자로서 '소통'의 문제를 전혀 고민하지 않은 채 독야청청 가끔 책이나 들여다보고 지식의 외연을 넓혀가는 데 지나치게 만족하고 살다 보니, 어느새 세상 돌아가는 꼴을 모르는 우물안 개구리가 되어 있더군요.

그래서 요즘 블로그 질이다 뭐다 해서 나름대로 열심히 하던 와중에.

"에자일 이야기"라는 블로그를 하나 발견했습니다. 알고보니 에자일 이야기의 운영자님은 꽤 유명한 분이더군요. (그런 것도 모르고 살았으니 개발자로서는 지나치게 게을렀던 셈이지요 ㅋㅋ)

그 블로그에 포스팅된 기사를 뒤적거리다보니, "야근 금지"를 모토로 하는 한 회사에 관한 기사가 눈에 들어왔습니다. 알고보니 이 회사도 꽤 유명한 회사더군요 -_-


"대체 너는 아는게 뭐냐"


라고 물으시면 할말없3 ㅜㅜ

야근 금지라... 사실 모든 개발자의 꿈이기도 하죠. 야근 금지는 다른 말로 하면 칼퇴근 정도로 바꿀 수 있겠습니다. 사실 서울에서 직장생활하던 때, 저는 칼퇴근을 해 본 적이 거의 없었습니다. 코딩도 해야하고, 때로는 전화도 받아야 하는 팍팍한 벤처에서 칼퇴근이라는 것은 언감생심 꿈꾸기 민망한 소망이었죠.

+ + +

저의 경험상, 칼퇴근은 '숙련도가 어느 수준 이상 상승한 프로그래머' 혹은 '요구사항의 변화를 엄격하게 통제할 수 있는 환경에서 근무하는 프로그래머' 또는 '을보다는 갑의 지위에 더 가까운 계약관계를 지속적으로 유지하는 회사에서 근무하는 프로그래머'라야 누릴 수 있는 특권적인 혜택입니다.

숙련도가 어느 정도 상승한 프로그래머는, 자신의 코딩 경험을 라이브러리 화 해 놓을 수 있습니다. 그 축적된 라이브러리를 바탕으로, 프로그래머는 자신의 다음 업무에 드는 코딩 시간을 배로 단축할 수 있습니다. 자, 그러면 이 프로그래머가 하게 되는 업무 영역에 큰 변화가 없다고 가정한다면, 이 프로그래머의 순수 코딩 시간은 맡는 프로젝트가 끝날 때 마다 exponential하게 감소하겠군요 :-P

물론, 그러려면 '업무 영역에 큰 변화가 없다'는 가정이 계속적으로 유지가 되어야 합니다. '업무 영역에 큰 변화가 없는' 환경에서 근무하려면, 회사가 하는 업무 형태에 일관성이 있어야 합니다. 제가 근무했던 한 회사의 업무 영역은 제가 근무하는 1년 동안 두 번 바뀌었습니다. 처음에는 웹 개발이었는데, 나중에는 네트워크 장비 개발로 업무 영역이 바뀌었죠. 게다가 근무하는 동안에 다른 업체의 용역 개발을 수행할 일도 있어서, 업무 영역에 변화가 없을래야 없을 수가 없었습니다. 거기다 개발자로서는 처음 맡아보는 업무들이 태반이었으니... 능력 부족으로 자진 퇴사한 뒤 대전으로 튀었습니다만, 지금도 그 때 좀 더 잘해볼껄 하는 후회가 남습니다. 아무튼 각설하고.

용역을 수행하더라도 그 용역의 범위에 일관성이 있으면 좀 낫습니다만, 없는 경우에는 개발자로서는 난감할 때가 많습니다. 이런 코딩도 해야하고, 저런 코딩도 해야하니까요. (심하면 서버 코딩만 전문으로 하다가 GUI 프로그래밍을 하게 되기도 합니다.) 먹고 살자면 그런 일도 생깁니다. 계약서에 명시된 역할이 '을'에 가까울 수록 이런 일은 더 자주 생깁니다. 대개의 경우 '을'은 '갑'이 요구사항을 아무리 자주 바꾸더라도 어쩔 수 없이 응해야 할 때가 많습니다. 요구사항이 바뀌면 코드를 뒤엎어야 하는 일도 늘어나고, 야근 횟수도 늘어납니다. (물론 그런 것 까지 예측하여 프로그래밍을 할 수 있는 수퍼 코더라면야 문제는 또 다르겠습니다만... ㅎㅎ)

이런 문제들을 해결하고 '칼퇴근 맨'이 되기 위해서는, 스스로 부단한 노력을 거듭해서 '자기 분야에서 숙련도가 어느 수준 이상 상승한 프로그래머'가 되거나, '요구사항의 변화를 엄격하게 통제할 능력이 있는 상사' 밑에서 일하던가, '잘 정리된 솔루션을 가지고 있고, 그런 솔루션에 대한 꾸준한 개발 계획을 가지고 있으며, 미래에 대한 비전도 있는' 회사에서 일하거나, '거의 항상 갑의 위치에서 계약을 하는 회사'에서 일하거나, 이도 저도 안되면 '출중한 개발자 및 컨설팅 그룹'에서 일하거나 해야 합니다.

+ + +

저는 대전으로 튄 후 5년간 꾸준히 칼퇴근 맨이었습니다. 저의 경우에는 '거의 항상 갑의 위치에서 계약을 하는 회사'에서 일한 탓도 있었고, 스스로 '요구사항의 변화를 칼같이 짜른' 탓도 있었고(그래서 욕도 엄청나게 얻어먹었습니다 ㅎㅎㅎ), 나름대로 5년동안 한 회사에서 굴러먹다 보니 제 분야에서 '숙련도가 어느 수준 이상 상승한' 탓도 있었습니다. 대전이라는 환경이 서울보다는 좀 살기에 널널한 탓도 있었죠. (어떻게 보면 그게 가장 지배적인 요인 같기도 하군요 ㅋㅋ)

앞서도 말했듯, 칼퇴근은 개발자의 꿈입니다만, 그만큼 성취하기 어려운 목표이기도 해요. 그래서 그런지, 야근금지를 모토로 하는 저런 회사가 참으로 신기해보이기도 하고, 대전에서 보낸 지난 5년동안의 시간이 좀 아깝기도 합니다. 서울에서 좀 치열하게 생활했었으면 아마 저런 회사나 개발자 그룹에서 좀 더 큰 꿈을 펼쳐보겠다... 뭐 이런 생각을 가지고 보다 더 열심히 공부를 했었을지도 모르겠다, 그런 생각이 들거든요.

뭐, 모로가도 서울만 가면 된다고, 어찌 어찌 해서 야근 안하는 프로그래머가 되었으니 어떻게든 목표를 달성한 셈이긴 하지만 말입니다.. ㅎㅎㅎㅎㅎ

아무튼, 제 입장에서만 보자면 야근은 안하는 게 낫습니다. 야근을 상습적으로 하게 되면 낮 동안의 업무 효율이 떨어지고, '야근하면 되지...'하는 생각에 심각한 업무를 밤에 미뤄두게 됩니다. 체력도 별로 안좋아지고요. 낮 동안에 가급적 모든 업무를 재빨리 처리하고, 밤에는 차라리 시간날때 운동을 하거나, 공부를 하거나 하는 것이 더 낫습니다.

제가 한동안 애들을 다 재운 밤 열시 이후에 회사에 나와서 야근을 하고 담날 다시 정상근무를 하는 비정상적인 생활을 한 두어달 했던 적이 있는데요 (소스코드를 날려먹는바람에 어쩔수가 없었습니다 ㅎㅎㅎㅎ 거기다 애도 봐야하고 아흑 ㅜㅜ) 일은 성공적으로 마무리했습니다만 그 뒤에 정신상태가 피폐해져서 한 한달가량은 뭘 제대로 할 수가 없더군요. 공부도 손에 안 잡히고...

그렇다면 프로그래머가 추구해야 할 길은 오직 하나로군요.

공부를 열심히 해서 숙련도를 향상시키는 거... -_-;;

사실 그 이외의 문제는 '환경'의 문제이고, '환경'의 문제는 프로그래머 맘대로 콘트롤 할 수 있는 게 아니니까요.




신고
Posted by 이병준

소중한 의견, 감사합니다. ^^