많은 회사들이 품질 관리에 신경을 쓴다.
소프트웨어 분야도 예외는 아니다.
품질관리 하면 무엇이 떠오를까?
전통적인 품질관리는 지표를 관리하는데서 시작한다.
지표를 관리하면 자연스레 품질이 향상된다는 것이다.
지표 관리를 위해서는 측정이 필요한데,
측정에 관해서는 아래 두가지 상반된 모순을 갖고 있다.
길브의 법칙 : 측정할 필요가 있는 것은 어떤 식으로든
측정해 보는 것이 아예 안하는 것보다 훨씬 낫다. (피플웨어)측정의 역기능 : 누군가 지식노동자의 효율을 측정하려 들면
모든 직서가 급격히 붕괴되어 버린다. (조엘온소프트웨어)
관리자는 측정시스템을 구현하기를 좋아한다. 그것도 숫자로 말이다(KPI).
"작년에는 2.5였는데 올해는 5.0이야 두 배나 향상되었어."
관리자가 기쁨을 느끼는 순간이다.
직원들은 관리자를 즐겁게 하기 위해서 측정 대상을 적절한 난이도를 갖는 것으로
그리고 회사에 실질적으로 도움이 되는 것으로 선정했다.
직원들은 측정을 비교적 쉽게 해서 좋고 관리자는 좋은 결과를 얻어서 좋고,
직원과 관리자 모두 행복한 시스템이다.
더군다나 회사에 실질적인 도움이 되어 영업 실적이 증가하였다.
이러한 이상적인 시스템은 현실에서는 찾아 보기 힘들다.
대개 직원들은 관리자를 즐겁게 하기 위해서
측정대상을 개선하기 쉬운 것으로 선택하며, 지표 개선에 집중한다.
회사에 실질적으로 도움이 되는 지표라는 것은 대상을
선정하기도 어렵거니와 측정 방법 또한 쉽지가 않다.
대개 책에서 찾아 볼 수 있는 이러한 지표는
성공한 회사를 대상으로 사후 측정된다.
성공한 회사를 보니 이런 지표를 가지고 있더라.
책이 출간되고 몇 년이 흐르면 그 회사는 쇠퇴하는 회사가 되어있기도 하다.
쉽게 할 것인가? 효율적으로 할 것인가?
앞서 이야기한 우리의 교통경찰들은
“왜 단속을 하는 지?”, “무엇을 단속 하는지?” 알고 있을까?
관리자 개발자 사이의 측정의
“편리성”과 “효용성”을 조화시키는 노력이 필요하다.
“왜 측정하려고 하느냐?” 생각해 본다면
답이 나올 수 있지 않을까 생각해 본다.
만일 목표라는 것이 반드시 달성되어야 하는 것이라면,
그 목표가 어떤 의미를 가지고 있을까?
그리고 목표 달성을 하지 못한 것이 실패나 패배로 인식되는 경우에
측정을 제대로 할 수 있을까?