ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어의 품질
    Object & Test 2011. 8. 31. 13:14
    소프트웨어의 품질은 크게 두 가지 측면으로 나눠 볼 수 있습니다. 외적인 품질(External Quality)과 내적인 품질(Internal Quality)입니다.

    외적인 품질은 사용자 측면에서의 품질을 말합니다. 사용자가 원하는 기능이 모두 제공되는지, 괜찮은 UX를 제공하는지 여부와 가용성, 속도 등이 보장되는지가 이 범주에 속합니다. 이런 외적인 품질은 보통 소프트웨어의 성공과 생존 여부를 결정하는 아주 중요한 요인이 됩니다. 사용자에게 외면 받는 소프트웨어는 존재의 의미가 없기 때문입니다.

    내적인 품질은 개발과 유지보수를 얼마나 잘 할 수 있는가와 관련됩니다. 비즈니스에 맞는 적절한 아키텍처가 선택되고 잘 설계, 구현 되었는지 여부로 측정할 수 있습니다. 결국은 개발자가 느끼는 품질이라고 보면 될 것 같습니다. 내적인 품질이 높은 소프트웨어라야 변화와 확장의 요구에 잘 대처할 수 있고, 결국 오랫동안 건강하게 살아 남을 수 있습니다.

    그리고 보통 개발자들은 내적인 품질을 중요시 하는 경향이 강합니다. 그래서 현재의 아키텍처에서 수용하기 힘들거나 기존 설계 사상을 깨는 요구가 들어오면 내적인 품질을 지키기 위해 요구사항을 받지 않으려고 하곤 합니다. 비즈니스적으로 중요한 일임에도 불구하고 말이죠.

    반면, 기획이나 영업, 경영측에서는 외적인 품질을 중요시 합니다. 따라서 중요한 비즈니스 니즈가 발생하면 내적인 품질은 고려하지 않은 채 당장 시스템에 반영하기를 원합니다. 하지만 아키텍처나 설계를 고려하지 않은 즉흥적이고 즉시적인 반영은 소프트웨어의 내적인 품질을 무너뜨리는 지름길입니다. 이로 인해 나중에 더 중요한 니즈에 적시에 대처하지 못하는 우를 범할 수도 있습니다.

    이 두 가지 품질이 조화를 이루어야 소프트웨어가 성공적으로 오랫동안 살아 남을 수 있습니다. 그리고 우리에게는 건강하고 진화하는 소프트웨어를 위해 항상 상대편의 입장에서 생각하는 역지사지가 필요합니다.

    iPhone 에서 작성된 글입니다.
Designed by Tistory.