더북(TheBook)

그렇다면 이런 질문을 할 수 있다. ‘무엇이 관리자나 아키텍트, 개발자에게 엉뚱한 결정을 내리게 하여 소프트웨어 시스템에서 기술 부채를 지게 하는 것일까?’ 기술 부채의 인식 부족과 함께 소프트웨어 공학 공동체는 기술 부채를 지게 하는 몇 가지 공통적인 원인을 파악했다.

 

일정 압력 : 종종 최대한 빨리 작업을 끝내라는 마감 시한의 압력하에 일하다 보면, 프로그래머는 성급한 변경에 의지한다. 예를 들어, 프로그래머는 작업을 마치는 데 도움을 주는 ‘복사해 붙이기 프로그래밍’ 관례를 받아들인다. 개발자들은 구문적으로 잘못된 곳이 없고 해법이 원하는 기능을 구현하는 한 ‘복사해 붙이기’를 수용 가능한 접근 방법으로 생각한다. 이런 코드 중복이 누적되면 설계는 이해하기 불가능하며 불안정해진다. 따라서 새로운 기능을 포함한 제품을 출시하려는 빡빡한 일정은 원하는 기능은 모두 탑재할 수 있을지는 몰라도 엄청난 기술 부채를 유발하는 제품 개발로 이어질 수 있다.

좋은•숙달된 설계자 부족 : 프레더릭 브룩스는 「맨먼스 미신」[6] 에서 프로젝트에 성공하려면 훌륭한 설계자가 중요하다고 강조했다. 설계자가 시스템 설계와 원칙의 기초를 충분히 이해하지 못하면, 설계 품질은 떨어질 것이다. 또 팀의 설계를 검토하는 과정에서 진행은 엉망이 되어 팀이 나쁜 관례를 따르게 멘토링하는 결과를 초래한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.