Tag Archives: 관리

맨먼스 미신

소프트웨어 개발에 대한 에세이로 처음 출간된지 40년이 지났음에도 그 원칙이 유효하여 고전으로 인정 받는 책. 인력을 더 투입한다고 하더라도 개발 기간이 짧아 지지 않는다는 –이것이 바로 맨먼스 미신이다– 것이나 엘리트 주의의 표방, 파일럿 프로젝트의 중요성 강조, 소프트웨어 개발에 은탄환은 없다와 같은 주요한 내용이 담겨있다. 

맨먼스 미신에 대해 오믈렛 비유가 흥미로운데, 나는 한국 사람이므로 <방망이 깎던 노인>의 비유를 들어보겠다. "끓을 만큼 끓어야 밥이 되지, 생쌀이 재촉한다고 밥이 되나." 아무리 재촉해도 개발에 필요한 절대 시간은 줄일 수 없다. 다만 인력을 더 투입하면 –물론 그 인력이 잘 관리된다는 전제 하에– 더 많은 일을 해낼 수는 있다. 열 사람이 달려든다고 밥 짓는 시간을 줄일 수는 없지만, 밥을 짓는 양을 10인분으로 늘릴 수는 있다는 것.

은탄환이 없다는 개념은 다이어트의 비유를 들면 쉽게 이해 가능하다. 다이어트는 직접 하는 것이지 옆사람이 대신해 줄 수는 없다는 것. 좋은 결과물은 끊임 없이 시도하고 개선하고 팀원과 소통하는 것을 반복해야 가능한 것이지 –이러한 맥락 때문에 개발팀을 스포츠팀에 비유하는 것을 좋아한다.– 어떤 도구나 프레임워크를 쓴다고 그것이 저절로 결과물을 만들어 주지는 않는다. 만일 그것이 가능했다면 마치 공장에 자동화 로봇이 노동자들을 대체한 것처럼 소프트웨어 개발자는 진작에 사라졌을 것이다. –도구는 생산성을 곱하기로 증가 시켜주는 것이기 때문에 스스로 하지 않으면 0이 될 수 밖에 없다.

저자가 주장하는 다양한 내용이 오랜 기간이 지났음에도 유효한 것은 그 원칙이 결국 무언가를 만들고 팀 작업을 하는데 필요한 근본 원칙을 이야기하고 있기 때문이다. 컴퓨터로 작업하는 것을 넘어 이미 수천-수만 년전부터 인류가 무언가를 만들어내고 협업을 하는데는 저자가 주장한 원칙들이 사용 되었다는 것. 

이 내용을 이해하게 되면 무언가 이루는데는 끊임 없이 노력하는 것 외에는 방법이 없다는 것을 이해할 수 있게 된다. 사실 성공에 이르는 원칙이란 어처구니가 없을 정도로 매우 단순하다. –건강해지는 방법을 모르는 사람은 없다– 다만 그 단순한 것이 쉽지는 않기 때문에 –Simple but not easy– 많은 사람들이 쉽고 빠르게 성공을 이룰 수 있는 요행을 바라게 되고, 그 요행 심리를 이용한 사기꾼이 판치고 하게 되는 것. 

인생 1-2년 살고 말 것이 아니라면 지금은 다소 늦는 것처럼 느껴지더라도 요행을 바라지 않고 꾸준히 열심히 하는 것이 5-10년 뒤에 나를 더 크게 성장시켜 줄 것이다. 느린 것이 빠른 것이다. –Slow is fast

티밍

팀을 운영하는 –이 책의 저자는 이를 '티밍(teaming)'이라고 부른다– 방법에 대한 책. 얼마전 구글의 HR 보고서에도 나오는 '심리적 안정감'을 중심으로 팀을 구성하고 운영하는 방법에 대해 다양한 사례를 들어가며 설명하고 있다.

