본문으로 건너뛰기

굿 이너프 원칙

개념

완벽하거나 모든 기능을 갖춘 대안이 아니라 당면한 핵심 요구를 충분히 충족하는 대안을 우선하여 채택하는 것이 실질적으로 더 나은 결과를 낳는다고 보는 실용주의적 의사결정 및 설계 원칙

굿 이너프 원칙(영어: principle of good enough)은 완벽하거나 모든 기능을 갖춘 대안을 기다리기보다, 당면한 핵심 요구를 충분히 충족하는 대안을 먼저 채택하는 것이 실질적으로 더 나은 결과를 낳는다고 보는 실용주의적 원칙이다. 소프트웨어 공학과 시스템 설계, 제품 관리, 의사결정 이론 등 여러 분야에서 두루 쓰이는 개념으로, 완성도를 조금 더 높이기 위해 추가로 투입해야 하는 자원이 그로 인해 얻는 이득보다 커지는 지점에 이르면 개선을 멈추고 다음 단계로 넘어가야 한다는 판단을 정당화하는 근거로 활용된다.

이러한 사고방식은 어느 한 사람이나 단일한 저작물에서 비롯된 것이 아니라 서로 다른 여러 학문 분야에서 독립적으로 형성되었다. 1953년 영국의 소아과 의사이자 정신분석가인 도널드 위니콧은 육아를 논하는 맥락에서 “충분히 좋은 어머니”라는 개념을 제시하여, 완벽한 양육이 아니라 적절한 수준의 양육이 오히려 아동의 심리적 발달에 바람직하다고 주장했다. 1956년에는 경제학자이자 인지과학자인 허버트 사이먼이 인간의 인지적 한계로 인해 모든 대안을 비교하여 최적해를 찾기보다 일정한 기준을 만족하는 대안이 나타나면 탐색을 멈추는 의사결정 방식을 가리켜 충족화라는 용어를 제시했다. 소프트웨어 공학 분야에서는 1990년대 중반 제임스 바크와 에드 요던 등이 이 개념을 명시적으로 다루고 이론화하면서 하나의 독자적인 원칙으로 자리 잡았다.

굿 이너프 원칙은 제한된 합리성, 수확 체감의 법칙, 지연에 따른 기회비용과 같은 개념들로 그 근거가 뒷받침된다. 소프트웨어 품질 관리 분야에서는 모든 결함을 제거하려 하기보다 사용자에게 중요한 결함부터 우선 해결하는 전략으로 응용되었고, 애자일 소프트웨어 개발과 최소 기능 제품 전략에서는 초기 버전을 빠르게 출시하여 시장의 피드백을 얻는 방법론적 토대로 쓰였다. 경영 전략 분야에서는 성능은 낮지만 저렴한 제품이 기존 시장의 하단부를 잠식해 들어가는 현상을 설명하는 파괴적 혁신 이론에서도 이 개념이 응용되었다.

그러나 이 원칙은 소프트웨어 업계 안에서도 논쟁의 대상이 되어 왔다. 소프트웨어 장인 정신을 주창한 피트 맥브린과 같은 비판자들은 이 원칙이 본래 개발 범위를 관리하기 위한 실용적 발상이었음에도, 실제로는 품질 기준을 낮추는 구실로 오용되어 기술 부채와 장기적인 유지보수 문제를 낳을 수 있다고 지적했다. 반면 지지자들은 빠르게 변화하는 시장에서는 완벽을 기다리는 데 따른 지연 비용이 다소 불완전한 상태로 출시했을 때 발생하는 비용보다 더 클 수 있다고 반박한다.

굿 이너프 원칙은 리처드 개브리얼이 제시한 워스 이즈 베터, 익스트림 프로그래밍에서 비롯된 YAGNI 원칙, 볼테르가 인용한 “완벽은 좋음의 적이다”라는 격언 등 기능이나 완성도를 절제하자는 취지의 여러 인접 개념과 자주 혼동된다. 그러나 이들 개념은 각각 초점을 두는 대상, 즉 사용자 효용, 구현 방식의 단순성, 일반적인 처세훈 등에서 뚜렷이 구분된다.

