Prawdziwa cena wprowadzenia szybkiej poprawki polega na tym, że gdy ktoś inny musi wprowadzić drugą szybką poprawkę, wprowadzi ją na podstawie Twojej własnej szybkiej poprawki. Tak więc im dłużej szybka naprawa jest na miejscu, tym bardziej się zakorzeni. Dość często hackowanie trwa tylko trochę dłużej niż robienie rzeczy dobrze, dopóki nie natrafisz na drugi hack, który opiera się na pierwszym.
Oczywiście czasami konieczne jest (lub wydaje się) wprowadzenie szybkiej poprawki.
Jednym z możliwych rozwiązań, zakładając, że twoja kontrola wersji to obsługuje, jest wprowadzenie rozwidlenia ze źródła za każdym razem, gdy robisz taki hack. Jeśli zachęci się ludzi do unikania kodowania nowych funkcji w ramach tych specjalnych forków „do zrobienia”, to w końcu integracja nowych funkcji z forkiem będzie wymagać więcej pracy niż pozbycie się hacka. Bardziej prawdopodobne jest jednak, że „dobry” widelec zostanie odrzucony. A jeśli jesteś na tyle daleko od wydania, że zrobienie takiego rozwidlenia nie będzie praktyczne (ponieważ nie warto robić wspomnianej powyżej podwójnej integracji), to prawdopodobnie i tak nie powinieneś nawet używać hacka.
Bardzo idealistyczne podejście.
Bardziej realistycznym rozwiązaniem jest podzielenie programu na jak najwięcej ortogonalnych komponentów i od czasu do czasu całkowite przepisanie niektórych z nich.
Lepszym pytaniem jest, dlaczego to hackerskie rozwiązanie jest złe. Jeśli jest zły, ponieważ zmniejsza elastyczność, zignoruj go, dopóki nie będziesz potrzebować elastyczności. Jeśli jest zły, ponieważ wpływa na zachowanie programu, zignoruj go, a ostatecznie zostanie naprawiony i zostanie rozwiązany. Jeśli jest zły, ponieważ wygląda brzydko, zignoruj go, o ile hack jest zlokalizowany.