http://bobbyryu.blogspot.kr/2006/12/rc.html

 

20년 이상 개발을 해왔고 또한 소프트웨어 공학을 전공한 사람으로서 말씀 드리건대(잘난 척하려는 것이 아니라 제 의견의 신빙성을 위한 멘트임), 소프트웨어 개발의 라이프사이클에서 통용되는 일반적인 정의는 다음과 같습니다.

알파(Alpha) 버전: 모든 기능이 구현되지는 않았지만 주요 요구사항을 만족하는 버전. 기능 구현이 부족하고 불안정하며, 일반적으로 내부 테스터를 위한 버전.

베타(Beta) 버전: 초기 소프트웨어 요구사항 스펙에 있는 모든 기능을 구현한 것이나 중간에 발생한 요구사항은 반영되어 있지 않을 수 있고, 버그가 존재하며 안정적이지 않은 버전. 일반적으로 일부 고객이 프리뷰할 수 있도록 제공하는 버전. 프리뷰 또는 테크니컬 프리뷰라고도 함.

RC(Release Candidate): 치명적인 버그가 발견되지 않는다면 최종 제품으로 릴리즈를 하기 위한 버전. 일반적으로 이 단계에서 코드 완결(Code Complete)이 됨.


위의 정의에 가장 부합하는 사례로 MS의 소프트웨어 제품들을 예로 들 수 있습니다.

다만 위의 정의는, 상품으로서의 패키지 소프트웨어를 위주로 한 정의입니다. 최근에 소프트웨어가 서비스화되고 웹 사이트들이 "베타"라는 말을 유행처럼 남발하면서 전통적인 베타 버전의 정의 또한 변화를 요구 받고 있는 상황이기는 합니다.

하지만 베타 버전의 정의는 여전히 다음과 같습니다.

베타 버전은 버그가 존재하며 안정적이지 않으며 초기에 정한 요구사항은 반영되었더라도 중간에 결정된 요구사항은 반영되지 않은 버전입니다.

개발의 전체 라이프사이클에서 소프트웨어 요구사항은 계속 추가/변경/삭제됩니다. 베타 버전의 단계에서도 그것이 계속 발생하고 있는 것입니다. 참고로 MS는 제품의 완성도를 높여 가면서 베타1, 베타2, 베타3 등으로 명명을 합니다. RC가 되기 전까지 베타 버전을 계속 디버깅하고 요구사항을 구현해 나가는 것입니다.

바로 이것입니다. 그래서 업체들은 "방어적 목적으로" 베타 버전이라는 말을 사용하고 있는 것입니다. 안정적이지 않고, 버그가 있으며, 계속 변하고 있는 중이라는 뜻이죠.

제가 말씀 드린 사항은 논란의 여지가 없는 사항입니다. S/W 업계 상식적으로도, S/W 공학적으로도 통용되고 있는 내용입니다.

그러므로 소비자, 사용자들은 베타 버전을 너무 과신하지 마십시오. 실제로 업체들은, 안정적이지 않으니 그리 신뢰하지 말라는 뜻에서 “베타”라는 말을 사용하고 있는 것입니다.

물론 베타 버전을 과도하게 마케팅하는 업체는 도의상 문제가 있다고 하겠습니다.

'프로그래밍' 카테고리의 다른 글

PHP timezone 설정  (0) 2016.04.27
MySQL Check 제약  (0) 2016.03.29
한글 인코딩 종류  (0) 2015.09.30
PHP 날짜함수 정리  (0) 2015.08.24
MySQL Type 종류  (0) 2015.08.19
Posted by 캐논볼
,