2016년 7월 31일 일요일

분석 #7 회사가 문제다 - Monotasker 와 Multitasker



SW는 인류 역사상 가장 복잡한 지식산업이다. 반대로 말하면 노동산업적인 요소가 가장 적다는 것이다. 지식산업의 특성상 인해전술이나 열정만으로는 성공하기 어렵다는 것이 문제이다. 한국회사의 경영관리체계는 과거의 노동산업적인 요소가 뿌리깊게 내려 있고 이는 한국 소프트웨어 발전의 가장 큰 장애물이다.

얼마 전에 삼성전자가 "삼성 소프트웨어 경쟁력 백서" 라는 프로그램에서 자사의 역량을 평가했다. “자사의 SW 개발자 중에서 구글의 SW 개발자 역량을 가진 사람이 1-2% 밖에 안 된다”는 내용과 "30층 짜리 건물을 지어야 하는데 삼성은 지금 초가집 짓는 수준이다." 라는 놀랄만한 내용이지만 사실이다. 10여년 전에 “대한민국에는 소프트웨어가 없다” 라는 책을 발간했고 지금도 상황이 전혀 변하지 않았다는 필자의 생각과 정확하게 일치한다. 이는 전문성 위주인 미국 SW 회사와 달리 관리 중심인 한국 SW 회사의 필연적인 결과이다. 그런데 이 문제는 증상이 개발자의 역량에서 나타났을 뿐 개발자의 잘못이 아니고 전적으로 회사와 경영진의 책임이다.

지금까지는 막연하게 SW 선진국과의 형상 비교만으로 근거 없이 한국 SW회사의 관리자나 경영진의 문제점을 지적하고 비판하는 내용이 많았는데 과학적인 근거가 나왔다. 스탠포드 대학에서 연구한 결과인데 다중작업자(Multitasker) 와 단일작업자(Monotasker) 의 차이점에 대한 연구이다. 다중작업자는 여러 가지 일을 동시에 하는 사람을 말하고 단일작업자는 한가지 일을 집중해서 하는 사람을 말한다. 다중작업자들은 자신이 다른 사람들을 인터럽트 하기도 하고 자신도 인터럽트를 당한다. MRI 조사 결과 다중작업자는 다른 일이 끼어들 때마다 흥분과 쾌락의 호르몬인 도파민이 나오고 그 쾌락에 서서히 중독되어 간다는 것이다. 중독이 심해지면서 간섭 받기를 즐기며 또 기다린다. 더 놀라운 결과는 그렇게 중독이 되면 뇌세포가 손상을 입고 IQ가 낮아져 다시는 단일작업자로 다시는 돌아갈 수 없는 불치의 상태가 된다. 결국은 간섭하고 간섭 받는 것을 즐기다 보면 집중력이 필요한 일을 하는 전문 능력은 영원히 없어진다.

한국회사의 임원이나 관리자는 하루 종일 수 많은 회의와 보고에 시간을 보내는 전형적인 다중작업자들이다. 또 개발자도 경력이 몇 년만 되면 팀장과 같은 관리 업무를 하게 된다. 이는 다중작업자가 되기 시작하는 출발점이다. 어차피 관리자들은 이미 전문 능력이 없어진 다중작업자이기 때문에 다중작업자가 되어도 상관이 없다. 하지만 개발자들은 한 번 관리를 하게 되면 영원히 개발 전문가로 되돌아 오기 힘들다. 도파민과 권력욕의 쾌락에 빠져 회사생활을 즐기며 산다. 여기까지는 문제가 없다. 어차피 관리자도 필요하기 때문이다. 하지만 관리자들의 본연의 업무가 전문가들이 제대로 전문가의 길로 갈 수 있게 환경을 만드는 일이며 다행히도 그런 작업에는 집중력이 필요하지 않다. 하지만 그런 본연의 업무보다는 표면적인 지식으로 전문성 있는 일에 쓸데없는 간섭을 하고 잘못된 결정을 내리는 것이 한국 관리자의 고질적인 문제이며 개발자들의 의욕을 감소시킨다.

지식산업인 SW 개발은 집중이 필요하다. 특히 초기단계인 분석과 설계 단계는 고도의 집중력을 필요로 한다. 이미 오래 전에 SW 개발자가 가장 많이 보는 블로그를 가지고 있고 마이크로소프트의 엑셀팀장이기도 했던 Joel Spolsky가 자신의 책에서 얘기 했다. 한 번 전화로 인터럽트를 당하면 다시 집중하기까지 30분의 시간이 소요된다고 했다. 모차르트가 음악을 작곡할 때나 작가가 글을 쓸 때 30분 마다 전화가 온다면 일을 제대로 할 수 없다. 바둑에서도 수를 읽고 있는 중에 누가 말을 걸면 처음부터 다시 시작해야 한다. 전체를 보는 일체성이 중요하기 때문이다. 그래서 버클리대의 전산학과 교수가 자기는 프로그래밍을 할 때 휴대폰, 이메일, 메신저 등 모든 통신수단을 다 꺼놓는다고 한다. 학생들에게도 수업시간에 학생들 자신을 위해 휴대폰을 꺼놓으라고 지시한다. 필자도 일주일에 이틀 정도는 아무에게도 간섭 받지 않는 조용한 환경에서 일을 하도록 노력한다. 나의 전문성을 지속적으로 유지할 수 있는 최소한의 귀중한 시간이다.

