레이블이 개발자트랙인 게시물을 표시합니다. 모든 게시물 표시
레이블이 개발자트랙인 게시물을 표시합니다. 모든 게시물 표시

2017년 6월 6일 화요일

이우소프트에 대한 오해와 진실

가끔은 “이우소프트가 개발자에게 그렇게 좋은 회사라면서요?”라는 말을 종종 듣는다. 이 말은 맞기도 하고 틀리기도 하다.

입사지원자에게 듣기도 하고 지인들에게 듣기도 한다. 몇몇 얘기를 듣고 과도하게 확대해석하기도 하고 오해하기도 한다. 모든 현상이 그렇듯이 몇줄의 글을 통해서 상황을 정확히 설명하기란 매우 어렵다. 하지만 내 블로그의 글을 보고 많은 개발자들이 이우소프트에 지원을 하기 때문에 좀더 정확한 설명이 필요하다.

일단 이우소프트는 “개발자가 일하기 좋은 회사”를 만드는 것이 목적인 회사는 아니다.

이우소프트의 비전은 “글로벌 경쟁력을 갖추고 세계 1등의 Software를 만들어 내는 것”이다. 거의 모든 것은 여기에 맞춰져 있다. 이를 위해 행해지는 것들이 개발자에게 좋을 수도 있고 나쁠 수도 있다. 또한 어떤 개발자에게는 좋은 것이 어떤 개발자에게는 나쁜 것이 될 수도 있다. 

퇴근 후 개인 시간이 거의 보장된다.


퇴근 후 개인 시간을 보장해야 하는 이유는 생산선 향상 때문이다. 어차피 하루 8시간 이상은 몰입이 어렵다. 또한 퇴근 후에 영어, 운동, 신기술습득, 문화활동 등 장기적으로 성장하기 위한 활동을 해야한다. 그리고 야근이 없다는 오해도 있는데 야근은 있다. 최대한 합리적으로 프로젝트를 진행하려고 하지만 야근에 내몰리는 경우도 종종 있다. 또한 자발적으로 야근을 하는 개발자도 있다.


개발일정은 개발자가 정한다.


기본적으로 맞다. 하지만 여유로운 개발일정을 정하는 것은 절대 아니다. 프로젝트마다 일정의 중요도가 다르기 때문에 프로젝트마다 다른 기준에 따라서 일정이 정해진다. 개발자가 산정한 일정을 가장 우선시하지만 가끔은 고정된 일정에 개발자가 맞춰야 할 때도 있다. 이때는 합리적으로 조정하려고 노력한다. 부족한 일정만큼 개발자를 더 투입하거나, 외주를 투입하거나, 기능을 축소하거나, 단계별로 기능을 제공하거나, QA를 더 투입하거나, 상용 라이브러리를 구매하는등 여러 수단을 동원한다. 스펙을 철저히 쓰고 그렇게 합리적으로 진행하더라도 예상치 못한 Task가 추가로 생기는 등의 변수로 인해서 어려움에 봉착하기도 한다. 이를 해결하기 위해서 PM(Project Manager)과 TL(Technical Leader)은 머리를 맞대고 해결책을 고민한다. 최대한 합리적으로 계획을 세우고 해결책을 수립해도 프로젝트에는 어려움이 닥친다.  PM과 TL은 노하우를 쌓아서 이런 상황을 최소화 해나가고 있다.

개발자 캐리어는 확실히 보장한다.


개발자는 확실히 개발만 하게 한다. 그래야 효율성이 높기 때문이다. 전문 PM이 별도로 있어서 관리는 PM이 전담한다. PM 또한 대단한 전문성을 요구한다. 개발자에게는 개발만 요구하기 때문에 개발자로서 확실한 실력을 보여줘야 한다. 끊임없이 공부하고 노력해서 연차에 걸맞는 실력을 보여줘야 한다. 그렇지 않으면 신입 개발자들에게 밀리는 일이 발생한다. 사람들과의 관계와 공력으로 버티는 개발자들은 살아남기 힘든 환경이다. 야근이 별로 없다고 하더라도 퇴근 후에 해야 할 공부가 많다. 개발자는 평생 공부해야 한다고 하지만 성향에 따라서는 쉬운 일이 아니다. 나조차도 종종 고3때보다 공부를 더 하는 것 아닌가 생각할 때가 있다.