결국 팀이라는 것은 서로 다른 역량을 가진 사람들끼리의 협력체이기 때문에 갈등이라는 것은 생길 수 밖에 없고 –서로가 아는 분야가 다르므로– 단순 반복적인 일을 하는 것이 아닌 이상 –그런 일은 이제 점점 로봇이 대신하고 있다– 해본적 없는 일에 대해서는 시행착오가 있을 수 밖에 없다.

팀 내의 심리적 안정감은 위와 같은 여러 갈등과 어려움을 이겨낼 수 있게 해주는 힘으로 작용하기 때문에 중요성이 대단히 높다. 구글은 성공하는 팀의 가장 중요한 요인이 심리적 안정감이라고 했을 정도. –스포츠 좋아하는 사람이라면 잘 알겠지만, 수퍼스타로 이루어진 올스타 팀보다 끈끈한 팀워크를 가진 팀이 더 강하다. 물론 그 팀에 수퍼스타가 한 명 있으면 위대한 팀이 탄생하겠지만. —<애자일 이야기: 구글이 밝힌 탁월한 팀의 비밀>

다만 심리적 안정감을 높이는 것은 한 번 한다고 되는 것이 아니라 끊임 없는 노력이 필요한 실천적 행위이다. –이래서 저자는 동사의 의미로서 티밍이라고 불렀다– 이러한 행위는 각 팀에 주어진 상황에 따라 조금씩 다를 수 있으므로, 결국 다른 사람들의 방법에서 조언을 받되 스스로의 방법을 찾아서 끊임 없이 혁신하고 개선해야 함. 

현실은 '아는 것'이 아니라 '하는 것'이다.

구글은 어떻게 일하는가

기업을 성공시키는 것은 결국 기업이 만들어내는 가치(제품 or 서비스)에 달려있지만, –보다 정확히 표현하자면 가치를 혁신하는 것에 달려 있다– 훌륭한 가치를 지속적으로 만들어 낼 수 있게 하는 원동력은 바로 기업을 구성하는 사람과 기업 문화에 달려 있다.

이 책은 구글의 기업 문화를 이야기하는 책으로 구글이라는 회사가 자신들의 문화를 어떻게 만들고 유지해 왔는지에 대해 다루고 있는데, 저자들이 구글의 핵심적인 인물들이다보니 핵심적이고 좋은 내용들이 많이 나온다. –언제나 그렇듯이 어떤 분야를 다루느냐가 보다 핵심에 얼마나 근접했느냐가 더 중요하다. 더불어 워낙 뛰어난 사람들이라 그런지 글의 내용도 대단히 전문적임.

저자들은 변화의 속도가 빨라진 시대라서 자신들의 방법이 유효하다고 말하지만, 개인적인 생각으로는 비단 변화의 속도가 빨라진 현대에만 적용 가능한 방법은 아니라고 생각 된다. 정말 잠깐 언급되지만 실제로 3M은 이미 오래 전부터 책에서 소개된 원칙을 잘 유지하고 있음. –엄밀히 말하자면 3M이 구글보다 먼저고 구글이 3M에서 배워온 것이지만.

여튼 어떻게 조직의 창의성, 생산성을 극대화 하는지에 대한 다양한 방법과 사례들이 나오고 있으므로 조직 관리에 관심이 있다면 꼭 한 번 읽어볼 만한 책이라 생각 된다. 

사실 여기서 정말 중요한 것은 구글이 멋진 방법을 사용하고 있다는 것이 아니라 구글이 자신들의 방법을 고민하고 적용하고 개선한 과정 자체에 있다. 늘 그렇듯이 자신에게 맞는 방법을 직접 찾고 적용해야 함. 성공한 조직의 성공한 방법은 그 조직의 맥락에서 유효한 것이므로 그 방법을 그대로 따른다고 똑같이 성공할 수는 없다. 원칙은 따르되 세부적인 방법은 자신의 조직에 맞게 변형해서 사용해야 함.

슈퍼팀

