Unikaj wymyślnego kodowania. Im bardziej skomplikowany kod, tym większe prawdopodobieństwo błędów. Zwykle w nowoczesnych systemach wyraźnie napisany kod będzie szybki i wystarczająco mały.
Użyj dostępnych bibliotek. Najłatwiejszym sposobem na uniknięcie błędów związanych z pisaniem programu narzędziowego jest nie pisanie go.
Naucz się kilku formalnych technik dla bardziej skomplikowanych rzeczy. Jeśli występują skomplikowane warunki, przybij je długopisem i papierem. Najlepiej znać niektóre techniki dowodowe. Jeśli mogę udowodnić, że kod jest poprawny, prawie zawsze jest dobry, z wyjątkiem dużych, głupich, oczywistych błędów, które można łatwo naprawić. Oczywiście dzieje się tak tylko do tej pory, ale czasem możesz formalnie rozumować o małych, ale skomplikowanych rzeczach.
W przypadku istniejącego kodu dowiedz się, jak refaktoryzować: jak wprowadzać niewielkie zmiany w kodzie, często za pomocą zautomatyzowanego narzędzia, dzięki którym kod jest bardziej czytelny bez zmiany zachowania.
Nie rób niczego zbyt szybko. Poświęcenie trochę czasu z góry, aby zrobić wszystko dobrze, aby sprawdzić, co zrobiłeś i pomyśleć o tym, co robisz, może się później opłacić.
Po napisaniu kodu użyj tego, co musisz, aby był dobry. Testy jednostkowe są świetne. Często możesz pisać testy z wyprzedzeniem, co może być świetną informacją zwrotną (jeśli są wykonywane konsekwentnie, jest to programowanie oparte na testach). Kompiluj z opcjami ostrzegania i zwracaj uwagę na ostrzeżenia.
Poproś kogoś innego, aby spojrzał na kod. Formalne recenzje kodu są dobre, ale mogą nie być w dogodnym czasie. Wyciągaj żądania lub podobnie, jeśli scm nie obsługuje ich, zezwalaj na asynchroniczne recenzje. Sprawdzanie znajomych może być mniej formalną recenzją. Programowanie par zapewnia, że dwie pary oczu patrzą na wszystko.