[2부 6번 수필] 소프트웨어 유지보수는 해결책이지 골칫거리가 아니다
소프트웨어 컨플릭트 2.0에서 가장 공감이 와닫는 수필을 하나 골라보라고 하면 이번에 소개하는 2부 6번 수필을 결코 빼놓을 수 없다. 대다수 높으신 분들이 매일 역정을 내며 소프트웨어 유지보수에 들어가는 비용을 아까워하는 현실에 비춰볼 때 _해결책_이라는 시각으로 소프트웨어 유지보수를 바라보는 로버트 L 글래스 큰 형님은 보통 사람이 아니다.
로버트 L 글래스 큰 형님께서 바라본 유지보수 특성은 다음과 같다.
- 지적으로 복잡하다. 유지보수 담당자에게 극심한 제약이 가해지는 가운데에서도 창조력 발휘가 필요한 작업이다.
- 기술적으로 어렵다. 유지보수 담당자는 개념, 설계, 코드를 동시에 다룰 줄 알아야 한다.
- 불공평하다. 유지보수 담당자는 항상 무언가 부족하다. 예를 들어 우수한 유지보수 문서가 없다.
- 성공이 없다. 유지보수 담당자는 항상 문제가 있는 사람을 만난다.
- 지저분하다. 유지보수 담당자는 세세한 구현까지 지저분한 수준에서 일해야 한다.
- 과거에 산다. 분명 코드는 누군가 구현에 능숙해지기 전에 작성했다.
- 보수적이다. "긁어 부스럼 만들지 말자"라는 좌우명을 따른다.
그리고 페이지 존스 큰 형님에 따르면 소프트웨어 유지보수는 전체 소프트웨어 개발 생명주기 비용에서 2/3을 차지하는 어마어마한 작업이라고 한다.
상황이 이러하니, 유지보수를 대부분 어리버리한 신참이나 개발에 능숙하지 않은 사람에게 맡긴다. 대다수 사람들이 창의력을 발휘하기 어려운 유지보수보다 개발을 선호하기 때문이다. 결국 가장 능력이 떨어지고 가장 수요가 낮은 인력이 유지보수를 담당하니 소프트웨어 유지보수가 아직도 이 모양 이 꼴을 못벗어난다. 하지만 유지보수가 오류 수정(17%)보다는 개선(60%) 작업 비중이 훨씬 높기 때문에 제대로 된 유지보수 없이는 제대로 된 소프트웨어 개발도 없으며, 유지보수가 소프트웨어 부문에서 가장 어려운 작업이므로 상식에 반하게 최고 인력을 투입해야 한다.
결국 유지보수, 아니 소프트웨어 개발을 제대로 하기 위해서는 유지보수를 바라보는 시각을 바꿔야 한다. 누군가 유지보수에 대해 색안경을 끼고 있다면 벗긴 다음에 인정사정 보지말고 망가뜨려 버려라.
"소프트웨어 컨플릭트 2.0: 시대를 뛰어넘는 즐거운 논쟁" 역자 박재호 올림