슈퍼팀은 어떻게 만들어지는가에 대해 이야기하는 책. 훌륭한 팀으로 유명한 여러 팀들의 사례를 통해 슈퍼팀에게는 어떠한 특별한 것이 있는가를 이야기 하는데, '공동의 목표를 가져라' 정도 외에는 딱히 핵심적이라고 느껴지지 않아서 그냥 그랬음.

이런 사례 위주의 책이 설득력을 가지려면 단순히 슈퍼팀의 특징만 끄집어낼 것이 아니라 슈퍼팀이 아닌 팀과 비교 분석을 해야 좀 의미가 있을텐데, 그런 것 없이 '슈퍼팀의 특징만 놓고 슈퍼팀이 되기 위해서는 이런 것을 해야 한다'고 이야기 해서 좀 설득력이 떨어진다.

성공한 사람의 모습을 보며 그의 행동이 모두 성공 요인이라고 보는 것과 같은 식. 사실 그런 특징은 성공하지 못한 사람도 갖고 있을 수 있는데 말이지.

똑바로 일하라

우리가 가장 흔히 오해하기 쉬운 것이 바로 실패를 거울 삼아 성공에 이를 수 있다는 것입니다. 사실 실패란 너무도 쉽고, 또 너무도 다양하기 때문에 –정말 예측하지도 못한 별 희한한 이유 때문에도 실패는 발생합니다– 실패는 같은 실패를 안 하게 할 뿐 그것이 성공에 이르는데 도움이 되지는 못합니다. 

실제로 이 책 본문에 나오는 하버드 비즈니스 스쿨의 연구에 따르면 한 번 성공한 사업가가 다시 성공할 확률은 34% 였지만, 처음에 실패한 사업가가 다음 번 사업에서 성공할 확률은 사업을 처음 시작한 사람의 경우와 거의 비슷한(23%) 수준이었다고 합니다. 실제로 실패가 별반 도움이 되지 않는다는 것이죠. 

때문에 무슨 일을 하든 성공을 위한 노력을 해야 옳지, 이번에는 실패하더라도 그걸 발판 삼아 다음 번에 성공하겠다는 마음가짐으로는 어떤 일을 하더라도 실패할 수 밖에 없습니다. 어떻게든 성공을 시켜야겠다는 마음가짐으로 임해도 성공확률이 높지 않은데, 빠른 실패를 통해 경험을 삼는다는 것은 그다지 도움이 되지 않는 것이지요. –앞서도 말씀 드렸지만 실패의 케이스는 워낙 다양하기 때문에 빠르게 실패를 겪어도 다음 번엔 같은 실패는 안 하겠지만 또 다른 희한한 이유로 실패를 하게 됩니다. 

따라서 오로지 성공만이 그 가치를 갖는다고 할 수 있는데 –사실 성공의 크기를 어떻게 두느냐는 다른 이야기이겠습니다만– 이 책은 그 중에서도 –자신이 어떻게 성공했는지 모르는 그저 운이 좋았을 뿐인 사람이 아닌– 스스로 성공을 일구어낸 사람의 이야기를 담고 있기 때문에 참으로 높은 가치를 갖는 책이라 할 수 있습니다. 때문에 꼭 사업을 하려고 하시는 분이 아니더라도 성공에 대한 경험을 듣는 것은 그 자체로 큰 의미가 있기 때문에 관심 있으시다면 한 번쯤 읽어보면 좋을만한 책이라 생각됩니다.

린 소프트웨어 개발

왜 작업이 계획대로 진행되지 않을까?

이 문제는 비단 현재의 소프트웨어 업계에 뿐만 아니라 아주 오래전 공장에서 하드웨어를 만들기 시작했던 시기에도
어쩌면 수천년전 건축, 토목 공사를 했던 사람들에게조차 의문이 되지 않았을까 생각이 됩니다

사전의 완벽한 계획에 의해 작업이 순차적으로 딱딱 이루어져서 그 결과인 완성품은 사전에 계획된 모습 그대로 나오는 것이 모두가 생각하는 가장 좋은 방식이 아닐까 싶은데
현실은 항상 그렇지가 않습니다

