소프트웨어공학

소프트웨어 품질_기술부채(technical debt, design debt, code debt)

스윙스윙 2021. 11. 2. 10:54

▣ 소프트웨어 품질_기술부채(technical debt, design debt, code debt)

기술 부채(technical debt, design debt, code debt)는 워드 커닝햄(Ward Cunningham)이 처음 사용한 용어로, 소프트웨어의 품질 수준에 따라 운영 단계에서 쏟아야 하는 노력이 달라진다는 의미임

개발자가 코딩 규칙을 지키지 않고 자신 만의 방시으로 프로그램을 개발하더라도 수행은 되지만 이런 경우에는 운영 과정에서 유지보수에 더 큰 노력이 필요함

금융 부채가 있으면 이자를 내야 하듯이 소프트웨어에 문제가 있다면 추가로 노력이 더 든다는 것을 은유한 개념임

 

기술 부채는 소프트웨어 개발 과정에서 불가피하게 발생함

소프트웨어의 기능을 먼저 사용해보고 요구사항을 확인하기 위해서, 디자인 원칙, 코딩 규칙 등을 지키는 것보다는 시간을 더 중요하게 생각하기 때문임

 

기술부채(Technical debt)이 생기는 주요 원인

- 비즈니스 조직으로 부터의 무리한 압박

- 부정확한 요구 사항이나 잦은 변경

- 잘못된 의사 결정 프로세스

- 부족한 협업

- 부족한 테스팅

- 부족한 문서화

- Refactoring 지연

- 낮은 수준의 아키텍쳐 설계


2019년 28번

정답 : 2번

기술 부채(technical debt, design debt, code debt)는 워드 커닝햄(Ward Cunningham)이 처음 사용한 용어로, 소프트웨어의 품질 수준에 따라 운영 단계에서 쏟아야 하는 노력이 달라진다는 의미임

낮은 품질의 소프트웨어가 결국은 미래에 사용자의 니즈를 충족시키는 거을 지연시킨다.

 

* software entropy : 소프트웨어 시스템이 변경됨에 따라 장애나 엔트로피가 증가하는 경향을 말함

* 레만(Lehman)의 법칙 : 프로그램이 진화함에 따라 유지보수 작업을 행하거나 복잡도를 줄이지 않는 이상 프로그램 복잡도는 늘어난다는 법칙