System kontroli wersji
System, który daje odwagę do zmieniania kodu — bo każdy poprzedni stan wciąż istnieje.
System kontroli wersji przechowuje pełną historię zmian, informację o tym, kto je wprowadził i dlaczego. Rozwiązuje trzy problemy naraz: pozwala wrócić do poprzedniego stanu, pracować równolegle bez nadpisywania cudzych zmian oraz odpowiedzieć, dlaczego dana linia wygląda tak, a nie inaczej — często to ostatnie jest najcenniejsze.
Linia rozwoju prowadzi od systemów opartych na blokadach, gdzie plik mogła edytować jedna osoba naraz, przez scentralizowane jak CVS i Subversion, gdzie prawdę posiada serwer, po rozproszone jak Git i Mercurial, gdzie każdy klon jest kompletnym repozytorium. Ta zmiana uczyniła gałęzie tanimi, co z kolei ukształtowało cały styl pracy: krótkożyjące gałęzie i przegląd przed scaleniem.