이 책에서도 언급 되지만 그것이 안 되는 근본적인 이유는 
애초에 계획이 실제 작업 환경의 복잡성을 완전히 예측할 수 없기 때문입니다

실제 작업 중에는 여러가지 요인들에 의해 항상 미리 계획된 내용은 변경이 생기게 마련이며 
또 미리 예측 하지 못한 부분에서는 항상 문제가 발생하기 마련인데
전통적인 방식인 상급 관리자에 철저한 계획에의해 모든 작업의 통제가 이루어지는 순차적 작업 방식은
바로 이러한 계획의 변경이나 예측하지 못한 상황의 문제가 발생했을 시의 대응력이 떨어져
결국 제품질의 하락, 개발 시간과 비용의 증가 같은 좋지 않은 결과가 발생하게 됩니다

더욱이 시대가 지나며 날로 늘어만 가는 개발의 복잡성으로 인해
예측 불가능한 변경 사항에 대한 적절한 대응을 할 수 있는 방법이 필요하게 되었고
이 책은 바로 그러한 문제를 줄여줄 방법론인 린 소프트웨어 개발 방법에 대해 이야기 하고 있습니다

도요타의 생산 방식을 기반으로 하여 만들어진 이 린 소프트웨어 개발 방법은
개발 과정에서의 낭비를 줄이고 개발 도중에 발생하는 다양한 문제에 대한 대응력을 높일 수도 있고 보다 높은 품질의 제품을 만들 수 있는 여러 방법들을 소개합니다
피드백, 반복, 동시 개발, 당김 시스템, 자기결정권, 리펙터링, 테스트 등이 바로 그러한 것들이지요

사실 개인적으로는 –물론 위와 같은 방법들도 모두 훌륭한 것이지만– 이 책에서 가장 크게 얻은 통찰은 
항상 개선을 하는 자세를 갖는 것이었습니다
한 번에 일이 마무리 될 것이라는 생각을 하지 않고 작업을 진행하며 문제가 되는 부분을 끊임없이 개선해서 점점 더 나은 결과물을 만들어 내는 과정은 비단 개발과정에서만이 아니라 모든 분야에 전반적으로 걸치는 내용인지라
큰 감명을 받은 것이지요
–이 부분은 게임 디자인에 있어서도 적용 가능하리라 보는데 자세한 내용은 다음에 정리해서 이야기해 보겠습니다

책 중간에도 언급되지만 사실 어떤 특정한 방법론이 모든 곳에서 통용될 수는 없습니다
각자가 처한 상황에 맞춰 맞는 방법을 취하거나 혹은 자신들에게 맞게 변형해서 사용되야 하는 것이지요
 –많은 곳에서 이러한 방법론을 도입하려다 실패한 이유가 개인적으로는 바로 여기에 있지 않을까라고 생각됩니다
실천 가능한 방법들에 대한 소개도 물론 훌륭한 책이지만
그보다도 낭비를 줄이고 끊임없이 개선한다는 기본 철학을 기초한다는 점에서 참 훌륭한 책이라 생각 됩니다
그것을 이해할 수 있다면 어떤 환경에서든 좋은 방법을 찾아낼 수 있기 때문입니다

피플웨어

간만에 책 소개해 드립니다
이번에 소개해 드릴 책은 톰 디마르코, 티모시 리스터 지음 박승범 옮김의 '피플웨어' 입니다
아시는 분은 아시겠지만 이 책은 관리에 대해 다룬 책으로 이전에 읽은 조엘 온 소프트웨어에서 하도 극찬을 하여 읽게 되었는데 읽고나서 역시나 좋은 책이구나라는 것을 느꼈습니다

이 책이 보통의 관리에 관한 책과 좀 다른 것은 보통의 책들은 개발 방법론에 설명이 치우치는데 반해 이 책은 환경에 집중하고 있다는 것입니다
근무 여건이나 관리자가 개발자가 최대한의 생산성을 내게 하기 위해서 해야 할 것들, 팀 문화에 대한 것 등 직접적인 개발 방법과는 거리가 있는 내용을 다루고 있다는 것이지요

