Nieodwracalność operacji

Właściwość operacji której skutku nie da się wycofać po tym, jak stał się widoczny na zewnątrz systemu. Podstawowe kryterium decydujące o tym, które działania agenta wymagają zgody człowieka, a które wystarczy zalogować z możliwością cofnięcia.

W Polsce nazywane też:

próg nieodwracalnościoperacja nie do cofnięciakryterium cofalnościgranica skutku

Gmail nie pyta „czy na pewno wysłać?”. Wysyła i daje kilka sekund na cofnięcie. Zero monitów, zero zmęczenia — a skutek dla użytkownika lepszy niż przy pytaniu.

Powód jest w czasie. Pytanie przed wysyłką pada wtedy, gdy jeszcze nie widzisz błędu. Okienko „cofnij” pojawia się dokładnie w chwili, gdy błąd rzuca ci się w oczy.

Czym jest nieodwracalność operacji

Operacja jest nieodwracalna gdy jej skutku nie da się wycofać po tym, jak stał się widoczny poza systemem.

Kluczowe jest to przesunięcie punktu odniesienia. Nie liczy się czy da się przywrócić stan techniczny, tylko czy da się cofnąć konsekwencję. Wysłany mail można usunąć z serwera, ale nie z pamięci odbiorcy. Zapis do pliku authorized_keys jest technicznie odwracalny, a praktycznie nie — klucz atakującego zdążył posłużyć.

Dlaczego to jest kryterium podziału zgód

Nieodwracalność jest lepszym kryterium niż typ operacji czy poziom uprawnień, bo odpowiada wprost na pytanie o koszt pomyłki.

Operacje odwracalne nie potrzebują bramki. Zapis z kopią w katalogu tymczasowym, commit bez pusha, draft wiadomości — każde z nich wymaga logu i przycisku cofnięcia, nie pytania. A uwaga zaoszczędzona na operacjach odwracalnych jest dokładnie tą, której zabraknie przy nieodwracalnych.

Zasada Raskina

Aza Raskin sformułował to w 2007 roku: nigdy nie używaj ostrzeżenia, kiedy masz na myśli cofnięcie. Jeśli dokładasz ostrzeżenie bo boisz się, że użytkownik zrobi coś czego pożałuje, to zwykle nie potrzebujesz ostrzeżenia — potrzebujesz undo.

Ten sam tekst wskazywał habituację jako powód, dla którego ostrzeżenia przestają działać. Zjawisko opisane w magazynie o projektowaniu stron, zanim powstał iPhone.

Warunek

Cofnięcie musi być realne, nie deklarowane. Przycisk „cofnij” przy operacji której skutek już wyszedł na zewnątrz jest gorszy niż jego brak, bo daje złudzenie odwracalności tam gdzie jej nie ma.

Przy projektowaniu warto wyznaczyć moment przekroczenia granicy dla każdej klasy operacji agenta i zapisać go jawnie. To ten moment, a nie typ operacji, decyduje o tym gdzie postawić zgodę.