YAGNI
YAGNI (You Aren't Gonna Need It) to zasada rozwoju oprogramowania zachęcająca do niewdrażania możliwości, które nie są obecnie potrzebne. Pomaga ograniczać spekulacyjne rozszerzenia i zbędną złożoność. Decyzje opiera na rzeczywistych wymaganiach, przy zachowaniu jakości umożliwiającej dalszy rozwój.
Jak działa?
Zespół sprawdza, czy planowany element jest potrzebny do realizacji uzgodnionego celu.
- Aktualna potrzeba: funkcja ma związek z konkretnym zadaniem lub potwierdzonym wymaganiem.
- Koszt złożoności: ocena obejmuje nie tylko programowanie, ale też testy i późniejsze utrzymanie.
- Odłożona decyzja: niepewne rozszerzenie może poczekać na lepsze informacje.
- Możliwość zmiany: czytelny kod i właściwe granice komponentów wspierają późniejszy rozwój.
Dlaczego jest ważne dla biznesu?
Funkcje tworzone na zapas zużywają budżet, nawet jeżeli nikt z nich nie korzysta.
- Skupiony zakres: praca dotyczy potrzeb istotnych obecnie dla odbiorców.
- Mniejszy koszt utrzymania: mniej nieużywanych elementów wymaga aktualizacji i sprawdzeń.
- Szybsza weryfikacja: produkt może wcześniej dostarczyć informacji o rzeczywistym zapotrzebowaniu.
YAGNI nie oznacza pomijania bezpieczeństwa, wymagań jakościowych ani znanych zależności. Dotyczy funkcji i abstrakcji opartych na niepotwierdzonych przewidywaniach.
Przykład praktyczny
Firma buduje portal dla jednej grupy partnerów. Pojawia się pomysł rozbudowanego mechanizmu wielu marek, choć nie ma planu jego wykorzystania.
Zespół ocenia koszt i odkłada funkcję. Porządkuje jednak konfigurację oraz model danych, aby obecne potrzeby były dobrze obsłużone i nie tworzyły niepotrzebnych przeszkód przy przyszłej zmianie.
Jak Sintra może Ci pomóc?
Chcesz ograniczyć zakres bez utraty sensu produktu? Możemy wesprzeć Cię w:
- warsztatach priorytetów — oddzieleniu potwierdzonych potrzeb od przypuszczeń;
- projektowaniu rozwiązania — wyborze prostego zakresu spełniającego wymagania;
- etapowym rozwoju — dodawaniu możliwości po sprawdzeniu ich wartości.
Decyzje o odłożeniu funkcji zapisujemy wraz z przesłankami.