정의와 개념적 기원

굿 이너프 원칙의 핵심은 어떤 산출물이 사용자나 고객의 즉각적인 요구를 충족시키는 최소한의 기준을 넘어서면, 그 이상으로 자원을 투입해 완성도를 높이는 작업은 한계 효용이 한계 비용보다 작아지는 지점에 도달한다는 판단에 있다. 이 지점을 넘어서도 계속 개선을 추구하는 행위는 이미 확보한 자원을 낭비하거나, 시장 진입이나 문제 해결의 시점을 불필요하게 지연시키는 결과로 이어질 수 있다고 본다. 다만 어느 지점이 “충분함”에 해당하는지는 절대적으로 정해져 있지 않으며, 적용되는 분야와 위험의 수준에 따라 달라진다.

제한된 합리성과 충족화

굿 이너프 원칙의 이론적 뿌리는 경제학자 허버트 사이먼이 제시한 제한된 합리성 이론에서 찾을 수 있다. 사이먼은 1955년과 1956년에 발표한 논문에서, 인간의 의사결정이 정보의 불완전성, 인지 처리 능력의 한계, 시간적 제약이라는 세 가지 요인으로 인해 이상적인 합리성에 미치지 못한다고 주장했다. 그는 이러한 조건 아래서 결정을 내리는 사람은 가능한 모든 대안을 비교하여 최선의 해를 찾는 극대화 대신, 미리 설정한 수용 가능한 기준을 만족하는 대안이 나타나면 그 시점에서 탐색을 멈추고 그 대안을 채택한다고 설명했다. 사이먼은 이러한 의사결정 방식을 satisfy(만족시키다)와 suffice(충분하다)를 합성한 충족화라는 용어로 명명했다. 이 개념은 이후 공공행정, 조직 이론, 인공지능 연구 등 여러 분야로 확산되었으며, 사이먼은 이러한 연구 성과로 1978년 노벨 경제학상을 수상했다.

flowchart TD
    A[대안 탐색 시작] --> B{수용 가능한 기준을<br/>만족하는가?}
    B -- 아니오 --> C[다음 대안 검토]
    C --> B
    B -- 예 --> D[해당 대안 채택,<br/>탐색 종료]

심리학의 인접 개념: 충분히 좋은 어머니

소프트웨어 공학에서 다루는 굿 이너프 원칙과는 별개로, 정신분석학에서도 유사한 문제의식이 먼저 제기된 바 있다. 영국의 소아과 의사이자 정신분석가인 도널드 위니콧은 1953년 논문에서 “충분히 좋은 어머니”라는 개념을 소개했다. 위니콧에 따르면 양육 초기에 어머니는 아기의 필요에 거의 완전하게 적응하지만, 시간이 지나면서 아기가 좌절을 감당할 수 있는 능력이 자라는 정도에 맞추어 그 적응의 완전성을 점차 줄여 나간다. 그는 이러한 점진적이고 불완전한 적응 과정이야말로 아기가 자신과 외부 세계를 구별하고 독립적인 현실감을 형성하는 데 필수적이라고 보았으며, 완벽하게 아기의 요구에 응답하려는 양육 태도는 오히려 아동의 발달을 저해할 수 있다고 지적했다. 이 개념은 이후 그의 저서 《유희와 현실》 등에서 더 발전되었다. 소프트웨어 공학의 굿 이너프 원칙과 위니콧의 개념은 서로 다른 학문적 계보에서 독립적으로 등장했지만, 완벽을 추구하는 대신 충분한 수준에서 멈추는 편이 더 나은 결과를 낳을 수 있다는 문제의식을 공유한다는 점에서 함께 언급되는 경우가 많다.

격언적 뿌리

