피쳐 크리프

Feature creep

기능 크리프는 [1]특히 컴퓨터 소프트웨어, 비디오 게임, 소비자비즈니스용 전자제품에서 지속적으로 새로운 기능을 과도하게 확장 또는 추가하는 것입니다.이러한 추가 기능은 제품의 기본 기능을 넘어 단순한 설계가 아닌 소프트웨어의 번짐과 과도한 복잡성을 초래할 수 있습니다.

「기능 크리프」라고 하는 것의 정의는 최종 사용자마다 다릅니다.이 경우, 일부 유저에 의해서 인식되고 있는 것이, 다른 [2]유저에 의해서 실용적인 기능이라고 생각되는 경우가 있습니다.

원인들

기능 크리프의 가장 일반적인 원인은 판매 또는 유통을 늘리기 위해 소비자에게 보다 유용하거나 바람직한 제품을 제공하고자 하는 욕구입니다.그러나 제품이 설계된 모든 기능을 수행하는 단계에 도달하면 제조업체는 일부 사용자가 불필요하다고 생각할 수 있는 기능을 추가하는 것과(때로는 효율성을 희생하는 것), 이전 버전을 유지하는 것(개선되지 않은 것으로 인식되는 비용) 중 하나를 선택할 수 있습니다.

기능 크리프의 또 다른 주요 원인은 동일 제품에 여러 다른 관점 또는 사용 사례를 구현하기로 결정한 위원회의 타협일 수 있습니다.그 후, 각 어프로치를 서포트하는 기능이 추가되면, 복수의 패러다임 사이에 크로스 컨버전 기능이 필요하게 되어, 전체적인 기능이 한층 더 복잡해질 가능성이 있습니다.

특성.

기능 크리프는 비용과 스케줄 오버런의 [3][verification needed]가장 일반적인 원인 중 하나입니다.따라서 제품 및 프로젝트를 위험에 빠트릴 수 있습니다.

통제

기능 크리프를 제어하는 방법에는 허용 가능한 기능의 엄격한 제한, 여러 변형, 과도한 기능의 플루닝 등 여러 가지가 있습니다.

분리

기능성 및 데이터 액세스의 논리적 분리 등 강력한 소프트웨어 기초에 기초해 초기 설계를 함으로써 나중에 기능 크리프의 유혹을 어느 정도 피할 수 있다. 예를 들어, 더 많은 기능성과 더 높은 상세 정보를 원하는 파워 유저가 선택적으로 접근할 수 있는 하위 메뉴를 사용한다.엄격한 변경 관리 및 프로젝트 [4]제공 단계 변경을 지연시킴으로써 능동적으로 제어할 수 있습니다.

종류와 옵션

기능 크리프를 제어하는 또 다른 방법은 제품의 여러 변형을 유지하는 것입니다.이 경우 Microsoft Windows 에디션과 같은 보다 기본적인 변종에서는 기능이 제한되고 축소됩니다.소프트웨어 사용자 인터페이스의 경우 보기 모드 또는 작동 모드(예: 기본 모드 또는 전문가 모드)를 사용할 수 있으며, 그 사이에서 사용자는 자신의 요구에 맞게 선택할 수 있습니다.

많은 그래피컬 유저 인터페이스와 커맨드 라인 인터페이스 모두에서, 유저는 수동으로 보다 상세한 내용을 선택할 수 있습니다.후자의 경우, 많은 명령줄 프로그램에서는,-v또는--verbose옵션을 수동으로 지정하면 최소한의 사용자에게는 그다지 관련이 없지만 파워 유저에게는 도움이 될 수 있는 보다 상세한 정보가 표시됩니다.

새로운 기능의 계속 증가하는 추가는 사용 가능한 자원을 초과할 수 있기 때문에 제품의 최소 코어 "기본" 버전을 별도로 유지하여 소규모 운영 환경에서의 운영을 보장할 수 있습니다.「80/20 룰」을 사용하면, 보다 기본적인 제품 변형이 대다수의 유저(80%까지)의 요구를 만족시킬 수 있기 때문에, 고도의 20%의 유저가 요구하는 기능의 복잡성(또는 추가 비용)에의 영향을 받지 않게 됩니다.추가 기능은 아직 사용할 수 있지만, 옵션이며, 이를 요청하는 사용자에게 즉시 사용할 수 있습니다. 그러나 이러한 기능은 제품의 기본 버전에 구현되지 않았습니다.

모듈러성

기능 크리프의 또 다른 솔루션은 모듈러 방식입니다.더 많은 기능을 필요로 하는 파워 유저는 소프트웨어 모듈, 플러그인, 애드온(애드인이라고도 함) 및 커스텀 테마를 다운로드하여 개인 요건에 맞게 필요한 기능을 변경할 수 있습니다.

가지치기

특정 기능의 서브셋을 유지하는 비용이 만만치 않게 되어 프루닝을 사용할 수 있습니다.새로운 제품 버전에서는 추가 기능이 생략되거나 이행 기간이 사용될 수 있습니다.이 경우 시스템에서 최종적으로 삭제되기 전에 오래된 기능이 폐지됩니다.제품의 종류가 여러 개일 경우 일부 제품은 사용되지 않을 수 있습니다.대표적인 예로 2015년 3월에 출시된 Samsung Galaxy S6가 있습니다. 이 중 상당수의 소프트웨어/메뉴 기능과 일부 하드웨어 기능이 제거되었습니다.그것의 "더 기능적인" 변형은 공개되지 않았습니다.

결과들

범위 확대

