7
Mar

Dev-refleksje podczas grania w NFS

Gutek niedawno napisał o swoich przemyśleniach odnośnie programowania podczas jazdy samochodem. Takie myśli mogą nas dopaść wszędzie. Od tego naprawdę nie ma ucieczki… o ile jesteśmy faktycznie odpowiednio zaangażowani.

Mnie ostatnio dopadły one podczas grania w doskonałe NFS: Most Wanted na Androida. Jeszcze p…asja? Czy już p…ierdolec?

Dla tych którzy nie grali: są to wyścigi samochodowe;). Gracz otrzymuje kilka trybów wyścigów. Jest tam oczywiście standardowe “dojedź pierwszy do mety”, jest “dojedź do mety w określonym czasie”… Ale tryb, który wywołał we mnie programistyczne myśli, to: “Speed run”.

Speed Run polega na przejechaniu całej trasy uzyskując jak najwyższą średnią prędkość od startu do mety. Zdobycie złotych medali w tej kategorii sprawiało mi spore kłopoty dopóki nie zauważyłem, że do problemu trzeba podejść w inny niż zwykle sposób.

W każdym wyścigu da się wykonać masę interesujących czynności. A to efektownie podriftować na zakrętach. A to wycisnąć z fury maksymalnego kopa doładowując “nitro”. A to rozwalić konkurenta albo radiowóz. W Speed Run trzeba jednak zapomnieć o większości z tych możliwości. Tam nie ścinamy zakrętów, bo nikt nas nie ściga. Można pokonywać pętle po zewnętrznej stronie, bo nie zależy nam na czasie. Nie staramy się wchodzić w zakręty driftem, bo na kilka sekund obniża to aktualną prędkość. Liczy się tylko i wyłącznie wysoka prędkość, o którą łatwiej przy zewnętrznej bandzie nawet jeśli przez to przejedziemy te kilkadziesiąt metrów więcej w skali całej trasy. Nie odpalamy też nitro jadąc z wystarczającą szybkością tylko po to, żeby jechać przez chwilę jeszcze szybciej. Nitro zostawiamy na sytuacje, w których ta prędkość znacznie spadnie, na przykład z powodu stłuczki – aby jak najszybciej powrócić do podbijania średniej.

Nie staramy się przywalić goniącego nas radiowozu. Co z tego że fajnie się roztrzaska dodając bonusowe nitro, skoro na istotną chwilę nas to spowolni?

Efekt jest taki, że dojeżdżamy do mety ze średnio imponującym czasem. Podczas jazdy nie rozwalimy policji i się nie poślizgamy. Nie zwracamy uwagi na skracanie trasy, bo tu nie liczy się każdy metr. Generalnie: w normalnym wyścigu tym sposobem jazdy dojechalibyśmy pewnie na ostatnim miejscu.

Ale tutaj się to sprawdza.

I dochodzimy do sedna. My, jako programiści, też mamy cały wachlarz opcji do wykorzystania podczas codziennej pracy. Czym w Twoim zespole jest drift – może próbą wdrożenia nowego pomysłu do projektu, potencjalnie zakończoną porażką? Czym jest nitro – może zostaniem przez kilka dni po godzinach? Czym jest ścięcie zakrętu – może jakimś refactoringiem czekającym aż ktoś się wreszcie za niego weźmie?

Jak często podczas pracy zastanawiasz się w jakim “trybie” pracujesz, a w jakim pracować powinieneś? Czy w skali całego zespołu ustalacie co jest aktualnie priorytetem? Jakie asy z programistycznego rękawa wyciągać podczas aktualnego sprintu…bo nie każdy z nich zawsze znajduje zastosowanie? Jakie jest Wasz cel w danym momencie? Efektowna jazda? Średnia prędkość? Najkrótsza trasa? Imponujący czas?

Jeśli wszyscy pracujący nad projektem mieliby ten sam wspólny cel i zdefiniowali techniki oraz czynności nadające się do osiągnięcia właśnie jego, być może organizacja pracy uległaby poprawie? Być może dałoby się uniknąć nieporozumień i konfliktów? Być może więcej projektów kończyłoby się sukcesem?

Autor

Maciej Aniserowicz

Maciej Aniserowicz
"Procent"
developer / architect

MVP
MCP

Search
Facebook
Twitter
Archiwum
Kategorie
© Copyright 2008-2013 Maciej Aniserowicz. All rights reserved. Running on WordPress.