기술 부채는 모든 소프트웨어 프로젝트에 존재한다. 0으로 만들 수 없다. 문제는 관리하는 것이다. 너무 많이 쌓이면 개발 속도가 느려지고, 버그가 늘어나고, 유지보수 비용이 증가한다.
기술 부채를 인식하는 것이 첫 번째다. 의도적인 부채와 비의도적인 부채가 있다. 마감에 맞추기 위해 일시적으로 품질을 희생하는 것은 의도적 부채다. 경험 부족으로 나쁜 코드를 작성하는 것은 비의도적 부채다.
부채의 이자
기술 부채는 이자를 낸다. 새로운 기능을 추가하는 데 시간이 더 걸린다. 버그를 고치면 다른 곳에서 문제가 생긴다. 새로운 팀원이 온보딩하는 데 시간이 오래 걸린다. 이런 것들이 이자다.
이자가 원금보다 커지면 위기다. 개발 속도가 극도로 느려지고, 팀이 지치고, 프로젝트가 실패한다. 그 전에 부채를 줄여야 한다.
상환 전략
한 번에 대규모 리팩토링을 하는 것은 위험하다. 점진적으로 개선하자. 보이 스카우트 규칙을 적용한다. 코드를 수정할 때 조금 더 나은 상태로 남기자. 시간이 지나면 품질이 향상된다.
스프린트 용량의 일정 비율을 부채 상환에 할당하자. 20%가 일반적인 권장사항이다. 비즈니스 요구와 기술 개선의 균형을 맞춘다. 지속 가능한 속도를 유지한다.
예방
새로운 부채를 최소화하는 것도 중요하다. 코드 리뷰, 테스트, 문서화가 기본이다. 설계를 충분히 논의하고 시작하자. 처음에 시간을 더 쓰는 것이 나중에 시간을 절약한다.