경우에 따라서는 제어되지 않은 기능 크리프로 인해 원래 의도했던 범위를 훨씬 벗어난 제품이 발생할 수 있습니다. 이를 스코프 크리프라고 합니다.단, 기능 크리프의 일반적인 결과는 제품의 지연 또는 취소이며, 이는 당초 [citation needed]의도했던 것보다 더 비싸질 수 있습니다.

지연

많은 경우, 기능을 충분히 갖춘 소프트웨어 프로젝트나 기능 크립이 중간 정도인 프로젝트는 많은 반복을 통해 살아남을 수 있으며, 새로운 기술을 도입할 뿐만 아니라 코드 기반 전체를 다시 작성하기로 결정되면 후속 릴리스는 상당한 지연을 겪을 수 있습니다.예를 들어, 마이크로소프트의 Windows VistaWindows XP와 그 후속 버전인 Windows "Blackcomb" 사이에서 마이너 릴리스가 될 예정이었지만, Blackcomb의 기능을 점점 더 많이 채택한 후 Vista는 5년의 개발 기간이 걸린 메이저 릴리스가 되었습니다.

넷스케이프6도 비슷한 운명을 맞았는데, 넷스케이프6는 원래 넷스케이프5였어야 했다.1998년 Netscape Communications가 Netscape Navigator 브라우저와 Communicator 인터넷 스위트(둘 다 코드명 Mozilla)를 오픈 소스하기로 결정함에 따라 곧 기본 코드가 너무 어렵다는 것이 명백해졌고, Mozilla 애플리케이션 프레임워크의 생성을 촉진한 Mozilla의 완전한 개서가 요구되었습니다.이로 인해 상당한 지연이 발생하였고 Netscape 5는 건너뛰었으며 AOL에 의해 인수되었습니다.2000년 Netscape 6.00의 후속 릴리스는 알파 레벨 코드라는 비판을 많이 받았고, 프로젝트는 인터넷 스위트 재작업 결정 3년 후인 2001년 Netscape 6.1에 의해 안정되었다.그 무렵, 마이크로소프트의 인터넷 익스플로러 브라우저는 넷스케이프를 한 자릿수로 줄인 사용 점유율에서 오랫동안 앞섰다.

AOL이 Netscape를 구축한 오픈 소스 Mozilla Application Suite(당시 Mozilla로 이름 붙여진 것)는 안정성에 도달하고 필요한 새로운 기능을 획득한 후에도 "블루티드"로 간주되었다.불과 1년 후, Mozilla 개발자들은 브라우저 컴포넌트를 분리하기로 결정하였고, 이는 결국 Firefox가 되었다.

Double Fine Adventures의 Kickstarter 프로젝트 Broken Age는 피쳐 크리프로 인해 프로젝트가 지연되고 있는 또 다른 예입니다.당초 2012년 10월로 예정되어 있던 게임의 전반부는 2014년 1월에 발매되었고 후반부는 2015년 4월 말에 이어 2번의 자금 조달이 필요하게 되었다.[5]

피핑 크리에이티브리즘

기능의 크립과 짧은 기한이 결합하면, 「허술한 솔루션」이 되는 경우가 많습니다.원하는 변경은 기존 프로젝트 기반을 재설계할 수 있을 정도로 클 수 있지만, 기한이 촉박하기 때문에 개발자는 덜 우아한 접근방식으로 "실현"해야 합니다.유머러스한 스푸너리즘인 "피핑 크리에이티브리즘"은 이 상황에 [6]대한 개발자의 혐오감을 강조하기 위해 만들어졌으며, 스코프 크립 제품을 "암흑 [7]속을 배회하는" 해커의 기형적인 존재로 의인화했고,[8] 더 많은 크리프가 올 징조"로 정의했다.("피핑")는 "피핑"[9]의 동의어이다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ J.M. Sullivan (8–10 June 2005). "Impediments to and incentives for automation in the Air Force". Proceedings. 2005 International Symposium on Technology and Society, 2005. Weapons and Wires: Prevention and Safety in a Time of Fear. ISTAS 2005. 2005 International Symposium on Technology and Society. pp. 101–110. doi:10.1109/ISTAS.2005.1452719. ISBN 0-7803-9284-1. S2CID 21079766.
  2. ^ Featuritis (or creeping featurism).
  3. ^ Davis, F.D.; Venkatesh, V. (February 2004), "Toward preprototype user acceptance testing of new information systems: implications for software project management", IEEE Transactions on Engineering Management, 51, 51 (1): 31–46, doi:10.1109/TEM.2003.822468, ISSN 0018-9391, S2CID 1204079
  4. ^ Kenneth S. Norton (2001), Applying Cross-Functional Evolutionary Methodologies to Web Development, paper in Web Engineering: Managing Diversity and Complexity of Web published by Springer, ISBN 3-540-42130-0
  5. ^ Double Fine Breaked Age를 반으로 쪼개서 자금을 조달, By Kris Ligman, 2013-07-02, Gamasutra
  6. ^ feeping creaturism, 2016-05-27, FOLDOC.org - 무료 온라인 컴퓨팅 사전
  7. ^ Raymond, Eric S.; et al. (December 29, 2003). "feeping creaturism". The Jargon File. Ver. 4.4.7. Retrieved June 20, 2017.
  8. ^ Raymond, Eric S.; et al. (December 29, 2003). "feeping creature". The Jargon File. Ver. 4.4.7. Retrieved June 20, 2017.
  9. ^ Raymond, Eric S.; et al. (December 29, 2003). "feep". The Jargon File. Ver. 4.4.7. Retrieved June 20, 2017.

외부 링크