지난 30 년 동안 소프트웨어 엔지니어링 실무에서 배운 많은 부분은 "기술 X는 새로운 소프트웨어의 초기 개발 속도를 높일 수 있지만 시간 과 시간을 낭비하지 않으면 어떻게 때 당신이 당신에게 유지 보수의 크기에 더 많은 시간과 노력의 주문 비용,이 기술 부채의 빠는 늪에 응용 프로그램을 켜집니다 장기적으로,이를 사용하여 저장된로 사용할 수 있습니다. "
이 면도기에 속하는 기술에는 다음이 포함됩니다. 수작업으로 코딩 된 어셈블리 언어, 컴파일러, 인터프리터, 프로 시저 라이브러리, 명령형 프로그래밍, 함수형 프로그래밍, 객체 지향 프로그래밍, 수동 메모리 할당, 가비지 수집, 정적 유형, 동적 유형, 어휘 범위, 동적 범위 "안전한"포인터, "안전하지 않은"포인터, 언어 개념으로서의 포인터 부재, 이진 파일 형식, 구조화 된 마크 업 파일 형식, 매크로, 템플릿, 매크로 및 템플릿의 회피 , 공유 메모리, 메시지 전달, 스레드, 코 루틴, 비동기 이벤트 루프, 중앙 집중식 원격 서비스, 분산 서비스, 로컬로 설치된 소프트웨어, 어레이, 링크 된 목록, 해시 테이블 및 트리
위 목록의 많은 항목이 알려진 솔루션 공간을 모두 소진하는 그룹으로 제공된다는 사실은 매우 의도적이며 그 자체로 무언가를 말해야합니다. 하나는 주장 할 수 있다는 유일한 모호 전면적가 먼저 Z3에 블록 구조 (스파게티 코드와 반대) 프로그래밍 및 메모리 보호 (소년합니까 적이다 전환 이후 우리가 했어 습관의 개선 하지 미스 오타가 내 컴퓨터 전체를 중단시킬 수있는 날).