본문 바로가기

관심사/독후감

톰 드마르코 + 티모시 리스터 <피플웨어> - 1부 요약


본문 중에서...

1부. 인적 자원 관리

2장. 치즈버거를 만들라, 치즈버거를 팔라 

development는 본질적으로 production과 다르다. 하지만 개발 프로젝트 관리자들은 순전히 생산 환경에서 나온 관리 철학에 길들여진 경우가 많다.

프랜차이즈 점장이라고 상상해봐라. 효율적인 생산알 위해 다음과 같은 조치는 당연하다.

- 오작동을 없애라. 인간 기계를 최대한 원활하게 돌리라.
- 매장에서 빈둥거리는 직원를 엄중히 다루라.
- 직원을 교체 가능한 기계 부품으로 취급하라.
- 현재 상태를 유지하라. 
  능률을 높일 궁리는 하지 마라. 망하는 지름길이다. 절차를 표준화하라. 모든 일은 매뉴얼대로 하라.
- 실험을 하지 말라. 본사 사람들이 할 일이다.

자신이 패스트푸드 업계에서 일한다면 위와 같은 조지는 합리적이다. 하지만 개발 환경에서 이런 사고 방식은 치명적일 수 있다. 팀 사기가 꺾이고, 팀원들이 당면한 실제 업무보다 다른 문제에 관심을 돌리게 된다. 이런 관리방식은 개발 업무와 완전히 상충한다.

실수를 허용하라

실수를 용납하지 않는 분위기가 자리 잡으면 사람들은 바로 방어적으로 변한다. 결과가 나쁠지도 모르는 일은 아예 시도하지 않는다. 팀원들이 중요한 전략적 결정을 잘못 내릴까봐 아예 결정권을 주지 않으려 체계적인 프로세스와 엄격한 방법론을 따르도록 강요할 때 방어적인 태도는 더욱 심해진다. 실수를 용납하지 않는 분위기로 인해 전반적인 기술 수준은 다소 나아질지도 모른다. 하지만 대신에 팀 사회학은 큰 타격을 받는다.

이와 정반대는 실수를 장려하는 접근법이다. 팀원들에게 어떤 막다른 골목에 부딪혔는지 가끔 물어보라. 팀원들이 기회를 날려버려도 축해해줘야 마땅하다. 그러라고 고용한 사람들이니 말이다.

관리: 멍청한 정의

결정은 관리자가 하고 밑에서 일하는 사람들은 그저 시키는 대로 따르면 된다는 전략은 개발 환경에 적합하지 않다.

다그치면 당장은 생산성이 오를지 모르지만 장기적으로는 효과가 없다.

사람들을 일하게 만들기 위해 가혹한 조치가 필요한 경우는 거의 없다. 대다수는 일을 사랑한다. 오히려 가끔은 일을 줄이도록, 그래서 좀 더 의미있는 일을 하도록 조치를 취할 필요가 있다.

현상 유지 상태의 프로젝트는 사망이다

촉매 역할을 하는 사람은 중요하다. 프로젝트는 언제나 유동적인 상태이기 때문이다. 팀의 결속력을 높여주는 사람은 일만 열심히 하는 사람 두 명의 가치가 있다.

생각할 시간이 어디 있어, 일단 뛰어!

업무가 주어지면 시간 중 몇 %를 실제 업무에 써야할까? 100%는 아니다. 브레인 스토밍을 하고, 새로운 방법을 조사하고 부수적인 업무를 피할 방법을 구상하고, 책을 읽고, 새로운 기법을 배우고, 조금 쉬는 시간도 필요하다.

위험이 커질수록 좀 더 신중한 접근 방식이 절실히 필요하다. 바로 이때가 일하는 시간을 줄이고 초인적인 의지를 발휘할 때다. 영웅적인 노력이 필요한 프로젝트일수록 팀원들이 더욱 잘 소통하고 즐겨야 한다.

많은 사람이 외골수로 행동에만 돌진한다. 계획을 세우고, 새로운 방법을 조사하고, 책을 읽고, 새로운 기법을 배우고, 예측하고, 일정을 세우고, 예산을 점검하고, 인력을 적절히 배치하는 일에 보내는 시간은 5%에 불과하다.

독서에 대함 통계는 특히 실망스럽다. 평균적으로 일반 소프트웨어 개발자는 자신의 업무와 관련한 책을 한 권도 소유하지 않으며 읽지도 않는다. 소프트웨어 분야에서 업무 질을 걱정하는 사람에게는 끔찍한 현실이다.


3장. 비엔나가 너를 기다리잖아

생산성: 이기는 전투, 지는 전쟁

다음은 생산성을 높이고자 회사들이 취하는 일반적인 조치다.

- 일하는 시간을 늘리도록 사람들에게 압력을 가한다.
- 제품 개발 프로세스를 기계화한다.
- 제품 질을 낮춰 타협한다.
- 업무 프로세스를 표준화한다.
이런 조치를 취하면 업무가 따분하고 흥미가 떨어진다. 따라서 의욕적인 직원들이 좀 더 재미난 일을 찾아 떠날 위험이 높아진다.

생산성을 높이고 싶다면 이직률이라는 사안을 반드시 고려해야 한다. 그렇지 않으면 생산성 향상으로 얻어지는 이익이 핵심 인력의 손실로 상쇄되어 버린다.

대다수 회사들은 이직률 통계를 기록조차 하지 않는다. 숙련된 팀원 교체에 드는 비용을 파악할 방법이 사실상 전무하다. 생산성을 논의할 때마다 회사들은 이직이 존재하지 않는 듯 아니면 비용이 전혀 들지 않는 듯이 행동한다.

생산성은 이익을 비용으로 나눈 값이어야 한다. 이익은 절감한 비용과 업무에서 얻어진 수익의 합이며, 비용은 업무에 투입된 팀원의 교체를 포함한 총 소요 비용이다.

우리 모두가 한 번쯤 일을 더 시키기 위해 팀원들에게 압력을 가하는 단기적인 책략에 굴복한 적이 있다. 그러려면 점점 떨어지는 효율과 필연적으로 발생하는 이직률을 무시해야 한다. 물론 나쁜 부작용을 무시하기는 쉽다. 하지만 다음과 같은 불편한 진실을 명심하기가 어렵다.

시간에 쫓기는 사람들은 더 잘 일하지 않는다. 더 빨리 일할 뿐이다.

더 빨리 일하려면 제품의 질과 일에 대한 만족감을 버려야 할지도 모른다.


4장. 품질 - 시간이 허락한다면

우리는 자신이 만드는 제품의 질과 자존심을 밀접하게 결부시키는 성향이 있다. 제품의 양이 아니라 질이다. 
( 어떤 이유로, 주어진 상황에서 꼭 필요하더라도 그저 그런 제품을 많이 생산하는 일은 별로 만족스럽지 않다. ) 관리자가 제품의 품질을 망치는 조치를 취하면 팀원들이 감정적으로 반발할 가능성이 높다.


6장. 레이어트릴

관리자의 역할은 사람들이 일하게 만드는 것이 아니라 사람들이 일할 수 있게 만들어주는 것이다.