완벽을 추구하는 태도를 경계하는 처세훈은 계몽주의 시대의 저술에서도 발견된다. 프랑스의 철학자 볼테르는 1770년에 쓴 《백과사전에 대한 질문》에서 이탈리아 속담을 인용하여 “가장 좋은 것은 좋은 것의 적이다”라는 취지의 문장을 남겼으며, 이후 그의 시 《라 베괴외르》에도 비슷한 구절이 등장한다. 이보다 앞서 1726년 무렵에는 몽테스키외 역시 유사한 표현을 자신의 글에 남긴 것으로 알려져 있다. 이 격언은 오늘날 “완벽은 좋음의 적이다”라는 표현으로 널리 알려져 있으며, 굿 이너프 원칙이 강조하는 실용주의적 태도의 오래된 선례로 언급되곤 한다.

소프트웨어 공학에서의 정식화

1990년대의 초기 이론화

굿 이너프라는 표현이 소프트웨어 개발 방법론으로서 명시적으로 다뤄지기 시작한 것은 1990년대 중반이다. 소프트웨어 테스트 전문가인 제임스 바크는 1995년 American Programmer지에 발표한 글 “굿 이너프 소프트웨어의 도전”에서, 애플과 볼랜드에서 일한 자신의 경험을 바탕으로 소프트웨어 품질을 인문주의적이고 발견적인 관점에서 재해석할 것을 주장했다. 같은 해 소프트웨어 공학자 에드 요던은 IEEE Software지에 발표한 글에서, 비용과 일정, 인력, 기능, 품질이라는 프로젝트의 여러 변수를 동시에 극대화하는 것은 불가능하다는 점을 지적하며 이들 사이의 합리적인 절충이 필요하다고 논했다. 바크는 1997년 IEEE Computer지에 발표한 후속 글에서 굿 이너프 소프트웨어라는 개념이 흔히 오해받는다는 점을 지적하며, 이를 의도적으로 결함을 방치하거나 최소한의 품질만 확보하는 관행과 동일시해서는 안 된다고 주장했다. 그는 마이크로소프트와 같은 회사가 사용자에게 실질적인 영향을 주지 않는 결함은 남겨 둔 채 출시하고, 영향이 큰 결함부터 우선적으로 해결하는 전략을 취한다는 점을 사례로 들었다. 다만 이러한 접근이 처음부터 폭넓은 지지를 받은 것은 아니어서, 바크의 글에 따르면 당시 한 소프트웨어 학회에서 소프트웨어 설계 이론가 래리 콘스탄틴은 굿 이너프 품질이라는 발상 자체를 받아들이지 않는다고 공개적으로 밝히기도 했다.

애자일 방법론으로의 확장

1990년대 후반과 2000년대 초에 걸쳐 익스트림 프로그래밍을 비롯한 경량 반복적 개발 방법론이 확산되면서, 방대한 사전 명세보다 점진적 전달과 최소한의 문서화, 적응적 설계를 중시하는 흐름이 자리를 잡았다. 소프트웨어 공학자 댄 터크, 로버트 프랑스, 베른하르트 룸페는 2014년 발표한 논문에서 애자일 방법론이 전제하는 여러 가정을 분석하며, 애자일이 포괄적인 사전 공학보다 동작하는 소프트웨어와 반복적인 개선을 중시하는 방향으로 무게 중심을 옮겼다고 설명했다. 지랏 파숙스밋과 동료 연구자들이 2021년 발표한 실증 연구에 따르면, 애자일 팀들은 실제로 방대한 산출물을 만들기보다 활동 계획과 공수 추정을 뒷받침하는 데 필요한 만큼만 문서를 작성하는 “충분한 만큼만”의 패턴을 따르는 것으로 나타났다.

최소 기능 제품과 린 스타트업

