Technical debt
개요
선풍기
기술적 부채(또는 기술 부채)는지금 당장 해두지 않아도 되거나(상대적으로 덜 필수적인), 안해도 티가 잘 나지 않는 작업들을 이런저런 이유로 포기하거나 미뤘다가, 그로 인해 파생된 결과가 부채(debt)의 개념으로 돌아오는것을 지칭한다. 이 부채라는것이, 빨리 해소하지 않으면 실제 빚처럼 점점 더 커진다는 것도 비슷하다.
원인
- 사업적인 이유 : 기술적인 문제를 해결하기 위해서는 시간과 돈이 더 필요한데, 이런 문제를 해결하다가 완료가 늦어지면 그 기간만큼 사업을 정상적으로 할 수 없으므로, 수익성이 악화된다. 당연히 윗선에서는 그걸 좋지않게 여기고, 어떻게든 빨리끝내라고 압박을 가한다. 결국 마감기한에는 잘 굴러가는것처럼 내놓기는 하는데...
- 기술적 부채에 대한 이해 부족
- 테스트 슈트(test suite) 부족 : 어떤 일부 상황에만 적용가능한 임시방편으로 해결하게 된다. 이후의 다른 문제가 나오면 그걸 또 덮고...
- 문서부족 : 관련 문서(나 주석) 없이 코드를 작성할 경우, 차후 그 코드에 관련된 설명 문서를 만드는것이 그 부채가 된다.
- 지식부족 : 깔끔하게 코드를 작성하는 방법을 모를때 (지저분한 코드)
결과
이 빚은 미래에 어떤 형태로든 갚게 되는데, 이후의 문제해결 작업이나, 문제점을 몇개 해결하는 정도로는 끝이 안나 버틸수가 없어서 시스템 재구축 (갈아엎기) 같은것, 그에 따른 시간 및 비용 소모가 그 빚 갚기에 해당된다. 이런 작업이 지체되면 지체될수록 작업에 필요한 시간과 비용은 더 커져만가니 실제 빚 개념과도 유사하다고 할 수 있다.
사례
관련사이트
- ontechnicaldebt 기술적 부채에 관해서 논의하는 커뮤니티.
각주
이 문서의 일부는 영어 위키백과의 en:Technical debt 문서를 원출처로 합니다.