|
내가 책의 저자(이호종 연구소장)를 처음 만난 것은 11년전, 그 때는 한 회사의 대표이사였다. 대표이사였지만, 직접 C 언어와 PHP 언어로 코딩도 하고 개발자와 동등한 관계에서 협업을 했다. 그때 나는 신입사원이라 그런 상황에 대해 특별함을 느끼지 못했지만 직장 생활을 십수년해보니까, 사장님이 말단 사원과 협업을 하는 일이 특별하다는 것을 알게 되었다. 회사의 대표이사가 여러 일에 깊숙하게 개입하다보니, 논쟁도 많고 항상 시끌벅적했다. 이런 논쟁 과정에서 대표이사님이 삐지는 일이 종종 발생했다. 그래서 직원들이 붙여준 별명이 '툭삐'였다. '툭하면 삐진다'는 의미이다. ^^ (절대로, 나쁜 뜻으로 붙여준 별명이 아니다.) 아무튼 책의 저자(이호종 연구소장)은 특별한 성격과 독특한 이데올로기를 가진 분이었다. 회사를 창업하고 처음 1년 정도는 소프트웨어 엔지니어(SE)에 관심을 두지 않았다. 개발업무량이 많지 않았고, 복잡도는 낮았다. 5명 정도가 충분히 할 수 있을 정도였다. 게다가 개발자 수가 많지 않았기 때문에 개발조직 자체를 관리하기 위한 도구와 지식이 필요하지 않았다. (솔직히 그때는 대충 만들어도, 주변 사람들이 감동과 감탄을 하며, 단순한 SW가 돈을 벌어다 주었다. 최고의 시기였다) 그러나 회사의 역사가 길어지면서, 회사가 만들어낸 코드의 양은 기하급수로 늘어나고 비슷하지만 조금씩 다른 코드가 시스템의 여기저기 기생하게 되었다. (이것은 아마도 소비자가 똑똑해져서 그런 것 같다) 대부분의 SW 개발회사들이 처한 상황이 그렇겠지만, 예전의 Requirement와 비슷한 Requirement이지만 프로그래밍 언어로 구현하려고 보면, Requirement의 미묘한 차이만큼 작은 코드 수정량이 있는 것이 아니다. 연구소장님도 머리를 쥐어뜯는 날이 많아졌고, 개발자도 매사 조심스러웠다. 우리는 CVS, WiKi 같은 관리툴을 도입해서 1차적인 관리를 하고 있었지만, 개발자와 코드들이 유기적으로 관리되고 있다는 느낌은 안 들었다. 그렇게 많은 문제들을 해결하기 위해 고민하며, 10년이 흐른 것 같다. 이 책을 읽으면서, 저자(이호종 님)가 SE를 교과서적인 정리가 아닌, Field에서 직접 부딛히며 진정 무엇이 SW 개발자와 관리자를 괴롭히는지 핵심을 찾으려 한 것 같다. 우리 같은 경험이 많은 개발자에게 개발방법론 자체를 정리하는 것은 그다지 중요하지 않을 것이다. 내 또래의 개발자들은 SE의 개념적인 것은 학교에서 학습하고 나오기까지 했으니까. (물론 학생이라면 개념 정리를 먼저하고 Field에 나오는 것이 좋다.) 이 책의 중간에도 종종 언급되었던 것처럼, 천재들만 모아서 개발을 하면 SE를 운운할 필요조차 없다. 그리고 프로젝트의 규모가 작다면 더욱 SE의 필요성을 느끼기 어렵다. 그러나 SW개발회사에서 관리자가 되어보면, "천재"를 찾기는 하늘의 별따기 만큼 어렵다는 것을 알게된다. 중소기업이라면, 이런 천재 개발자 찾기를 꿈꾸지 말아야 한다. S전자, G사, F사, A사 등 에게 수천명의 천재를 양보하면, 중소규모의 SW 개발사들은 평범한 사람들로 덩치큰 프로젝트를 꾸려 나가야 한다. 평범한 사람을 모아놓고 프로젝트를 진행하다보면, 이 책에 묘사된 것처럼 별일이 다 일어난다. 개성이 제각각이고, 사람마다 제 고집도 있고, 감정도 있는지라 프로젝트 관리자는 머리가 복잡하다. 신참 개발자들은 SE를 모른다. SE의 필요성을 입에 거품물고 알려주어도 반응은 시큰둥하다. 왜냐하면, 그들은 프로젝트 관리시 나타나는 문제를 경험하지 못 했고, 1~2번 경험한다고 하다라도 본인이 책임지어야 할 부분이 아니므로 관심이 없다. 그들은 본인에게 주여진 코딩만 잘하면 된다고 생각한다. 실제로는 그것조차도 잘 못한다. ㅡㅡ 반대의 경우, 15~20년 SW를 개발하고 프로젝트를 관리해본 선배들은 SE의 필요성을 느끼고 있지만 무엇을 어떻게 접근하고 해결해야 하는지 모른다. 왜냐하면, 이런 것을 어느 누구도 가르쳐주지 않기 때문이다. 아마 20년 전에 대학교를 졸업한 개발자는 SE라는 과목조차 접할 기회가 없었을 것이다. 우선 신참 개발자들은 프로젝트 관리자의 머리속을 이해하고 더 나아가 감정상태까지 이해하기 위해 이 책을 한번 읽어보면 좋을 것 같다. 세상을 보는 눈이 한층 넓어질 것이다. (이런 혜안을 가진 신참 개발자에게는 연봉 협상시 Special Grade를 주어야 한다. 왜냐하면 훌륭한 개발자에게 걸맞는 대우를 해주어야 S사, G사로 인재를 빼앗기지 않기 때문이다. 평범한 개발자라도 노력해서 천재수준에 오르게 되면, S사, G사로 이동을 한다. 중소기업에게는 위기이다.) 15~20년 경력의 프로젝트 관리자는 더욱 이 책이 필요할 것 같다. 내가 모르는 답을 책이 주기 때문이다. 철저하게 학문적으로 SE를 접근하고 싶다면, 이호종 소장님이 쓴 책이 아닌 다른 SE 관련 서적을 볼 것을 추천하지만 나처럼 현업에서 개발을 하고 프로젝트를 관리하는 사람이라면 "거꾸로 배우는 소프트웨어 개발" 서적을 읽으면 좋겠다. 책속에서 나와 너무 비슷한 문제 상황을 묘사해주니, 감동스럽기까지 하다. 갑자기 생각나는 키워드가 있다. "회의 !!" 이 책에서도 언급하고 있고, 저자와 직접 만나서 맥주 한잔을 할 때도 듣는 것이 있다. "회의, 회의, 회의... 이거 안 하거나 줄이면 안 될까?" 프로젝트 관리자가 SW개발자의 집중도를 떨어뜨리기 때문에 회의에 대한 회의적인 생각이 지배적이다. 10분만 주의가 흐트려져도, 개발자는 다시 집중하기 위해 2~3시간을 허비해야 한단다. 나도 동감한다. 그래서 나도 업무시간에는 SW 개발을 안한다. (즉, 코딩을 안 한다) 남들 퇴근하고 적막한 시간이 되면 집중적으로 코딩한다. 낮 시간에 8시간 동안 할 것을 저녁에 2시간만에 끝낸다. 또는 일주일 내내 쌓아 놓았다가 주말에 반나절 정도 출근해서 하면 대부분 끝난다. 즉, 1주일짜리 개발분량은 주말에 5시간 정도만 하면 끝날 분량이다. (이것은 책 내용이 아니고, 내 생각이다. ^^) 개발자가 몰입해 있는 것 같으면, 어느 누구도 절대 간섭하면 안 된다. 표면적으로 1시간 짜리 회의(Meeting)라도 실제로 개발자는 3~4시간을 날려버리는 것이다. 반대로 개발자는 가능하면 인터넷 서핑/전화질을 하지 않는 것이 좋다. 나의 경우, 코딩/문서화 작업 중이라면 전화를 받지 않는다. (우리 가족들의 전화도 절대 안 받는다. 반대로 내가 10~20분에 일을 마무리하고 전화를 한다.) 아무튼 학교에서 SE를 배울 때는 다루지 않았거나, 또는 별거 아니었던 것을 이 책은 대단한 것으로 여기고 있다. 근데, 내가 십수년을 일해보니까 정말 그런 사소한 것들이 대단하다는 것을 뼈속깊이 느낀다. 여담이지만, 책을 읽다보면 왠지 모르게... 육군 중대장 또는 미식축구 감독의 어투를 느끼게 된다. 저자(이호종 님)는 오프라인에서 만나도 전략, 전술, 스크럼 등 군대에서 쓰는 개념을 종종 언급한다. 책에도 그런 부분이 간혹있다. 그래서 더 흥미롭고 재미있다. (딱딱한 개념서가 아니라는 것을 강조하고 싶다 ^^) 워낙 다독을 좋아하는 저자라서, 다른 기술서들과 다르게 문장이 부드럽고 흥미를 이끈다. 교과서라 생각하지 말고, 인생 선배가 나랑 치킨을 먹으며 들려주는 조언이라고 생각하면서 읽어도 될 것 같다.
|
|
한 때 XP가 등장했을 때 열광했던 기억이 난다. 정말 내가 꿈꾸고 바라는 방식으로 일할 수 있겠다는 생각 때문에 XP 관련 책을 읽고 관련 내용을 공부했었다. 하지만 내가 XP 초창기에 관심을 가졌던 것은 XP에서 주장하는 다양한 개발 프랙티스에 집중되어 있었다. 많은 개발자가 XP에 관심을 가진다. 팀장, PM과 같은 관리자가 XP에 관심을 가져야할 듯 한데 애자일에 관심을 가지는 사람들을 살펴보면 개발자인 경우가 대부분이다. 왜 개발자들이 애자일에 더 많은 관심을 가질까라는 생각을 해봤는데 어쪄면 애자일 진영에서 주장하는 개발 프랙티스에서 더 많은 관심을 가지고 있기 때문이지 않을까라는 생각을 해본다. 애자일에 관심을 가지고 한 참의 시간이 지난 후에야 알았다. 애자일을 성공하려면 애자일에서 주장하는 프랙티스를 도입하는 것이 우선이 아니라 그 속에서 일하는 사람들의 생각이 먼저 바뀌어야 한다는 것을.. 물론 사람들의 생각을 모두 바꾼 후에 시작할 수도 없을 뿐만 아니라, 사람들의 생각이 쉽게 바뀌지도 않는다. 하지만 기술적으로 먼저 접근하는 것이 아니라 사람에 대한 이해가 선행되고, 사람들 간의 신뢰가 일정 수준으로 쌓인 후에 변화를 만들고 기술적인 접근을 시도할 때 성공할 수 있다는 것을 경험이 쌓이면서 조금씩 느껴가고 있다. 이 책은 그런 측면에서 기술적인 프랙티스보다는 사람에게 초점을 맞추고 있다. 기술적인 세세한 내용보다는 왜 이 같은 도구를 사용하고, 기술을 사용해야 하는지에 대하여 조목 조목 이야기하고 있다. 기술적인 적용을 하기에 앞서 사람들을 설득하는데 대부분의 공간을 할애하고 있다. 이미 온라인 상이나 다양한 책을 통해서 접했던 이야기일 수 있다. 하지만 하나의 주제를 다양한 시각으로 바라보는 측면이 있기 때문에 충분한 가치가 있다고 생각한다. 이 책은 프로그래머보다는 팀장, PM, 사장 위치에 있는 사람들이 봤으면 좋겠다. 지금까지 무엇인가 새로운 변화를 만들고, 재미있는 개발 환경을 만들고 싶은 관리자라면 이 책을 통해 아이디어를 얻을 수 있을 것이다. 이미 생각은 하고 있지만 실천이 잘 되지 않는다면 이 책을 통해서 마음을 다지고 다시 한번 실천할 수 있는 계기가 되면 좋겠다. 이 책에서도 이야기하고 있지만 이 책이 이야기하고 있는 내용은 우리 모두가 이미 알고 있을 수도 있다. 하지만 아는 것과 실천하는 것은 다르다. 아는 것에만 머무르고 실천하지 않는다면 모르는 것만 못할 것이다. 정말 알고 있다면 실천을 통해 결과를 만들어 내는 것이 진정 알고 있는 것이라 자부할 수 있을 것이다. 변화를 만들어 갈 때 아이디어가 필요하거나 도움이 필요하다면 이 책이나, 이 책에서 제시하는 참고 자료를 통해 한 걸음씩 걸어갈 수 있기를 기대한다. |
|
"기술과 인문학의 교차점에 있다." 마지막으로, 책은 저자가 블로그에 올렸던 글들을 모아서 삽화와 함께 책으로 다시 엮었다. 저자는 정말 많은 책을 계속 읽어가시는 분이라 그만큼 사변적이고 개성적인 시각을 가지고 있다. 하드웨어 개발자로 시작해서 소프트웨어 개발 그리고 조직 관리등을 거치면서 쌓인 경험과 생각을 한권의 책으로 엮었다. 끝으로 책 중간에 나오는 개발자의 그레이드를 나누는 살벌한 피라미드가 있는데 , 댓글로 아웃사이더라고 달은 분이 계시다. 글을 쓴 분도 댓글을 다신 "분" 도 엘레강스 하고 그레이트하다 주제넘은 내 생각에는 개발자의 그레이드를 나누는 것은 아무런 의미가 없다고 생각한다. 나누어서 인증서를 줄 방법도 없고, 스스로 프로라고 하면 옆에 있던 사람들이 아냐 라고 할 수 있는 정량적인 방법은 존재하지 않는다. 개발자의 그레이드를 정량적으로 인정할 수 있는 유일한 방법은 허리 사이즈에 비례한다고 이야기 할 수 있다. 즉, 허리가 34 인치 이상만 일단 일정 수준에 오른 개발자라고 볼 수 있다. 물론 농담이고. 개발자는 아키텍트를 지향해야 한다고 생각한다. 전체를 조망하는 위치에 올라가야 나머지가 보인다. 그레이드에 속박당하지 말고 독수리 처럼 높은 시선으로 전체를 조망하도록 스스로 연마하고 노력한다면, 나머진 쉬워진다고 생각한다. |
|
강력한 개발자가 되길 바란다는 문구와 함께 선물 받은 이 책은 개발자만을 향한 책은 아니었다. 기획자, 개발자, 개발관리자까지...IT업계에 종사하고 있는 사람들에게 조곤 조곤 얘기하는 책이었다. |
|
책을 읽자면, 책을 처음 들었을 때의 느낌과 마지막 장을 다 읽고 난 후의 느낌이 다른 책이 간혹 있다. 괜찮다고 생각했던 책이 후반부로 가면서 공감할 수 없어 실망감을 느끼게 하는 경우도 많았다. 이 책은 반대의 경우다. 처음 도입부에서는 거부감이 느껴졌으나 읽어 가면서 공감 가는 부분들이 많아 형광팬으로 줄을 쳐 가면서 읽었다. |
|
|
|
사실 소프트웨어 개발이라는 것이 쉽게 생각할 수도 있지만 하면 할수록 어려운 것 같아요. 그러나 무엇보다 일을 하면서 중요한 것은 경험이겠죠. 마찬가지로 소프트웨어 개발을 하다보면 매번 프로젝트마다 바뀌는 부분이 있는 반면에, 변하지 않는 부분들도 있는 것 같아요. 그것을 어떻게 보면 공통모듈이라고 할 수 있을텐데, 책에서는 이것을 인문학적 영역으로 보고 수많은 개발방법론들 중에서 자신에게 맞는 또는 프로젝트 환경에 맞는 최적의 개발 방법론을 선택하는 것이야 말로 성공적인 프로젝트 수행을 위한 첫걸음이 아닐까 싶어요. 때로는 우리들은 기존에 해왔던 방법에 너무 익숙해져서 그런 고정관념 때문에 새로운 것을 시도하지 못할 때가 있는데, 그것을 과감히 깨어버리고 거꾸로 생각해보자는 것이 이 책을 제목이기도 하고 저자가 말하고자 하는 내용인 것 같아요. 즉, 제대로 소프트개발을 배우기 위해서 어떻게 해야 할지 고민해봐야겠죠. 많은 사람들이 착각하기 쉬운 것이 소프트웨어 개발이 기술적인 부분인지 아니면 인문학적인 부분인지 모른다는 거죠. 사실 공학적인 부분이라기보다는 사람과 조직을 다루는 인문사회학적 분야가 아니겠어요. 그렇기 때문에 딱 정해진 답이 없는 것 같아요. 기존의 개발방법론을 그대로 가져다가 쓰는 것이 아니라 다양한 환경에 맞추어서 적절하게 변화해서 써야 하는 거겠죠. 프로젝트를 하다보면 실패하는 프로젝트도 나오게 되는 데 어떻게 보면 이런 부분이 많이 부족해서 생기는 것이 아닌지 모르겠어요. 무엇보다 개발은 기술이 필요하지만 그 기술은 사람에게 나온다는 것. 사람이 중요하다는 것을 잊어서는 안될 것 같아요. (이 서평은 출판사로부터 무료로 제공 받아서 작성한 서평입니다.) |
|
이 책을 읽고 나서 바로 팀원들에게 추천해줬다. |
|
경력이 어느정도 있으신 분들께서는 다년간의 경험이 지금의 쏟아져 나오는 개발 프로세스나 기술의 홍수속에서 살아갈수 있는 방법으로 체득하여 살아가고 계실 것 같습니다. |