제품 관리 영역에서 굿 이너프 원칙과 밀접하게 연결되는 개념으로는 최소 기능 제품이 있다. 이 용어는 2001년 컨설팅 회사 SyncDev의 프랭크 로빈슨이 처음 제시한 것으로, 그는 최소 기능 제품을 공급자와 고객 양측 모두에 대한 위험 대비 수익을 극대화하는 제품, 즉 채택과 만족, 매출을 이끌어 낼 만큼은 크지만 그 이상으로 비대하거나 위험해지지 않는 수준의 제품으로 정의했다. 이후 스티브 블랭크는 자신이 사용하던 “최소 기능 집합”이라는 표현보다 로빈슨이 제시한 용어를 선호한다고 밝히며 이를 고객 개발 방법론에 접목했고, 에릭 리스는 2011년 저서 《린 스타트업》을 통해 이 개념을 대중화했다. 리스는 최소 기능 제품을 최소한의 노력으로 고객에 대한 검증된 학습을 최대한 확보할 수 있는 제품 버전으로 정의했으며, 이를 만들기·측정하기·학습하기로 이어지는 반복 순환 구조의 핵심 요소로 제시했다.

이론적 근거

굿 이너프 원칙을 뒷받침하는 논거로는 대체로 두 가지가 함께 인용된다. 첫째는 수확 체감의 법칙으로, 파레토 법칙에 따르면 전체 가치의 상당 부분은 소수의 핵심 기능에서 발생하며, 나머지 부수적인 기능을 완성하는 데는 그에 못지않은 노력이 들면서도 추가로 얻는 가치는 상대적으로 작다는 것이다. 둘째는 지연에 따른 기회비용으로, 완성도를 더 높이기 위해 출시나 의사결정을 미루는 동안 시장의 피드백을 얻을 기회, 경쟁 우위, 문제 해결의 시급성 등이 함께 희생될 수 있다는 것이다.

실제 적용 사례

소프트웨어 품질 관리

소프트웨어 테스트와 품질 보증 분야에서 굿 이너프 원칙은 모든 결함을 제거하려는 시도 대신, 사용자에게 미치는 영향의 크기에 따라 결함을 선별적으로 해결하는 전략으로 응용되어 왔다. 제임스 바크는 자신의 글에서 마이크로소프트를 비롯한 여러 소프트웨어 기업이 처음부터 알려진 결함을 일부 남긴 채 제품을 출시할 것을 예상하고 프로젝트를 진행하며, 다만 어떤 결함을 남길지를 판단하는 능력이 관건이라고 설명했다. 소프트웨어 테스트 전문가 켐 케이너 역시 1993년 저서 《테스팅 컴퓨터 소프트웨어》에서 결함 수정을 후순위로 미루는 관행이 업계에서 일상적으로 이루어진다고 서술한 바 있다.

하드웨어 제품과 파괴적 혁신

굿 이너프 원칙은 소프트웨어를 넘어 소비자 가전 제품의 성공 사례를 설명하는 데도 인용되어 왔다. 2009년 기술 매체 기즈모도의 마크 윌슨은, 2006년 출시된 저가형 캠코더 퓨어 디지털 포인트 앤드 슛(이후 플립 비디오로 개명)이 당대 기준으로는 영상 화질이 뒤떨어졌음에도 저렴한 가격과 유튜브 업로드에 적합한 휴대성 덕분에 캠코더 시장 점유율의 상당 부분을 차지했고, 결국 시스코에 인수되었다는 사례를 들었다. 그는 비슷한 시기 등장한 저가형 소형 노트북 아수스 이 피시 역시 저장 공간과 화면 크기가 제한적이었음에도 저렴한 가격으로 넷북이라는 새로운 제품군을 이끌어 냈다고 지적했다.

경영학자 클레이턴 크리스텐슨이 1997년 저서 《혁신기업의 딜레마》에서 제시한 파괴적 혁신 이론에서도 이와 유사한 구조가 설명된다. 크리스텐슨과 동료 연구자들이 2018년 발표한 논문에 따르면, 시장에는 고객이 실제로 활용할 수 있는 성능 개선의 속도와 기업이 제공하는 성능 개선의 속도라는 두 가지 궤적이 공존하며, 후자가 전자를 앞지르는 현상, 즉 시장에 대한 성능 과잉 공급이 일어나는 지점에서 파괴적 혁신의 계기가 마련된다. 크리스텐슨은 전통적인 성능 지표에서는 뒤떨어지지만 특정 고객층의 요구를 이미 충분히 충족하면서 더 저렴하거나 더 편리한 제품이 시장의 하단부에서 자리를 잡은 뒤 점차 상위 시장으로 이동하는 양상을 이 이론의 핵심으로 제시했다.