반면에 삽질, 망치질과 같은 단순 노동작업 일은 중간에 인터럽트를 당해도 다시 시작하는 데 문제가 없다. 일체성과 연속성이 없기 때문이다. 그래서 개발 중에 인터럽트의 영향이 가장 심각한 부분이 분석이고 그 다음이 설계이다. 가장 영향을 적게 받는 부분이 코딩이다. 코딩 단계는 국지적이고 설계한 결과가 있기 때문에 언제든지 코딩이 중단되어도 다시 시작하는 데 문제가 없다. 이런 얘기를 하면 코딩을 우습게 본다고 반론을 제기하는 국내 개발자들이 많은데 그 이유는 분석과 설계 없이 코딩을 하기 때문이다. 혹은 애자일 방법론을 잘못 이해하고 생각 없이 코딩으로 뛰어들어가는 애자일을 빙자한 무모한 방식이기 때문이다. 애자일의 미신 문화에 대해서는 다음에 자세히 얘기하겠지만 분석, 설계, 그리고 코딩을 동시에 하고 있다면 어려울 수 밖에 없다.

참고로 필자는 개발 시에 분석과 설계에 비해 코딩 단계에 극히 일부분의 시간만을 소비한다. 이는 1시간 짜리 프로젝트나 1일 프로젝트나 1개월짜리 프로젝트나 같다. 코딩은 거의 타이핑하는 수준이다. 그러니 단순한 오타 외에는 고칠 것도 없다. 코드를 적으면서 설계를 하는 것은 공사를 먼저 시작하고 빌딩 디자인을 하는 것과 같다. 이러한 방식은 개 집 만들 때나 가능한 방식이다. 모차르트가 작곡할 때 악보에 고친 흔적이 없다는 전설적인 얘기도 같은 맥락이다. 분석이 가장 극단적인 지식산업이고 코딩은 가장 노동 산업에 가깝다. 그 중간에 설계단계가 있다. "분석"은 모든 요소를 한번에 다 고려해서 일체성 있게 생각을 해야 하기 어렵다. 머리가 복잡해져서 아파오기 시작해도 중지할 수가 없다. 그만 두면 어차피 처음부터 다시 시작해야 하기 때문이다. 그래서 여러 명이 할 수 도 없다. 여러 명이 나누어서 할 수 있는 일은 노동산업 쪽에 가깝다.

번잡하게 일하면 열심히 일하는 것처럼 인정을 받는 한국 회사에서는 점점 더 많은 인터럽트가 발생하게 된다. 미국회사에서는 심지어 관리자마저도 자기 시간의 50% 이상 회의를 하고 있으면 도대체 언제 일하냐고 농담의 대상이 되는데 한국은 거의 80 - 90% 를 회의로 보낸다. 대부분이 계획과 분석 없이 정리가 되지 않은 상태에서 다중작업으로 인해 뇌 손상이 되고 기억력이 감퇴되니 묻고 또 묻고 하는 중복적인 보고가 벌어진다. 전문성이 없으니 근무 시간이 고과 평가에서 중요시 될 수 밖에 없다. "넓고 얕은 지식" 으로 무장한 한국의 관리자나 경영진들이 전문성이 없기 때문에 평가도 제대로 하지 못하는 상황에서 필연적인 결과이다. 소프트웨어 용어나 표면 지식으로는 전 세계의 어느 누구한테도 뒤지지 않는 것이 한국의 관리자나 경영진들이다. 용어에 관한 한은 박사 수준이다. 지식으로는 모를 것이 없겠지만 선수나 코치가 될 수 있는 것은 아니다. 그냥 관중 수준일 뿐이다. CTO라는 명함을 가지고 있어도 마찬가지다.

한국이 자랑하는 인천대교와 영종대교의 핵심 설계를 한국이 하지 못하고 일본의 조다이(長大)라는 업체가 맡았다. 한국의 토목 설계 전문가는 "이 회사의 하마지라는 기술자 한 명이 보유한 경험과 기술이 우리나라 교량 설계업체 전체를 합친 것 이상이라고 해도 과언이 아닐 것"이라고 했다. 이런 고부가가치 전문가는 다중작업자 환경에서는 절대 나올 수 없다. 그래서 페이스북의 창업자인 주커버그가 "개발자 한 명이 백 명보다 가치가 있다"라고 했다.

한국 회사의 근무환경은 수 많은 회의와 보고로 인해 단일작업자의 환경이 원천적으로 불가능하고 당연히 전문가는 나오기 어렵다. 그래서 한국 회사에서는 40세가 넘으면 연구결과대로 뇌가 손상을 입고 전문성 역량은 없어져 감원 우선순위가 되는 반면에 단일작업자인 실리콘밸리의 SW 개발자는 40세가 넘으면 회사의 핵심 인력이 된다. 회사에서의 감원 대상은 도파민에 중독된 "넓고 얕은 지식"의 다중작업자이다. 그렇게 된 데는 다중작업 환경을 만든 회사의 시스템과 그런 시스템을 만든 경영진이 전적으로 책임을 져야 한다. 실리콘밸리와 같이 백발이 성성한 개발자인 전문가가 존재하고 그들의 의견을 존중하고 전적으로 따르는 관리자들의 문화와는 전혀 다른 한국회사의 문화는 SW와 같은 극단적인 지식산업과는 궁합이 맞지 않는다.

조용한 환경에서만 생겨날 수 있는 단일작업자만이 진정한 SW 전문가가 될 수 있고 그런 근무환경을 만드는 것이 경영진이 해야 할 일이며 한국 SW 산업이 발전할 수 있는 핵심 필요조건이다. 그러기 위해서는 회사 문화뿐 아니라 분석 능력의 향상 그리고 조용한 개발환경에 필수불가결한 기반 시스템 구축이 우선되어야 한다.