Community

범위, 일정, 예산 중 숨쉴 곳 하나는 만들어야 합니다.

게임, 넷플릭스로 대표되는 OTT와 같은 B2C용 소프트웨어 서비스는 정찰제로 제공하기 때문에 고객은 구매여부만 결정하면 됩니다. 반면 SI 개발 또는 내부개발 소프트웨어는 계약 또는 협상을 통해 가격과 개발기간을 결정합니다. 이러한 계약 또는 협상이 공정하기 어려운 이유는 개발예산과 개발일정 결정에 대해 프로젝트 팀과 고객의 생각이 다르고, 프로젝트 팀이 약자의 위치에 있기 때문입니다.     프로젝트 팀이 직면하는 협상의 상황은 세 가지로 구분할 수 있습니다.  •   더 싸게에 대한 대응 •   더 빨리에 대한 대응 •   더 싸고, 더 빨리에 대한 대응   고객과 일정과 가격에 대한 협의를 할 때 무조건 ‘안된다’, ‘힘들다’고 말해서는 고객 설득이 힘듭니다. 고객 설득을 위해서는 선택지를 제공해야 합니다. 일정, 투입 MM, 범위, 품질, 개발방법론, 투입인력을 종합적으로 고려하여 고객이 양보하지 못하는 제약조건과 양보가능한 변수를 찾아서 고객에게 원하는 것을 제공할 수 있는 선택지를 제공해야 합니다.      -‘더 싸게’에 대한 대응   고객도 MM 단가를 깎자고 하지는 않습니다. 개발규모를 부풀리지 말고 개발생산성을 높여서 비용을 줄여 달라는 것입니다. 그러나 개발규모는 정확하게 산정했고 개발생산성은 최선을 다한 것이라는 것을 고객에게 입증하기 힘듭니다.  만일 프로젝트 팀이 정확하게 추정했고 숨김이 없다고 고객이 신뢰한다면 고객도 ‘더 싸게’를 주장하지 않을 것입니다. 프로젝트 팀이 고객과 업무를 같이 해본 경험이 있다면 이러한 신뢰를 얻을 수도 있지만, 처음 만나는 고객에게 이러한 신뢰를 제공하기란 쉽지 않습니다. 최선을 다해 추정했다면 상대방이 그것을 느낄 수 있도록 노력해야 합니다. 추정에 대한 고객의 신뢰를 얻을 수 있다면 적정 예산을 확보하거나 범위를 줄이는 행운을 만날 수 있습니다.   범위를 조정하지 않고 개발원가를 낮추는 방법은 투입인력을 줄이는 것입니다. 투입인력이 줄어들면 의사소통 비용이 줄어들어 개발생산성 향상의 효과를 기대할 수 있기 때문입니다. 그러나 투입인력이 줄어들면 프로젝트 기간은 늘어날 수밖에 없습니다. 고객이 기간을 늘릴 수 있는 상황이고 시간에 따라 증가하는 비용(예:사무실 임대료)이 없다면 예산절감의 방안으로 고객에게 제공할 선택지가 됩니다. 조직내부 프로젝트에서는 이러한 선택지가 가능한 상황이 많습니다.    일단 MM를 확정하면 ‘더 싸게’는 계획이 아니라 실행의 영역입니다.  ‘더 싸게’의 계획을 준수하기 위해 프로젝트 팀이 취할 수 있는 대안은 다음과 같습니다. 물론 처음부터 계약MM보다 초과한 MM 투입계획을 수립할 수도 있지만 매우 드문 경우입니다.    • 더 많이 일합니다.  • 더 집중해서 일합니다. • 품질 수준을 문제가 되지 않을 정도로 조정합니다.    팀원이 더 많이 일하고, 프로젝트에 더 집중하게 만들기는 힘듭니다. 팀원이 가장 쉽게 대응할 수 있는 것은 품질 수준을 허용 가능한 최소한으로 낮추는 것입니다. 이러한 품질은 코딩만 해당되는 것이 아닙니다. 분석, UX, 개발, 테스트 모두 나름의 품질기준이 있습니다. 따라서 부하가 큰 업무부터 품질 수준은 낮아지고 다른 업무에 영향을 미칩니다. 이러한 행위를 모서리 자르기(corner cutting)라고 합니다. ‘모서리 자르기’는 ‘기술부채’라고도 하는데 부채가 커지면 이자를 감당하기 힘든 시점이 옵니다. 이자를 감당하기 힘들다는 것은 자른 모서리가 많아져서 고객에게 숨기기 힘든 상황이 되어 재작업을 해야 한다는 것을 의미합니다. 이런 상황에서 주어진 업무를 끝내기 위해서는 프로젝트 예산을 초과할 수밖에 없습니다.    -‘더 빨리’에 대한 대응    ‘더 빨리’는 ‘더 싸게’보다 해법이 복잡합니다. 특정 업무를 완성하기 위한 최소한의 기간이 필요하기 때문에 돈으로 해결할 수 없는 상황도 있기 때문입니다. 업무에 따라 10개월이 적당한 프로젝트를 아무리 단축해도 5개월보다 빨리 끝내는 것은 불가능할 수 있습니다. 물론 현실에서 이 정도 수준의 빨리를 요청하는 고객은 드뭅니다. 10개월이 적당한 프로젝트를 2~3개월 단축시켜 달라는 것이 대부분입니다. 주어진 업무를 더 빨리 끝내는 방법은 더 우수한 인력을 더 많이 투입하는 것입니다. 물론 우수한 인력을 투입해도 적정기간보다 일정을 단축하는 것은 쉽지 않습니다. 시도를 할 수 있다는 의미입니다. 만일 프로젝트에 투입가능한 우수 인력들이 있다면 ‘더 빨리’는 ‘더 싸게’와 같이 예산문제로 변합니다. 남은 결정은 일정단축을 위한 추가비용을 누가 부담할 것인가 입니다. 그러나 고객이 ‘더 빨리’를 요구할 때 비용추가를 요청하기가 쉽지 않습니다. 예를 들어 10명/10개월이나 12.5명/8개월은 같은 100MM라는 고객의 주장은 합리적인 것처럼 보입니다.    프로젝트를 수행하기 위한 인력투입 방법은 여러 가지가 있지만 같은 업무를 수행할 때 기간을 단축할수록 총 MM가 증가하는 원칙은 불변입니다. 기간을 단축하기 위해서는 팀원을 추가로 투입해야 하고, 팀원이 증가할수록 의사소통 비용과 재작업 비용이 증가하기 때문입니다. 예를 들어 5명이 10개월 동안 끝낼 수 있는 업무를 10명이 수행하면 몇 개월이 걸릴까요? 각자의 작업이 독립적인 벽돌 쌓기와 같은 일이라면 5개월에 끝낼 수도 있지만, 상호 협업을 해야 하는 일이라면 7개월, 8개월이 걸릴 수도 있습니다. 따라서‘더 빨리’를 요청하는 고객에게는 ‘더 빨리’를 위해 인력을 추가할 때의 리스크와 예산증가를 논리적으로 설명해야 합니다.   만일 반드시 준수해야 하는 일정제약(예:MWC와 같이 일정이 정해진 국제 박람회에 신상품 출시)이 있다면 우수인력도 많이 투입하고 요구사항의 우선순위에 따라 기능을 개발하여 일정지연의 위험을 줄여야 합니다.    -‘더 싸고’, ‘더 빨리’에 대한 대응 음식점에서 남과 같은 돈을 지불하고 당당하게 남보다 더 많은 요리를 달라고 주장하는 사람이 있을까요? 특별한 경우가 아니라면 그런 주장을 하는 사람은 없을 것입니다. 그러나 프로젝트팀이 제안한 비용과 일정을 (내부) 고객이 둘 다 줄여 달라고 요청하는 이유는 무엇일까요? 그 이유는 업무규모에 대해 서로 상이한 판단을 한 상태에서 협상을 통해 가격과 일정을 결정하기 때문입니다.    같은 돈으로 모든 요리를 더 많이 먹을 수 없습니다. 해산물을 더 먹기 위해서는 고기의 양을 줄여야 합니다. 해산물과 고기를 동시에 더 많이 먹으려면 더 많은 돈을 지불해야 합니다. 이 간단한 경제학의 원리가 프로젝트 계획에도 적용되어야 합니다.  업무범위를 고정하려면 ‘빠르고, 싸게’ 중 하나를 선택해야 합니다. 단 현 계획이 적정 일정과 적정 예산임 프로젝트 관리자가 설득할 수 있어야 합니다. 그렇게 할 수만 있다면 싸게 하려면 기간을 늘려야 하고, 빨리 끝내려면 비싸야 함을 주장할 수 있습니다. 더 싸고 더 빠르게 하려면 업무를 줄여야 함을 설득할 수 있습니다. 주어진 업무를 이행하기 위한 적정 일정과 예산에 대한 고객설득은 프로젝트 관리자의 몫입니다. 그러한 설득을 논리적으로 할 수 없다면 프로젝트 계약협상이 시골의 5일 장터에서 물건가격을 흥정하는 것과 다를 바 없습니다.     프로젝트 관리자는 고객에게 다음과 같이 말할 수 있어야 합니다.    “범위, 일정, 예산 중 2가지를 선택하시기 바랍니다. 나머지 1가지는 프로젝트 성공을 위해 제가 고민하고 답변 드리겠습니다.” ======================================================= 제가 삼성 SDS에서 30년동안 경험하고 체득한 교훈을 정리한 을 25년 1월 출간한 소식을 공유합니다. https://product.kyobobook.co.kr/detail/S000215148133

알림

알림이 없습니다