비판과 논쟁

굿 이너프 원칙에 대한 대표적인 비판은 소프트웨어 장인 정신 운동을 주창한 피트 맥브린으로부터 제기되었다. 맥브린은 2002년 저서 《소프트웨어 장인 정신: 새로운 필수 요건》의 “굿 이너프 소프트웨어 접근법의 위험성”이라는 장에서, 이 원칙이 본래는 개발 범위를 적절히 관리하기 위한 실용적 발상으로 등장했지만, 실제 현장에서는 소프트웨어 전달의 전문적 기준을 낮추는 결과로 이어지는 경우가 많다고 주장했다. 그는 이러한 접근이 견고한 해법을 “공학적으로” 만들어 내는 일과 그저 작동하는 무언가를 “짜깁기”하는 일 사이에 해로운 구분을 만들어 낸다고 지적했다. 이러한 비판은 이후 기술 부채 개념과 함께 논의되며, 당장의 요구만 충족시키고 넘어가는 결정이 누적될 경우 장기적인 유지보수 부담으로 이어질 수 있다는 우려로 이어졌다.

반면 굿 이너프 원칙을 옹호하는 쪽에서는, 특히 경쟁이 치열하고 빠르게 변화하는 시장에서는 완벽한 해법을 기다리는 데 따르는 지연 비용이 다소 불완전한 상태로나마 먼저 시장에 진입했을 때 발생하는 비용보다 클 수 있다고 반박한다. 이러한 입장 차이는 두 진영이 서로 다른 상황을 전제로 하고 있다는 점에서 비롯되기도 하는데, 예를 들어 개인용 소비재 소프트웨어에서 통용되는 기준과 항공 제어 시스템처럼 결함의 대가가 극단적으로 큰 안전 필수 시스템에서 통용되는 기준은 서로 다를 수밖에 없다는 지적도 함께 제기된다.

관련 개념과의 비교

워스 이즈 베터

굿 이너프 원칙은 리처드 개브리얼이 1989년 글 “리스프: 좋은 소식, 나쁜 소식, 크게 이기는 법”의 일부로 제시하고, 1991년 그의 동료 제이미 자윈스키에 의해 널리 퍼진 “워스 이즈 베터”(뉴저지 방식) 개념과 자주 혼동된다. 개브리얼은 자신이 몸담았던 리스프 진영이 지향한 “MIT 방식”과, 초기 유닉스와 C 언어가 대표하는 “뉴저지 방식”을 대조하며 두 설계 철학이 단순성과 정합성, 완전성 사이에 서로 다른 우선순위를 둔다고 설명했다.

항목 MIT 방식(더 라이트 씽) 뉴저지 방식(워스 이즈 베터)
최우선 가치 인터페이스의 단순성 구현의 단순성
정합성 반드시 지켜야 하는 요건 단순성을 위해서라면 희생 가능
완전성 반드시 달성해야 하는 요건 구현 단순성이 위협받으면 가장 먼저 희생

두 개념은 모두 완성도에 대한 절제를 옹호한다는 점에서 겹치지만, 굿 이너프 원칙이 “이 제품이 지금 사용자의 문제를 해결할 만큼 충분한 기능을 갖추었는가”라는 사용자 효용의 관점에 초점을 맞추는 반면, 워스 이즈 베터는 소프트웨어의 구현과 인터페이스가 얼마나 단순한가라는 설계 방식의 관점에 초점을 맞춘다는 점에서 구분된다.

YAGNI 원칙