모든 것을 공유해야 한다.


공유하지 않는 것은 거의 없다고 보면 된다. 오늘 내가 한 모든 것이 온라인 시스템을 통해서 공개되고 공유된다고 보면 된다. 서로 만나서 말로 논의하고 끝나는 경우가 없다. 10분짜리 회의라도 Wiki 시스템에 기록이 남고 ITS(Issue tracker system)을 통해서 모든 이슈(버그, 개선, 신기능, Task 등)는 시스템에 기록되고 온라인으로 논의한다. 개발외에도 모든 업무가 온라인을 통해서 진행된다. 모든 직원이 당장 떨어져서 일해도 전혀 어려움이 없는 상황이다. 글로 적는 습관과 실력이 없는 사람들은 보통 곤역스러운 일이 아니다.

이것은 회사에게는 큰 장점이다. 직원이 하나 갑자기 빠져나가도 회사는 문제 없이 돌아간다. 하지만 개발자에게는 좋기도 하고 나쁘기도 하다. 열심히 일한 개발자는 자신이 과거해 해놓은 일에 발목을 잡혀서 새로운 일을 못하지 않는다. 언제든지 다른 사람들에게 유지보수를 맡기도 새로운 일을 할 수 있다. 하지만 의도치 않게 자신의 지식과 정보를 숨겨서 이를 자신의 존재가치로 삼는 개발자에게는 아주 안좋은 환경이다. 이런 회사는 개발자가 중요한 자산이기도 하지만 Risk가 되기도 한다.

자연스럽게 모든 정보를 시스템에 남기는 형태로 일하는 것은 습관이 되기 전에는 매우 곤역스러운 일이다. 따라서 모든 개발자에게 꼭 좋은 환경이라고 볼 수는 없다.

개발을 위한 신입사원 교육이 없다.


신입사원 교육이 있기는 하지만 회사의 일반에 관련된 내용이고 개발을 하기 위한 신입사원 교육이 없다. 이는 좋기도 하고 나쁘기도 하다. 신입사원은 입사하자마자 이슈(버그, 신기능, 개선 등)를 할당 받기 때문에 알아서 개발을 해야 한다. 단, 시스템에 거의 모든 정보가 있기 때문에 정보를 찾아가면서 개발을 해야 하고 멘토나 팀장이 가끔 가이드를 해준다. 하지만 옆에 끼고 가르치는 것은 없다. 고참들은 신입사원이 많이 들어와도 이들을 가르치기 위해서 시간을 빼앗기지 않는다. 신입들은 아무도 가르쳐주는 사람이 없어서 막막하겠지만 시스템을 검색해보면 필요한 정보가 거의 다 있기 때문에 본인의 능력여하에 따라서 훨씬 빨리 배울 수 있다. 또한 자연스럽게 본인들도 공유하는 습관을 가지게 된다.

이렇게 어떤 개발자에게는 좋은 환경이기도 하고 어떤 개발자에게는 매우 나쁜 환경이 되기도 한다. 하지만 이런 과정을 통해서 모든 프로젝트는 일정을 지키며 개발자들의 생산성은 매우 높다. 개발자는 글로벌 회사의 개발자들과 다를바 없는 수준으로 꾸준히 회사와 같이 성장할 수 있도록 노력하고 있다.


막연히 좋은 점만 상상을 했다면 이우소프트는 그런 모습은 아니다. 회사가 글로벌 회사들과 경쟁하는 것이 목표이며 이를 위해 필요한 모습을 갖추고 있을 뿐이다. 성향이나 적성이 일치하다면 좋은 환경이지만 그렇지 않다면 적응하기가 쉽지 않다. 물론 신입개발자들은 대체로 적응을 잘한다. 백지에는 무엇이든지 잘 써지기 때문이다.

