기술 부채는 제품 개발 작업 영역이
얼마나 어수선하거나 시대에 뒤떨어졌는지를
나타내는 척도입니다
— 데이브 스미스
어느 분야 어디에 사용해도 어색함이 없는 기술 부채
또는 설계부채 코드부채로 부르기도 한다
기술 부채는
가장 효과적인 솔루션이 아닌
가장 빠른 솔루션을 선택함으로써
발생하는 추가 작업 비용
기술적 부채가 그만한 가치가 있는 경우가 있지만
팀이 신속한 결정의 장점과 단점을 이해하고
재작업을 효율적으로
관리하는 방법을 이해하는 것이 중요하다
기술부채는 나쁜 것인가?
금융 부채와 마찬가지로
기술 부채도 좋은 방법과 나쁜 방법으로
모두 활용될 수 있다
기술 부채 사분면
기술 부채 사분면이라고 하는
기술 부채에는 네 가지 원인이 있다
마틴 파울러(Martin Fowler)가 만든
4가지 기술 부채 사분면에는
무모함, 신중함, 고의적, 부주의함이 포함
이러한 사분면에
기술 부채를 할당하면 코드 문제에 대한
의도와 배경을 측정하는데 도움이 된다
일부 코드 부채는 고의적이어서
양호한 부채 로 분류될 수 있지만
다른 코드는 부주의하여
불량 부채 로 분류될 수 있다
신중하고 신중함:
신속하게 배송하고 나중에 결과를 처리하기로 한
결정은 신중하고 신중한 부채를 초래한다
이러한 유형의 부채는 제품의 지분이
상대적으로 낮고 빠른 배송의 이점이 위험보다 클 때
가장 일반적으로 사용된다
무모하고 고의적:
최고의 코드를 생성하는 방법을 알지만
그보다 빠른 전달을 우선시하는 것은
무모하고 고의적인 부채의 원인이다
신중하고 부주의함:
최상의 코드를 생성하려는 욕구가 있지만
구현 후에 더 나은 솔루션을 찾을 때
신중하고 부주의한 부채가 발생한다
무모하고 부주의한 부채:
팀이 필요한 지식 없이
최고의 코드를 생성하려고 할 때
무모하고 부주의한 부채가 발생한딘
팀은 자신이 저지르는 실수를
인식하지 못하는 경우가 많다
기술 부채의 유형
1. 의도적인 기술 부채
의도적인 부채는 조직이 미래가 아닌
현재를 최적화하기 위해
의식적인 결정을 내릴 때 발생한다
의도적 부채에는 단기 및 장기 변형이 있다
예를 들어, 이전 부채를 갚기 위해
발생한 의도적 부채는 단기 부채인 반면
더 큰 미래 부채를 방지하기 위해 발생한
의도적 부채는 장기 부채가 된다
단기 부채 :
단기 부채는 기존 자원을 사용하는 것과 같은
전술적 이유로 사후적으로 발생
또한 단기 부채는 집중되거나 집중되지 않을 수 있다
집중 단기 부채:
여기에는 개별적으로 식별 가능한 지름길이 포함
집중되지 않은 단기 부채:
여기에는 수많은 작은 지름길이 포함
장기부채 :
장기부채는 기한 준수 등
전략적인 이유로 선제적으로 발생
발생한 부채 유형에 따라 상환하는데
걸리는 시간이 결정된다
2. 의도하지 않은 기술 부채
반면, 의도하지 않은 기술 부채는
이해 부족, 우발적인 실수 또는
일부 경우 잘못 작성된 코드로 인해 발생한다
의도하지 않은 기술 부채의 예로는
오류가 발생하기 쉬운 설계 접근 방식이 있다
이는 피할 수 없는 실수로 인한 비전략적 결과다
의도하지 않은 기술 부채는
팀이 의도적으로 발생시키지 않은 것처럼
우연한 것으로 간주할 수 있다
가장 일반적으로 소프트웨어 업데이트를 구현하거나 프로젝트를 완료한 후에야 실수를 깨닫게 된다
소프트웨어 제품 출시 작업을 할 때
항상 부채를 피할 수는 없다
그러나
투명성을 통해 기술 부채를 줄일수 있고
청산할수 있다