한국 개발 문화와 외국(미국, 일본) 개발 문화의 차이


Other/Experience  2019. 5. 2. 00:27

안녕하세요. 명월입니다.


 저의 개발 경험은 거의 경력의 초반부는 한국에서의 경험이 많고 지금은 일본, 그리고 미국 개발경험이 많습니다. 미국 개발 경험이라고 해서 정말 미국에 가서 개발한 것이 아니고 미국 사람들로 조직된 개발팀에서 일한 경험을 말합니다. 그래서 경험의 차이가 조금씩 있을 수 있고 한국에서의 개발은 아르바이트나 신입 시절의 경험뿐이니 조금 틀릴 수도 있습니다.

 

 내가 한국에서는 SI의 경험이 조금 있는데, 소수 몇 명의 팀 또는 혼자서 개발한 경험이 대다수입니다. 분명 팀이 존재하기는 했었는데 업무 분장의 이름으로 서로간에 업무가 침범하지 않는 형식으로 일했던 걸로 기억합니다. 즉 5개의 프로젝트가 있으면 내가 담당하는 것은 2~3개이고 사수가 있거나 아니면 혼자서 담당해야 하는 프로젝트들이었습니다. 그러다 보니 프로젝트 중에 이탈(휴가나 연차)하기가 매우 힘들었던 걸로 기억합니다. 왜냐하면, 내가 쉬면 그날 그 업무를 담당할 사람이 없어집니다. 지금 생각해보면 이런 방식이 매우 비효율적이고 왜 이렇게 일할까 고민을 하겠지만, 그때는 그게 당연하다고 생각했던 걸로 기억합니다.

 

 일본의 개발문화는 보통 공정 이론 중심과 FM으로 움직입니다. 즉 전통적인 워터폴 공정대로 움직이는 경우가 많고 제 담당은 그 공정 안에서 부분 할당을 받아서 작업합니다. 그렇기 때문에 개발 초기에 설계서 씨름이 많고 팀 내 개발자들과 그에 대한 충분한 대화와 회의가 많습니다. 그렇게 여러 회의와 검증을 거쳐 설계서를 완료시킨 상태에서 개발로 가는 경우가 많기 때문에 중간에 개인 사정 이탈(휴가나 연차)이 발생해도 다른 사람이 내 영역을 어느 정도 알고 있습니다. 그렇기 때문에 업무 대체가 가능하고 여러 검증을 설계단계에서 거쳤기 때문에 실제 개발 상태에서는 레뷰 이외에는 서로 간섭할 여지가 없습니다.(이 부분은 한국이랑 비슷해서 실제 개발 중간에는 서로 대화도 없이 썰렁하게 진행하는 경우도 있다.) 그래서 그런지 완성도가 꽤 높은데 문제는 아무리 작은 프로젝트도 시간이 엄청나게 걸립니다. 최소 6개월에서 심하면 2~3년 가는 프로젝트도 많습니다. 이게 전부 워터폴 공정으로 움직이는 건 아니고 최근에는 이런 개발 기간이 너무 길어서 애자일도 도입하는데 아직은 많지는 않습니다.

 

 미국의 개발문화는 조금 자유스럽습니다. 땅덩어리가 커서 그런지 각자 업무시간이 다른 경우가 많아서 flexible 형식이 많습니다. flexible이란 업무시간이 정해지지 않아서 그냥 할당량을 정해 놓고 완수하는 것으로 하루 업무가 종료됩니다. flexible 스타일의 업무다 보니 서로 간의 회의나 토론은 보통 Jira나 레드마인을 이용하고 업무 흐름을 마일드스톤 형식으로 정해서 일을 합니다.

 그렇게 하다 보니 애자일 공정이 굉장히 발달되어 있고 서로 간의 불필요한 대화보다는 코드 레뷰등이 굉장히 많습니다. 한번은 if 문하나 가지고 일주일 동안 토론한 적도 있습니다. 이런 방식이 마냥 좋은 것만은 아닙니다. 개발자들 간의 실력 차가 비슷하면 전혀 문제없는 최고의 형태인데 이게 차이가 있으면 이야기가 달라집니다. 그리고 이런 공정에 대해서 flexible이라고 해서 느리지가 않습니다. 즉, 미국 방식은 문서를 따로 만들지 않고 소스 주석으로 처리하거나 많은 리팩토링을 통해서 최적의 코드를 찾아놓는 경우가 많은데 코드만 봐도 사양이 이해가 되는 경우가 많습니다. 그렇다 보니 업무속도가 엄청나게 빠르고 조금만 어어 하고 일주일 정신 놓고 있으면 프로젝트 공정은 이미 저 앞으로 날아간 경우도 많습니다. 그렇다 보니 이런 흐름를 따라갈 실력이 되지 않으면 개발이 전혀 되지 못합니다. 또 미국은 해고를 엄청 나게 쉽게 해서 한 달 정도 어리바리 타면 바로 fire!를 받을 수도 있습니다.

 

 이건 순전히 저의 경험이고 어느 개발 문화가 좋다고는 이야기할 순 없습니다. 개인적으로는 초급개발자에서 성장하기에는 일본식 개발 환경이 좋다고 생각합니다. 일본 개발 분위기는 전부다는 아니지만 정말 표준대로 움직입니다. 그러다 보니 경험이 쌓였을 때는 이런 방식이 좋다 안 좋다는 자신만의 기준을 세우는 데 좋은 경험됩니다. 한국식은 아마 메이져 IT회사(네이버, 다음등등)는 분명 표준 공정대로 움직일 것입니다. 그 점이 관리 면이나 공정시간이 가장 효율적이기 때문입니다. 그러나 대다수의 SI업계는 아까 이야기한 것처럼 한두 명의 개발자에게 프로젝트 독박을 씌웁니다. 이건 진짜 고쳐져야 할 부분이라고 생각합니다. 그 사람이 휴가를 가거나 퇴사하면 회사 업무가 정지합니다. 이런 건 정말 있을 수 없는 공정이기 때문에 이런 문화는 없어져야 하는 게 맞습니다.