YAGNI(You Aren’t Gonna Need It) 원칙은 켄트 벡 등이 주도한 익스트림 프로그래밍에서 비롯되었으며, 공동 창시자인 론 제프리스가 정식화한 것으로 알려져 있다. 이 원칙은 실제로 필요한 시점이 되기 전까지는 어떤 기능도 미리 구현하지 말아야 한다는 지침으로, 2001년 출간된 《익스트림 프로그래밍 인스톨드》에 정리되어 있다. YAGNI가 앞으로 필요할 것이라고 예상되는 기능을 미리 만들어 두지 말라는 데 초점을 맞춘다면, 굿 이너프 원칙은 이미 만들기로 한 기능 자체를 어느 수준까지 다듬을 것인가에 초점을 맞춘다는 점에서 서로 다른 국면을 다룬다.

기술 부채

기술 부채는 위키 기술의 개척자이기도 한 워드 커닝엄이 1992년 OOPSLA 학술대회 경험 보고서에서 처음 제시한 은유로, 서둘러 작성한 코드는 마치 빚을 지는 것과 같아서 이후 다시 작성하는 방식으로 신속히 갚지 않으면 갚지 않은 코드에 들이는 시간만큼 “이자”가 계속 붙는다고 설명한다. 굿 이너프 원칙과 기술 부채 개념은 서로 밀접하게 맞물려 있는데, 당면한 요구만 충족시키고 개선을 멈추는 결정 자체는 정당할 수 있지만, 이러한 결정이 이후 재검토나 개선 없이 누적될 경우 기술 부채로 전환될 수 있다는 점에서 두 개념이 함께 논의되곤 한다.

같이 보기

이 문서와 관련된 개념으로는 워스 이즈 베터, YAGNI 원칙, 최소 기능 제품, 기술 부채, 충족화, 제한된 합리성, 파레토 법칙, 파괴적 혁신 이론, 애자일 소프트웨어 개발, 완벽은 좋음의 적이다 등이 있다.


참고 자료

  • Bach, James (1995), “The Challenge of ‘Good Enough’ Software”, American Programmer
  • Bach, James (1997), “Good Enough Quality: Beyond the Buzzword”, IEEE Computer, 30(8), pp. 96–98
  • Yourdon, Edward (1995), “When Good Enough Software Is Best”, IEEE Software, 12(3), pp. 79–81
  • Kaner, Cem (1993), Testing Computer Software, International Thomson Computer Press
  • Simon, Herbert A. (1956), “Rational Choice and the Structure of the Environment”, Psychological Review, 63(2), pp. 129–138
  • Winnicott, D. W. (1953), “Transitional Objects and Transitional Phenomena”, International Journal of Psycho-Analysis, 34, pp. 89–97
  • Voltaire (1770), Questions sur l’Encyclopédie
  • Gabriel, Richard P. (1991), “The Rise of ‘Worse is Better’” (Lisp: Good News, Bad News, How to Win Big의 일부로 1989년 작성)
  • McBreen, Pete (2002), Software Craftsmanship: The New Imperative, Addison-Wesley
  • Cunningham, Ward (1992), “The WyCash Portfolio Management System”, OOPSLA ’92 Experience Report
  • Jeffries, Ron; Anderson, Ann; Hendrickson, Chet (2001), Extreme Programming Installed, Addison-Wesley
  • Robinson, Frank (2001), “Minimum Viable Product”, SyncDev
  • Ries, Eric (2011), The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses, Crown Business
  • Christensen, Clayton M. (1997), The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail, Harvard Business School Press
  • Christensen, Clayton M.; McDonald, Rory; Altman, Elizabeth J.; Palmer, Jonathan E. (2018), “Disruptive Innovation: An Intellectual History and Directions for Future Research”, Journal of Management Studies, 55(7), pp. 1043–1078
  • Wilson, Mark (2009), “The New Mantra of Tech: It’s Good Enough”, Gizmodo, April 27, 2009
  • Turk, Dan; France, Robert; Rumpe, Bernhard (2014), “Assumptions Underlying Agile Software Development Processes”, arXiv:1409.6610 [cs.SE]
  • Pasuksmit, Jirat; Thongtanunam, Patanamon; Karunasekera, Shanika (2021), “Towards Just-Enough Documentation for Agile Effort Estimation: What Information Should be Documented?”, 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 114–125