2009년 12월 23일 수요일

당신은 개발자도 아니고 관리자도 아냐!

컨설팅을 하다 보면 많은 개발자와 관리자를 만납니다.

그런데, 특히 고참 개발자나 개발자 출신 관리자 중에는 자신의 정체성을 못 찾는 사람들이 많습니다.
이런 사람들에는 다음과 같은 말을 해주고 싶습니다.

"당신은 개발자도 아니고 관리자도 아냐!"

개발자와 관리자 두 가지 일은 병행하여 둘 다 잘할 수 있을 만큼 쉽지 않습니다.

개발자로 5년~10년 일을 하면 팀장을 하라고 합니다. 하지만 팀장으로서 정확하게 무슨 일을 하라고 하는지는 알려주지 않는 경우가 많습니다. 그래서 기존에 팀장들이 어떤 일을 하는지 보고 따라 해보곤 합니다. 하지만 팀장이라는 역할이 개발자로서 개발의 리더 역할인지 관리자의 역할인지 애매한 경우가 많아서 개발도 하면서 관리도 하면서 어쩔 때는 팀장 일을 하느라고 개발은 소홀히 하거나 팀장이라고는 하지만 여전히 개발에 매달리면서 팀장 일은 나몰라 하는 경우가 많습니다. 어떤 경우는 둘다 못하기도 합니다.

또 개발자 출신으로 관리자가 된 경우에는 관리자로서 해야 할 일들이 얼마나 많고 어려운데 개발 관련된 이슈들만 눈에 들어와서 사사건건 개발에 대한 기술적인 이슈 해결에 직접 참견을 하고 해결하려고 하고 정작 본연의 관리 업무는 소홀히 합니다. 개발자 출신으로 관리자가 된 경우는 물론 개발에 대해서 잘 알고 이런 기술적인 이슈에 대해서 조언을 해줄 수 있는 것은 확실하나 사소한 기술적인 이슈까지 너무 참견을 한다면 후배들이긴 하지만 정작 개발자들을 무시하는 처사입니다.
관리자로서는 HR이슈, 프로젝트, 인력, 비용 관리, 부서간 이슈 조정, 경영자에게 보고 등 많은 일들을 더 잘 처리하는 것이 중요합니다.

이런 현상이 벌어지는 근본적인 이유는 개발자와 관리자의 트랙이 명확하게 구분이 되어 있지 않아서입니다. 개발자라면 언젠가는 둘 중에 하나를 선택해야 합니다. 
관리자를 선택한 사람들은 일정 기간이 지나면 다시는 개발자 트랙으로 돌아오지 못합니다.
하지만 개발자 트랙에 있던 사람은 시기에 구애 받지 않고 관리자가 될 수 있습니다. 물론 관리를 잘하느냐 못하느냐는 다른 이슈입니다. 가능하다는 거죠.

이렇게 정해지면, 자신의 업무에 집중해야 합니다. 개발자 트랙을 선택한 사람이 관리에서 오는 행정적인 Power를 추구해서는 안됩니다. 개발자의 Power는 기술에 대한 지식과 경험에서 오는 카리스마입니다. 관리자 트랙을 선택했다면 관리에 힘을 써야지 개발자의 영역을 넘보면 안됩니다. 개발에 대한 해박한 지식과 이해는 관리에 분명히 도움을 많이 줍니다. 그렇다고 하더라도, 개발자가 해야 할 일을 자신이 해는 안되죠. 이미 관리로 넘어 왔다면 기술과는 점점 Gap이 벌어지게 되어 있고 어느덧 자신이 아는 지식은 옛날 지식이 되어 있을 수도 있습니다. 

물론 누구나 좋은 개발자, 좋은 관리자가 될 수는 없습니다. 하지만 둘다 하겠다고 해서는 둘다 못하는 결과를 초래합니다. 선택을 해야 할 시점에 선택을 해야 하고 회사에서도 제도적으로 이를 뒷받침 해줘야 합니다.

둘다 잘할 자신이 있다고 한다면 저는 "개발자"를 선택하겠습니다. ^^