- 기능 하나 붙이는 데 지금은 삼 주가 걸리고 이 년 전에는 일 주였습니다. 이 문장이 용어보다 빨리 통합니다.
- 수정 파급 범위를 매달 셌습니다. 결제 모듈을 고칠 때 같이 손봐야 하는 화면이 두 곳에서 열한 곳이 됐습니다.
- 상환은 별도 프로젝트가 아니라 새 기능 개발 기간의 이십 퍼센트로 넣습니다. 별도 승인이 필요 없습니다.
용어 대신 숫자를 가져갑니다
임원 회의에서 기술 부채라는 말을 쓰지 않습니다. 뜻이 통하지 않기 때문입니다. 부채라고 하면 재무에서 갚아야 할 돈으로 듣습니다.
대신 이렇게 말합니다. 기능 하나 붙이는 데 지금은 삼 주가 걸리고 이 년 전에는 일 주였습니다. 같은 일이 세 배로 늘었다는 말은 누구나 알아듣습니다.
기술 용어를 쓰면 설명이 필요하고, 설명이 필요하면 그 자리에서 결정이 나지 않습니다. 숫자로 말하면 그 자리에서 결정이 납니다.
설명이 길어질수록 다음 안건으로 넘어갑니다. 회의에서 얻어야 할 것은 이해가 아니라 결정입니다.
두 곳이 열한 곳이 됐습니다
숫자를 만들려면 재야 합니다. 저는 ERP를 자체 개발하면서 수정 파급 범위를 매달 적었습니다. 결제 모듈을 고쳐 달라는 요청이 오면 같이 손봐야 하는 화면이 몇 개인지 세는 것입니다.
처음에는 두 곳이었습니다. 이 년 뒤에는 열한 곳이 됐습니다. 이 숫자는 개발자가 아니어도 읽힙니다. 두 곳이 열한 곳이 됐다는 것만 보면 됩니다.
그리고 이 숫자는 조작하기 어렵습니다. 실제로 고친 파일을 세는 것이라 기록에 남습니다. 재는 데 한 달에 삼십 분이 들었습니다.
이 숫자를 개발팀 평가에 쓰지 않았습니다. 평가에 넣는 순간 숫자가 좋아지고 실제는 그대로입니다.
개발 기간 안에 이십 퍼센트
상환 계획을 별도 프로젝트로 올리면 승인이 나지 않습니다. 결과가 보이지 않는 일에 예산을 따로 받기는 어렵습니다.
그래서 새 기능 개발 기간 안에 이십 퍼센트를 고정으로 넣었습니다. 십 주짜리 개발이면 이 주는 구조를 정리하는 데 씁니다. 별도 승인이 필요 없습니다.
이십 퍼센트라는 숫자는 근거가 있어서 정한 것이 아닙니다. 그 정도면 눈에 띄지 않고 계속할 수 있어서 정했습니다. 계속하는 것이 크게 하는 것보다 중요합니다.
한 번에 갚는 계획은 대부분 중간에 멈춥니다. 그리고 파급 범위가 줄어든 달에는 그 사실을 회의에서 말했습니다. 줄어든 것도 보고해야 다음에 이십 퍼센트를 지킬 수 있습니다.
다 갚지는 않습니다
자주 고치는 곳만 갚습니다. 삼 년 동안 손대지 않은 모듈은 구조가 낡아도 그대로 둡니다.
손대지 않는 코드는 비용을 만들지 않습니다. 고칠 때만 비용이 생깁니다. 어디를 자주 고쳤는지는 소스 기록에 남아 있습니다. 그것만 뽑아 보면 어디를 정리할지 정해집니다.
다만 예외가 있습니다. 보안이나 결제처럼 사고가 나면 회사가 흔들리는 곳입니다. 그런 곳은 자주 고치지 않아도 정리 대상에 넣습니다.
판단 기준은 빈도지만 예외 기준은 사고 크기입니다. 언제 고치고 언제 두는지의 판단은 낡은 것과 위험한 것은 다릅니다에서 이어집니다.
점검 목록
- 기술 부채를 숫자 한 문장으로 설명할 수 있는가
- 그 숫자를 매달 같은 방식으로 재고 있는가
- 상환 시간이 개발 일정 안에 들어가 있는가
출처
ERP를 직접 개발하는 것과 패키지를 구매하는 것 중 어느 쪽이 합리적인가요 ERP를 직접 만들겠다는 결정이 3년 뒤 예산을 두 배로 만드는 이유에서 이어집니다.
기술부채 상환 예산을 어떤 기준으로 배정하는가는 기술부채 상환 예산을 결정할 때 묻는 질문이 틀려 있습니다에서 이어집니다.

