Odległość między „działa u mnie" a „działa u trzystu osób" to więcej niż jedna funkcja — to cała warstwa, o której artysta nigdy nie myśli.
Znasz już język (Rozdział 14). Ten rozdział pokazuje, co dzieje się między napisaniem działającego skryptu a momentem, w którym trzysta osób klika go codziennie, nie wiedząc nawet, że pod spodem jest Python. To odległość, którą łatwo pominąć, planując narzędzie — a to właśnie w niej mieści się większość realnej pracy pipeline TD.
Skrypt napisany „dla siebie" i narzędzie oddane działowi robią często dokładnie to samo — ale opierają się na zupełnie innych założeniach o tym, kto je uruchomi i w jakich warunkach.
Osobisty skrypt zwykle zaczyna się od ścieżki wpisanej wprost w kodzie — działa, bo autor wie, gdzie leży jego plik. Narzędzie studyjne nie ma tego luksusu: musi samo ustalić, w jakim showcie, shocie i tasku aktualnie pracuje artysta, i zbudować właściwą ścieżkę z szablonu z Rozdziału 4, zamiast z niczego nie domyślać się na stałe. To właśnie ta zmiana — z „wiem, gdzie to jest" na „umiem to znaleźć samodzielnie, niezależnie od tego, kto mnie uruchamia i gdzie" — jest sercem uogólnienia skryptu do narzędzia.
Kiedy osobisty skrypt się wywala, autor czyta traceback, poprawia linijkę i uruchamia ponownie — to dla niego rutyna. Artysta, który nie zna Pythona, widząc ten sam czerwony tekst w konsoli, nie ma z niego żadnej użytecznej informacji — wie tylko, że coś nie działa, i musi napisać do kogoś z pipeline'u, zwykle nie mówiąc nic więcej niż „narzędzie się wysypało". Dlatego narzędzie studyjne musi jawnie sprawdzać sytuacje, które osobisty skrypt może bezpiecznie zignorować: czy coś jest zaznaczone, czy folder publikacji istnieje, czy plik nie jest akurat zablokowany przez kogoś innego (Rozdział 6) — i przy każdej z nich pokazać zdanie w języku, który artysta zrozumie, zamiast stosu wywołań funkcji.
Gotowy, odporny na błędy skrypt wciąż nie jest jeszcze narzędziem — musi dotrzeć na każdą stację roboczą w dokładnie tej samej wersji, ładować się automatycznie przy starcie DCC, i pojawić się w miejscu, gdzie artysta go faktycznie znajdzie. Tym, jak kod trafia na trzysta maszyn naraz w spójnej wersji, zajmuje się Rozdział 17; tym, jak zamienia się w przycisk zamiast linijki do wklejenia w Script Editorze — Rozdział 16, zaraz dalej.
Odporne na błędy narzędzie wciąż potrzebuje twarzy. Następny rozdział pokazuje, jak buduje się interfejsy w PySide/Qt tak, żeby artysta zrozumiał je bez czytania dokumentacji.