Kiedy zachodzą zmiany w środowisku programu, w szczególności zmiany, których nie przewidzieli projektanci systemu, oprogramowanie to może nie działać tak, jak pierwotnie zakładano. Na przykład, w wielu starszych grach komputerowych projektanci wykorzystywali taktowanie procesora jako zegar w grze, ale zegary nowszych procesorów były szybsze, więc prędkość działania gry odpowiednio wzrastała, przez co gra była coraz mniej użyteczna wraz z biegiem czasu.
Jednorazowość
Istnieją zmiany w środowisku nie powiązane z twórcami oprogramowania lecz z jego użytkownikami. Początkowo, użytkownik może uruchomić system, który będzie działał bezawaryjnie przez określony czas. Lecz w momencie gdy system przestaje działać poprawnie, lub też użytkownicy chcą uzyskać dostęp do konfiguracji, nie są w stanie powtórzyć pierwszego kroku ze względu na inny kontekst sytuacji i brak dostępu do informacji (np. utrata hasła, brak instrukcji, lub po prostu trudny do zarządzania interfejs użytkownika, który został najpierw skonfigurowany metodą prób i błędów).