YAGNI는 일이 완료되기 전이 아니라 완료 해야 할 때 완료되는 것을 의미 합니다. 그것은 그들이 의미하지 않는다 결코 그들이하지 않는 한하지, 해본 얻을 결코 필요하지 않습니다. 즉, 고객에게 즉각적인 비즈니스 가치를 제공하는 것만 수행한다는 의미 입니다. 즉각적인 비즈니스 가치의 의미는 모든 고객과 모든 프로젝트에 따라 다릅니다.
두 경우 모두 YAGNI로 아무것도 잃을 수 없습니다 .
다른 경우에는 사용하지 않는 코드를 작성하고, 사용하지 않는 코드에 대한 테스트를 작성하고, 사용하지 않은 코드에 대한 문서를 작성하고, 사용하지 않는 코드에 대한 유지 관리를 수행하는 데 시간이 낭비됩니다. 그리고 그것이 사용된다면, 광고 구역.
예
프로토 타입 / 개념 증명 또는 1.0 버전의 응용 프로그램을 작업하는 경우 Facebook 수준으로 확장 할 디자인이 필요하지 않습니다. 이런 종류의 트래픽 이 있음을 알기 전까지는 Facebook 수준으로 확장 할 디자인이 필요하지 않습니다 .
Zuckerberg가 5 억 명의 사용자로 확장 할 수있는 최초의 Facebook 버전을 설계했다고 생각하십니까? 그는 필요로하는 것을 원하고 더 이상하지 않기 위해 설계하고 제작했습니다. 그가 처음부터 5 억 명의 사용자를 위해 디자인을 폭포하려고 시도했다면 페이스 북은 출시 된 적이 없었을 것입니다.
일을하는 실질적인 방법은 그가 한 일입니다. 그는 PHP와 MySQL로 시작했으며 비즈니스 가치 에 따라 필요에 따라 재 설계 및 재 작성 하여 수백만 명의 사용자로 확장하는 것은 엄청난 비즈니스 가치를 지녔지 만 0 일에는 아니 었습니다. 0 일에 시작하는 것은 엄청난 비즈니스 가치였습니다.
그는 재 설계와 재 작성을 계획 했다. 부엌 싱크대를 계획하는 것과는 다른 사고 방식이며 실제로 유용한 것을 개발하거나 제공하지 않습니다.
코드베이스의 수명 종료 계획 및 재 작성은 민첩하고 미래를 보장합니다. 정의되지 않은 "유연성"이라는 목표를 세우려고하면 매번 실패로 끝납니다. 당신은 어떤 필요도없이 설계하고 시간을 낭비하며 결코 사용되지 않을 기능에 대한 꿈을 꾸지 않고 비즈니스 가치 를 개발할 수 있습니다 .