그럼 일단 책을 살펴 보겠습니다
이 책은 총 6부 34개의 장으로 이루어져 있는데 마지막 6부는 신판이 나오면서 추가되었다는 것이 독특합니다
1부 – 인적 자원 관리
2부 – 사무실 환경
3부 – 꼭 필요한 사람들
4부 – 드림팀 키우기
5부 – 일은 재미있어야 한다
6부 – 피플웨어 그 후

목차를 보시면 아시겠지만 이 책은 처음에 개발에 있어서 사람이 얼마나 중요한지를 강조하며 
이 후 그 사람들이 최고의 생산성을 낼 수 있는 방법 -환경, 문화 등-에 대해 설명 합니다
그리고 마지막 장에서는 시간이 지난 후 신판이 나오면서 저자들이 그동안 더욱 쌓은 경험을 바탕으로 이전에 했던 얘기에 추가하는 내용을 담고 있습니다

개인적으로 이 책에서 놀라웠던 것은 
이 책이 개발 -더 나아가 모든 업무- 에 있어 사람이 얼마나 중요한지를 깨우쳐 주고 있다는 것이었습니다

한 명의 사람을 교육시키고 그 사람이 제대로 된 생산성을 내기까지의 비용, 이직 이나 감원으로 인해 발생하는 비용 -그 동안 그 인원에게 들인 비용이 다 물거품이 되는 것이고 그 공백으로 인한 생산성 차질, 이전에 했던 교육이 이어지지 않아 발생하는 개발력 상실 등- 등 이 얼마나 큰지를 설명하고 있다는 것이지요
 -책에선 도리어 개발 방식 특히나 표준화된 개발 방식 같은 것에 회의를 품고 있습니다

덕분에 저도 사람이 하는 업무에 있어서 사람이 얼마나 중요한지를 다시금 깨달을 수 있었으며
표준화된 개발 방식을 신봉하며 개발 방식 하에 사람은 언제든 부품처럼 갈아 끼울 수 있다는 생각이 얼마나 위험한 것인지도 깨달을 수 있게 되었습니다
제가 비록 관리자가 아님에도 이 책을 통해 많은 것을 얻을 수 있었기 때문에 아마 관리자 역할을 수행하시는 분 뿐만 아니라 저와 같은 다른 분들도 한 번쯤 읽어 보시면 많은 도움이 될 수 있는 책이 될 것입니다

똑똑하고 100배 일잘하는 개발자 모시기

또 책 소개해 드립니다
이번에 소개해 드릴 책은 이전에 소개해 드렸던 조엘 온 소프트웨어의 저자인 조엘 스폴스키저, 이석중 옮김의 '똑똑하고 100배 일 잘하는 개발자 모시기'입니다
 – 부제가 조엘 온 소프트웨어 시즌 2 이군요

사실은 조엘 온 소프트웨어를 읽은 후 소프트웨어 블로그 베스트 29선을 읽다가
그 책은 조엘 온 소프트웨어와 달리 비프로그래머가 읽기에는 꽤나 버거운 책인 것 같아 
곧바로 이 책으로 넘어가게 되었는데 읽은 후 감상은 참 미묘하다 였습니다

일단 내용부터 살펴보겠습니다
이 책은 부록을 제외한 7개의 장으로 이루어져 있습니다
1장 – 고음에 능한 성악가
2장 – 최고 수준의 소프트웨어 개발 인재 발굴
3장 – 프로그램 개발자들에 관한 현장 지침
4장 – 이력서 분류 방법
5장 – 전화 인터뷰
6장 – 게릴라식 인터뷰 방식
7장 – 최적의 팀 구성

