Narzędzie, które trzeba tłumaczyć na Slacku, jest złym narzędziem — jak projektuje się okno, które artysta rozumie bez czytania dokumentacji.
Rozdział 15 zostawił narzędzie odporne na błędy, ale wciąż uruchamiane ze Script Editora. PySide (oficjalne bindingi Pythona do biblioteki Qt) to standard, w którym niemal każdy DCC pozwala budować własne okna, dokładnie w tym samym języku, którego używa reszta narzędzia. Sama technologia nie gwarantuje jednak niczego — dobre i złe narzędzia bywają zbudowane w dokładnie tym samym toolkicie. Różnica leży w decyzjach projektowych, nie w bibliotece.
Najczęstszy błąd początkującego narzędzia to okno, które odzwierciedla wewnętrzną strukturę kodu, zamiast pytania, jakie faktycznie zadaje sobie artysta. Narzędzie z Rozdziału 15 już wie, w jakim jest showcie, shocie i tasku — dobry interfejs pokazuje to jako informację, nie prosi o ponowne wpisanie. Podobnie numer kolejnej wersji: skoro narzędzie potrafi go wyliczyć samo, artysta nie powinien go wpisywać ręcznie — powinien go zobaczyć, gotowego, z możliwością kliknięcia „Publish" bez dotykania niczego innego.
Publikacja z Rozdziału 7 bywa operacją trwającą kilkadziesiąt sekund — eksport geometrii, zapis przez Perforce, aktualizacja systemu śledzenia. Jeśli w tym czasie okno narzędzia nie reaguje na żaden ruch myszy, artysta prawie zawsze zakłada, że coś się zawiesiło, i wymusza zamknięcie programu — tracąc niezapisaną pracę, której samo narzędzie nie miało nic wspólnego z powodowaniem. Dlatego każda operacja dłuższa niż ułamek sekundy potrzebuje paska postępu albo choćby prostego komunikatu „trwa publikacja".
To nie jest tylko kwestia estetyki. Interfejs Qt działa w tej samej głównej pętli zdarzeń, co reszta DCC — jeśli operacja publikacji zostanie napisana tak, że blokuje tę pętlę zamiast działać w tle, naprawdę zamraża całą aplikację, nie tylko okno narzędzia. Artysta, który w tym momencie próbuje kliknąć gdziekolwiek indziej w Mayi, dostaje potwierdzenie swoich najgorszych podejrzeń. Poprawnie napisane narzędzie przenosi taką operację do osobnego wątku, żeby reszta programu — i sam pasek postępu — mogła nadal odpowiadać.
Narzędzie ma już logikę i twarz. Zostaje pytanie, jak sprawić, żeby dokładnie ta sama wersja tego narzędzia — i programu, w którym działa — uruchamiała się identycznie na trzystu różnych maszynach. Tym zajmuje się następny rozdział.