[2부 5번 수필] 소프트웨어 품질과 소프트웨어 유지보수 사이의 관계
로버트 L. 글래스 큰 형님에 따르면 소프트웨어 품질이 우수하기 위한 속성이 일곱 가지있다고 한다.
- 신뢰성(reliability)
- 효율성(efficiency)
- 인간공학(human engineering)
- 이해 용이성(understandability)
- 수정 용이성(modifiability)
- 테스트 용이성(testability)
- 이식성(portability)
여기서 제시한 일곱 가지 속성 중에 소프트웨어 유지 보수와 관련이 있는 항목이 대부분이다. 이해 용이성, 수정 용이성은 당연히 유지 보수와 직접적인 관련이 있는 항목이며, 소프트웨어가 실패하지 않고 제 기능을 수행해야 한다는 신뢰성과 소프트웨어가 시간/공간 자원을 최소로 사용해서 동작해야 한다는 효율성, 소프트웨어 테스트가 쉬워야 한다는 테스트 용이성, 소프트웨어를 쉽게 사용하도록 만들어주는 능력인 인간 공학, 다른 컴퓨터나 환경에서 소프트웨어를 사용하게끔 만드는 이식성 모두 유지 보수 담당자가 머리를 싸매는 항목이다.
자, 그렇다면 소프트웨어 품질을 높이려면 가장 좋은 방법은 무엇일까? 상기 일곱 가지 항목을 생각해보면 대답이 바로 나오지 않는가? 바로 '유지 보수'를 제대로하는 방법이다. 유지 보수가 3D 중의 3D로 계속 남아있으며, 애물단지로 취급되는 현 상황에서는 절대로 소프트웨어 품질을 높이지 못한다. 따라서, 소프트웨어 품질 운운하면서 유지 보수에 형편없는 인력을 투입하는 관리자를 항상 경계하기 바란다. 실제로는 소프트웨어 품질을 높이고 싶은 생각이 전혀 없음을 에둘러서 표현했을 뿐일테니까.
"소프트웨어 컨플릭트 2.0: 시대를 뛰어넘는 즐거운 논쟁" 역자 박재호 올림