이 책은 초반부에 능력있는 개발자가 그렇지 않은 개발자에 비해 얼마나 높은 생산성을 가지는지를 역설하고
그 이후엔 그러한 인재를 뽑기 위한 방법에 대한 이야기 -이력서 분류와 인터뷰 등- 를 합니다
그리고 마지막엔 팀 관리를 어떻게 해야 하는 것에 대한 이야기를 하고 있지요

비록 자세히 설명드리진 못했지만 개인적으로 이 책에서 다루는 내용에 대해 깊이 공감하고 
또한 이 책에서 다루는 내용을 더 많은 사람들이 알기를 바라지만
이 책 자체에 대해서는 다소 애매하다는 생각이 든 것이 이 전에 조엘 온 소프트웨어를 읽은 사람이라면 굳이 이 책에서 읽을 만한 이유가 없다는 것입니다

조엘 온 소프트웨어에서 우수한 개발자와 그 채용에 대한 이야기를 기반으로 하여 살을 더해 따로 책을 낸 것 같은데 그렇게 살이 더해진 것은 아니고 이전 책에 있는 내용과 거의 똑같은 내용이 주를 이루고 있어서
 – 이전 책을 읽었다면 책을 읽으면서 다음에 무슨 이야기를 할 지 미리 알게 됩니다
왜 이런 책이 따로 나왔나 싶기도 합니다

책 내용 자체는 무척 좋기 때문에 이에 대해 관심있으신 분이나 이전 책을 읽지 않으신 분들이라면 좋게 보실 수 있겠지만 이전에 조엘 온 소프트웨어를 보신 분이시라면 굳이 이 책을 읽을 필요는 없을 것 같습니다

조엘 온 소프트웨어

책 소개해 드립니다
이번에 소개해 드릴 책은 조엘 스폴스키 지음 박재오, 이해영 옮김의 그 유명한 조엘 온 소프트웨어입니다
사실 제가 별달리 소개해 드리지 않아도 모두가 이미 좋은 책이라는 것을 알고 있는 책이긴 하지만
어쨌든 책 소개가 제가 다 읽었다는 것을 기록해 두기 위함도 있으니 소개해 드립니다
 -이전의 부의 기원으로 쌓은 내공 덕택인지 이 책은 꽤 금방 읽을 수 있었습니다

다들 잘 아시다시피 이 책은 개발자이자 관리자인 조엘이 자신의 블로그에 연재한 글을 모아 낸 책입니다
때문에 개발자나 관리자가 보기에 매우 유익한 내용으로 가득찬 책이지요
저는 프로그래머는 아니지만 어쨌든 저도 개발환경이라는 것에 속해 있기 때문에 저에게도 매우 유익한 책이 되었습니다

그럼 목차를 살펴 보겠습니다
이 책은 부록 비슷한 부분을 포함하여 총 5부-46장으로 되어있습니다
1부 – 비트와 바이트 : 프로그래밍 실전
2부 – 개발자 다루기
3부 – 조엘 따라하기 : 두서 없는 생각, 하지만 놓쳐서는 안 될 이야기
4부 – .NET에 대한 쓴소리
5부 – 하나 더

이 책이 블로그에 쓰인 글이라는 것을 염두해 두고 목차를 보시면 어떠한 내용으로 전개 되는 지 아실 수 있을 겁니다
 -전체적인 흐름을 가지고 진행된다기 보다는 비슷한 주제의 이야기를 엮어 놓은 것이라는 것이지요

책이 프로그래머의 글을 모아 놓은 것이기 때문에 저처럼 프로그램을 잘 이해 못하는 사람들은 이해하기 힘든 부분이 가끔 나오긴 합니다만 그러한 부분들을 잘 넘긴다면 
나머지 개발 환경이나 관리, 개발 전략 같은 내용 등에서 소프트웨어 개발에서 잔뼈 굵은 베테랑이 가진 경험의 정수를 얻을 수 있습니다
 
프로그래머나 관리자분들이시라면 이 책이 얼마나 유용한지 잘 아실테니 제하고
그 외의 개발에 관련된 모든 사람들 역시 한 번쯤 읽어보면 좋을 만한 책입니다