오버엔지니어링

오버엔지니어링(Overengineering)은 정교하거나 복잡한 방식으로 제품을 설계하거나 문제에 대한 솔루션을 제공하는 행위로, 원래 설계와 동일한 효율성과 효과로 더 간단한 솔루션이 존재함을 입증할 수 있다.

오버엔지니어링은 안전율을 높이거나, 기능을 추가하거나, 대부분의 사용자가 인정하는 설계 결함을 극복하는 설계 변경으로 식별되는 경우가 많다. 안전이나 성능이 중요한 경우(예: 항공우주 차량 및 고급 도로 차량) 또는 매우 광범위한 기능이 필요한 경우(예: 진단 및 의료 도구, 제품의 고급 사용자) 바람직할 수 있지만 일반적으로 가치 측면에서 재료, 시간, 돈 등 자원을 낭비하는 엔지니어링으로 비판을 받는다. NASA는 개발 프로젝트 실패의 상위 10가지 위험 중 하나로 과도한 기능을 나열했으며, 메르세데스벤츠는 오작동, 유용성 부족 및 고객 불만으로 인해 자동차에서 600개의 비필수 기능을 개발하고 제거했다.

디자인 철학으로서 이는 "적을수록 좋다"(또는 "나쁠수록 좋다")라는 미니멀리스트 정신과 KISS 원칙에 대한 불복종이다.

오버엔지니어링은 일반적으로 고급 제품이나 전문 시장에서 발생한다. 어떤 형태에서는 제품이 과도하게 제작되어 예상 정상 작동(300km/h로 이동할 수 있는 도시 자동차 또는 예상 수명이 100년인 가정용 비디오 레코더)을 훨씬 초과하는 성능을 가지므로 더 비싸다. 필요 이상으로 부피가 크고 무겁거나 지나치게 복잡해질 수 있다. 추가 기능이 불필요할 수 있으며 피처 크리프와 같이 경험이 적고 기술적으로 지식이 부족한 최종 사용자를 압도하여 잠재적으로 제품의 유용성을 감소시킬 수 있다. 오버엔지니어링으로 인해 기능 피로가 발생하는 경우가 많다. 기능 피로는 제품이 과도한 양의 기능을 제공할 때 사용자가 경험하는 어려움이다. 이는 지나치게 복잡해져서 사용자가 제품이나 서비스를 정기적으로 사용하기 어렵게 만든다.

오버엔지니어링은 대부분의 사용자가 필요로 하는 것보다 더 많은 기능을 구축하고 유지해야 하기 때문에 설계 팀의 생산성을 감소시킬 수 있다.

그러나 이러한 효과를 피하기 위해 제품의 단순성과 미니멀리즘을 과도하게 추구하면 성급한 최적화가 초래될 수 있으며, 설계 프로세스에 투자한 시간과 노력에 대한 수익이 감소하여 잠재적으로 프로젝트에 해를 끼치게 되어 오버엔지니어링을 구성할 수도 있다.

같이 보기 
 기술 부채
 피처 크리프
 YAGNI
 계획적 구식화
 세상에서 가장 쓸데없는 기계
 우주 공간에서 필기

외부 링크 
 "Code Simplicity ", Code Simplicity: The Science of Software Development Book, O'Reilly Media, Max Kanat-Alexander, March 2012
 "Stop Over-Engineering!", Software Development magazine, Joshua Kerievsky, April 2002
 "Overengineering: How much is too much?", EDN magazine, Paul Rako, January 2008

공학 개념