Nadgorliwe stosowanie YAGNI (zwanego Projektowaniem przez wyliczenie w pułapkach rozwoju obiektowego ) w środowisku, w którym każda rozsądna osoba może stwierdzić, że wymagania na pewno się zmienią. I zmieniaj się wielokrotnie.
Jeśli (twardo) zakodowałeś wszystko dokładnie do aktualnych wymagań - jednocześnie pokonując każdego, kto mówi „czy to nie może być bardziej ogólne?” z młotkiem YAGNI - a następnie wymagania zmieniają się drastycznie (ale w sposób, który można było rozsądnie przewidzieć), wtedy może to być różnica między poświęceniem 2 tygodni na dostosowanie, a zajęciem 20 minut.
AKTUALIZACJA: Aby wyjaśnić, oto fikcyjny przykład, który nie jest zbyt daleko od tego, co się stało. Przepełnienie stosu zostało zaprojektowane tak, aby obsługiwać odznaki, ale załóżmy, że na początku mogły myśleć tylko o czterech odznakach. Tylko cztery, tak mała liczba, więc zakodowali na stałe wsparcie dokładnie czterech odznak w całej logice na stronie. W bazie danych, w informacjach o użytkowniku, we wszystkich kodach wyświetlanych. Ponieważ „Nie będziesz potrzebować” żadnych odznak, o których nie możesz pomyśleć, prawda? Załóżmy, że witryna jest aktywna, a ludzie zaczynają sugerować nowe plakietki. Każda odznakadodanie zajmuje nawet dwa tygodnie, ponieważ w całym tym miejscu jest tak wiele poprawek. Ale nadal: „Nie będziesz potrzebował” więcej odznak niż dzisiejsza lista, więc nigdy nie będzie żadnego refaktoryzacji w celu obsługi ogólnej kolekcji odznak. Czy taka ogólna kolekcja zajęłaby więcej czasu z góry? Niewiele, jeśli w ogóle.
YAGNI jest cenną zasadą, ale nie należy jej (ab) usprawiedliwiać złego projektu i niewłaściwego kodowania. Jest równowaga i z doświadczeniem, myślę, że do niej podchodzę.