내가 가지고 있는 개발 스킬들을 널리 알리지 말라?
목차
때로는 바보일 필요가 있다?
(이 글은 필자의 주관적인 생각일 가능성이 높습니다)
최근까지 회사를 다니면서 여전히 느끼게 된 점에 대해 언급을 해 보겠습니다. 직장 생활은 이제 16년차가 되어 가지만 가장 어려운 점은 “사람을 상대” 하는 것일꺼 같습니다.
이 점은 단지 “프로그래머” or “개발자” 뿐만 아니라 경제 활동을 하는 모든 사람들에게 해당될 거 같습니다. 특히 “직장인” 에게는 더욱더 말이지요.
제가 한창 개발자 생활을 하게 되고 연차가 쌓이게 되면서 “개발 스킬”은 점점 쌓이기 마련입니다. 물론 분야와 했던 개발 프로젝트에 따라서 다르지만 시간이 지날수록 경험은 늘어나고 스킬과 노하우는 늘어나기 마련입니다.
그런데 프로그래머가 회사를 다니다 보면 본의 아니게 “이직”을 하게 되는 경우가 생기게 됩니다. 회사가 망할수도 있지만 “인간 관계” 로 인해 도저히 개발일을 못하게 되는 경우 혹은 “연봉 협상” 에서 내가 요구한 연봉 인상을 해 주지 않는 경우는 “이직” 을 통해 연봉을 올리게 되는 게 흔합니다.
이직을 하게 되면 “새로운 환경” 에 적응해야 되는 것은 본인이 감당해야 할 의무입니다. 새로운 환경이라는 건 크게 세가지가 될 수 있겠습니다.
- 낯선 장소와 출퇴근 루트
- 낯선 사람들과 마주쳐야 하고 새로운 인간관계 형성
- 새로운 개발 업무
이 중에서 가장 빠른 적응이 필요한 것은 “새로운 인간관계” 와 “새로운 개발 업무” 입니다. 그런데 여기서 새 조직에 적응하게 될 나는 위의 두 가지에 적응하기 위해 “스트레스”가 동반이 됩니다.
사실 새로운 환경에서 “스트레스”가 동반되는 것은 당연합니다. 아무리 직장 경험이 오래 되고 시니어 위치에 있다고 해도 낯선 환경에 적응하는 것은 시간이 필요한 일입니다. 특히 “새로운 인간관계” 는 분명 충분한 적응 시간이 필요해 보입니다.
그런데 제가 이직을 하게 되고 “새로운 인간관계”에 맞닥뜨리게 되면서 나의 모습을 어떻게 보여줘야 하는지 고민이 될 때가 많았습니다.
이게 무슨 말일까요? 굳이 새로운 회사에 이직을 해서 “내 모습”에 대해 고민할 필요가 있을까요? 단순히 새 회사에 적응하기 위해 열심히 하는 모습을 보여 주는게 맞지 않을까요?
“내 모습”이 다른 사람에게 어떻게 비춰져야 하는지 고민을 하게 된 이유가 있습니다. 위의 글에서도 언급을 했지만 직장에서의 인간 관계는 철저히 “이기적인” 관계에 돌입하게 되기 때문에 그 관계에 있어서 초반에 잘 설정을 해야 될 필요가 생깁니다.
즉 예를 들면 이런 겁니다.
처음 회사에 이직해서 좋은 평가를 받기 위해 일단 “무조건 열심히” 하는 모습을 보여줍니다. 그 회사에 오래 다니기 위해서는 열심히 하면서 “잘” 하는 모습을 보여줘야 하기 때문입니다. 나에 대한 평가가 좋아야 그 회사에서 인정을 받을 수 있고 오래 다닐 수 있지 않을까요?
저도 직장 생활 6~8년 차 때까지는 이런 생각을 당연히 했고 윗 사람들에게 잘 보이기 위해 열심히 하는 모습을 보여줬습니다. 최대한 좋은 평가가 나오도록 노력했고 개발일도 열심히 하려고 노력했습니다.
그랬더니 어느 순간부터 일을 몰아주거나 “일폭탄” 에 빠지는 경험을 했습니다.
즉 의도치 않게 “열심히” 혹은 “잘” 한다는 이유로 많은 일들을 떠안게 되고 담당자가 되버립니다. 또한 이직 초반에 회사의 눈에 들기 위하여 개발 스킬에 대해 “아는 척”을 하게 되었는데, 그 일을 계기로 그 “아는 척”을 한 개발 스킬이 필요한 업무를 담당하게 되버립니다.
물론 프로그래머는 여러 경험을 하면서 적절히 개발 업무를 하면 도움이 됩니다. 하지만 “의도치” 않게 많은 일을 떠맡게 되면 그만큼 역효과가 번아웃이 빨리 오게 되는 부작용이 있게 됩니다.
특히 제가 몸담았던 “임베디드 제조업” 회사들을 경험했을 때 그 정도는 더 심했던거 같네요.
그래서 어느 순간부터 새로운 회사에 이직을 할 때는 내가 가지고 있는 개발 스킬에 대해 “모른척”을 하게 되었던거 같습니다. 굳이 내게 시키지 않으면 그 스킬에 대해 함구를 하게 되는 것이지요.
이직을 하고 나서 “아는척”을 좀 했더니 일폭탄을 떠넘긴 회사의 사례에 대한 글입니다. 전 그래서 어느순간 부터 “업무용 폰”을 개설할 생각을 할 정도로 회사 업무에 대해 “보수적”인 자세를 취하게 되었죠.
결코 좋은 자세는 아니지만 나름 “처세술” 이었던거 같습니다.
개발 업무에 대해 결코 공평한 분담을 하게 하지 않는다
프로그래머라는 직업은 알쏭달쏭한 직업 중 하나입니다. 그 이유는 “일의 양”을 정하는게 쉽지 않아서 일이 늘어날시에 “배분”이 어렵기 때문입니다.
우리가 건물을 짓는 공사장에서 일을 하는 인부라고 칩시다. 눈에 잘 보이고 객관적으로 판단할 수 있는 “하드웨어”가 존재한다면 다수의 사람들이 일의 양을 계산 및 분배하는게 어느정도 가능합니다. 즉 “분업”을 책정하는게 그리 어렵지 않습니다.
한사람은 건축 자재를 나르고 다른 사람은 못질을 합니다. 간단한 예시이지만 이런 방식으로 다수의 사람들이 업무를 나눠가며 분업을 하는게 비교적 쉽습니다.
하지만 “SW 개발” 업무는 이야기가 좀 다릅니다. 하나의 신규 프로젝트가 시작되었는데 경력 프로그래머가 2~3명 있다고 해서 그 프로젝트의 개발 업무를 공평하게 나눠서 하는게 생각보다 쉽지 않습니다.
같은 연차의 경력자라고 해도 했던 분야가 다르고 성향이 다르며 “실력” 차가 있습니다. 또한 보유 스킬이 다르며 코드를 짜는 방식도 차이가 있습니다. 또한 같은 분야의 SW를 개발했다고 해도 각자가 스타일이 다르기 때문에 코드를 딱 나눠서 개발을 하는게 쉽지 않습니다.
이런 상황이다 보니 하나의 어플리케이션을 딱 나눠서 하는거 보다 앱이면 앱, 서버면 서버를 맡은 프로그래머가 각각 한개씩 분야를 맡아서 나누는게 효율적입니다. 앱을 개발했던 사람이 서버를 할 수 없듯이 앱을 개발했던 사람이 앱을 맡아서 하고 서버를 개발했던 사람이 서버를 혼자 맡아서 하는게 효율적입니다.
혼자서 하는게 너무 시간이 많이 걸린다면 앱이면 앱, 서버면 서버단에 관련 개발을 했던 프로그래머들을 추가로 투입하여 리소스를 덜어주는게 효율적입니다. 그런데 여기서 문제는 앱을 2사람이서 개발을 했을 때 과연 하나의 앱을 2사람이서 공평하게 분배하여 나눠서 개발을 할 수 있느냐는 겁니다.
A라는 사람과 B라는 사람이 C라는 앱을 개발한다고 하면 A와 B가 각각 5년차의 경력을 가진 프로그래머라고 했을 때 공평하게 “절반”씩 업무를 분배하는게 가능할까요? 결코 쉽지 않을 겁니다.
위에서 언급했듯이 A라는 프로그래머와 B라는 프로그래머가 경력이 같다고 해서 똑같이 개발 결과물을 도출해 낼 수 있는게 아닙니다. 각자의 성향, 개발 스킬의 차이, 실력에 따라 천차만별이다 보니 시작은 2사람이서 했지만 나중에는 한사람에게 일이 몰릴 수도 있습니다.
특히 경력이 많고 경험이 많은 프로그래머 중에는 “꼼수”를 써서 되도록 일을 최대한 안하면서 편하게 월급을 받으려는 성향의 프로그래머들이 있습니다.
한 회사에 오래 있었고 “고인물” 같은 습관을 가진 프로그래머들은 자신이 편하기 위해 상대방들을 이용하려고도 합니다. 특히 그 이용하려는 대상들은 “신입 프로그래머” 들이나 “들어온지 얼마 안된 경력 프로그래머” 들일 겁니다.
이런 사람들은 마치 “하이에나”와 같이 이용하려는 대상들을 물색합니다. 회사의 지시에 잘 따르고 열심히 하는 모습을 보이는 사람들이 대상입니다. 물론 프로그래머들은 어느정도 실력이 있지 않으면 금방 시장에서 도태되버리는 특징을 가지고 있지만 야속하게도 곳곳에는 이런 ‘고인물” 프로그래머들이 존재하게 됩니다.
제가 새로 이직한 회사에서 이런 “고인물”들을 겪어 보니 마냥 “열심히 하는 모습”을 초반에 보여주는게 좋은건지 고민을 하게 되었습니다. 특히 우리나라의 조직 문화에서는 열심히 하는 사람들에게 “금전적 보상”을 적절히 해주는 기업은 그리 많지 않습니다.
그러다 보니 열심히 하든 적절히 상대방 이용하면서 “고인물” 행태로 개발 흉내를 내는 프로그래머든 간에 똑같은 월급을 받으면서 회사를 다니게 됩니다. 그래서 저는 그 뒤로 부터는 일부러 나의 개발 스킬에 대해 함구하면서 꼭 필요할 때만 “살짝 보여주는 정도”로 업무를 하고 있습니다.
제가 새로운 회사에 이직하면서 나름 보여주는 모습들은 이렇습니다.
- 처음에 이직을 하고 입사를 하면 대략 한달동안의 “열심히”의 의지만 보여준다.
- 회사의 내부 문화에 대해 파악을 한다. 다 같이 열심히 하는 문화인지 아니면 “고인물” 들이 이용하는 행태의 조직인지 파악을 한다.
- 어느정도 조직이나 인간관계에 대해 파악이 되면 이후에는 되도록 나서지 않는다. 특히 내가 알고 있는 지식에 대해 언급하지 않는다.
- 특히 개발일을 떠넘기는 문화이거나 스킬이 많은 프로그래머에게 의지하는 문화라면 더더욱 내 모습을 숨기고 “바보” 인척 한다.
- 성과에 대해 보상이 없는 조직이라면 더더욱 적당히 보여주면서 할당양만 개발을 한다.
제가 언급해놓고도 좀 부끄럽네요. 그러나 우리나라의 조직 문화에서는 이렇게 하는게 더 효율적일지도 모릅니다.
병든 조직문화 그리고 성과 보상의 인색함
어느 조직을 가든 “장단점”은 분명히 있기 마련입니다. 그런데 IT의 본고장 미국과 비교해 보면 우리나라의 조직문화 특히 개발 회사의 조직문화는 분명 차이가 있는거 같습니다.
IT 분야의 세계 최대 회사들이 즐비하고 특히 구글, 애플, 마이크로소프트, 페이스북 등의 세계 최대의 회사를 보유하고 있는 미국의 기업문화는 어떨까요? 또한 그들은 어떻게 그렇게 성장을 했고 프로그래머들의 역량을 어떻게 끌어냈을까요?
적어도 현재 “대한민국”의 조직 문화처럼은 하지 않았을 가능성이 높습니다.
예전에 과장급 정도 되던 시절, 꿈도 많고 문제의식도 많았던 시절에 한번 읽어봤던 책입니다. 당시 구글의 CEO인 에릭 슈미트가 저술한 책인 “구글은 어떻게 일하는가?” 라는 제목의 책이었죠.
미국 IT 기업들 각자가 조직 문화가 다 같지는 않지만 적어도 회사가 성장을 위해서는 각각의 나름 체계적인 조직 문화를 가지고 있습니다. 그 중에서 세계 최대 IT 기업인 구글의 조직문화는 우리나라의 IT 기업들이 참고해야 할 점들이 많습니다.
물론 “미국”의 기업 문화라고 해서 다 정답은 아닙니다. 중소 규모의 미국 IT 기업들의 조직 문화가 우리나라 IT 중소기업보다 더 낫다고는 할 수 없습니다.
하지만 분명한 차이점은 있습니다. 적어도 미국의 IT 기업들은 회사가 성장하기 위해 조직 문화를 어떻게 만들 것인지에 대해 고민을 하고 끊임없이 진화를 한다는 점입니다.
얼마전에 “자유로운 프로그래머”를 하기 위해서 과감하게 회사를 그만둔 적이 있었습니다.
자유로운 프로그래머를 하면서 느꼈던 점은 그동안 몸담았던 조직의 간섭과 방해에서 벗어나 내 역량을 마음껏 발휘할 수 있었던 기회가 존재한다는 점이었습니다. 즉 “내 스스로가 개발을 위해 고민” 했던 시기였습니다.
비록 기간이 짧았고(4개월) 자본금 문제로 인해 다시 직장인으로 복귀했지만 여기서 느꼈던 점은 “스스로 움직였더니 효율이 뛰어났다” 라는 점이었습니다.
그렇습니다. 프로그래머의 역량을 높이는 방법은 “스스로의 의지와 적절환 환경” 이 뒷받침 되면 될거 같다는 생각이 들었습니다.
제가 현재 사용하고 있는 “코드도사” 블로그의 CMS 솔루션인 워드프레스를 개발하는 회사는 “오토매틱” 의 프로그래머가 기고한 글입니다. 오토매틱은 어느 한 대학생이 자신의 블로그를 운영하기 위해 블로그 도구를 직접 개발하여 오픈소스로 공개하였고(워드프레스) 그 운영을 위해 직접 세운 회사입니다.
현재 오토매틱은 워드프레스라는 CMS 로 인해 전세계적으로 유명합니다. 그런데 놀라운 점은 오토매틱의 전 직원들이 전세계에서 “Remote” 근무 즉 원격 재택 근무를 한다는 점입니다.
여기서 핵심은 “재택근무”가 효율을 높인다는것을 말하고 싶은게 아닙니다.
제가 얼마전에 쓴 글에서도 재택 근무를 언급했지만 위에서 언급한 오토매틱은 “재택근무”만으로도 회사가 성장할 수 있다는 예를 매우 잘 보여주고 있음을 알려드리고 싶었습니다.
즉 재택근무만으로도 충분히 프로그래머의 역량이 발휘되고 성과가 나올 수 있다는 점입니다. 대신에 프로그래머를 채용할 때는 그만큼 꼼꼼하고 세심한 면접과 절차를 통해 채용을 한다는 점입니다.
재택근무를 해도 회사를 성장시키는데 도움을 줄 수 있는 인재를 철처히 검증해서 채용을 하기 때문에 자유로운 근무 환경하에서도 회사의 성장과 매출을 끊임없이 상승하고 발전하게 되는 것이지요.
여기서 결론은 재택근무를 하든 사무실 근무를 하든 간에 결국 “사람”이 문제인 걸로 보입니다. 개인의 의지와 목표, 성취감을 가져다 주는 회사라면 사무실 근무를 하나 재택 근무를 하나 결과는 좋아질 수 밖에 없을 겁니다.
여기에 재택근무는 프로그래머들에게 공간의 자유를 주는 플러스 알파가 되므로 출퇴근에 낭비하는 시간이 줄어들어서 더더욱 효율이 늘어갈 겁니다.
하지만 최근에 제가 경험했던 IT 중소 제조업 회사들은 “조직 문화가 병들었다.” 라고 볼 수 밖에 없었습니다.
개발 프로젝트를 진행하는데 있어서 확실한 업무 분장과 리소스 투입이 적절히 되지 않다 보니 여기에 불만과 다툼이 발생합니다. 또한 중소기업들은 필요한 인원들도 부족하다 보니 한사람에게 일이 몰리는 경우도 비일비재하지요.
관련 부분을 윗선에 제기를 해도 나아지는건 없었습니다. 맨파워가 부족하고 적절한 분배가 되지 않아도 그 누구도 이런 불균형을 바로 잡을 생각을 하지 않습니다. “당분간은 좀 참자.”, “어쩔 수 없다.” 라는 말로 그냥 넘기기 일쑤입니다.
이렇게 되면 여기에 불만은 가지는 사람들이 늘어나게 되고 결국 “퇴사”를 해버리는 프로그래머들이 생기게 마련입니다. 그런데 문제는 퇴사한 프로그래머들의 리소스를 대체할 만한 인력이 당장 나타날리가 만무하지요. 특히 중소기업은 더욱더 문제가 발생하고 맙니다.
일정은 급한데 임시방편으로 때우다 보니 조직내 문제는 그냥 넘어가게 됩니다. 이런 상황이 반복되다 보니 내부 개발 인력간에 서로 반목하게 되고 책임 공방을 벌이며 다툼이 일어나게 되는 거지요.
이런 상황이 지속되면 결국 서로를 신뢰하지 못하고 네탓만 하는 조직으로 변화하게 됩니다. 즉 조직 내부는 병들어 가는 것이지요.
그렇다고 해서 상황을 변화하기 위해 윗선에서 “적절한 금전적인 보상”을 하지도 않습니다.
지금만 잘 넘기면 나아질거다…
지금까지 겪었던 회사들의 CEO들은 조직문화의 발전과 프로그래머들의 처우에 대해 고민을 하지 않는다는 느낌을 받았습니다. 이래서 중소기업인지 이렇게 하기 때문에 중소기업 밖에 안되는지 헷갈릴 정도 입니다.
프로그래머들이 살아야 회사도 살아난다
우리나라에서도 잘나가는 회사들은 분명 있습니다. 네이버, 카카오 같은 IT 대기업들은 벤처부터 시작해서 현재에는 대기업에 속하는 회사들입니다.
이 회사들이 현재에도 “괜찮은 조직문화”를 가지고 있는지는 저도 잘 모릅니다. 제가 그 조직을 겪어보지 않아서 모르지만 분명한 점은 그들이 벤처에서 부터 시작해서 현재 대기업이 된 것은 그만한 이유가 있다는 게 결론입니다.
프로그래머들의 적절한 대우와 조직문화에 대한 고민은 그들도 했을 겁니다. 현재 카카오의 경우에는 다소 흔들리는 모습을 보이지만 여전히 그 회사들은 국내 IT 시장을 주름잡고 있다고 해도 과언이 아닙니다.
어쨌거나 시장의 강자로 등극한 그들은 결론적으로 봤을 때 좋은 조직문화를 가지고 있고 성과에 대한 보상이 적절했을 겁니다. 좋은 조직문화는 프로그래머들의 개발 효율을 좋게 하고 그만큼 성과가 나왔을 겁니다.
물론 그 외에 수많은 IT 기업들이 좋은 조직문화와 적절한 보상을 할 수없는 환경인것은 잘 알고 있습니다. 하지만 적어도 “병든 조직문화”를 가지고 있으면 안된다고 생각합니다. 위에서도 언급한 병든 조직문화는 결국 괜찮은 프로그래머들도 그 조직을 떠나게 만드는 요인이 되버리니깐요.
병든 조직문화에서는 더 이상 열심히 할 수 없게 만든다….