Wydajność to coś, co każdy z nas chce osiągnąć. Kto z nas nie chce być produktywnym i na koniec dnia dowozić wszystkie założone cele i taski? W środowisku produkcyjnym, inżynieryjnym lub projektowym, wśród programistów pojawiło się pojęcie programista 10x.
Postawmy kilka pytań we wstępnie:
- Kim jest programista 10x?
- Czy da się być programistą 10x?
- Jak zostać programistą 10x?
- Czy każdy z nas musi być programistą 10x?
Bez przedłużania, zaczynajmy!
Zatrzymaj się!
Książki to obowiązkowa pozycja dla każdego zainteresowanego programowaniem!
Jest to zdecydowanie jedno z najlepszych źródeł do nauki programowania! Zyskasz przewagę w branży IT i osiągniesz dużo jako deweloper.
Kim jest programista 10x?
Życie programistów bywa trudne. Ciągle terminy, mnogość zadań i długie spotkania. Jednego dnia jesteśmy rozrywani, przeskakujemy z miejsca na miejsce, innego dnia łapiemy flow, nikt i nic nam nie przerywa i zamykamy taski na potęgę.
Załóżmy, że jesteś programistą i masz za zadanie zrobić moduł do przyjmowania ofert i składania zamówień, który zajmie Ci dokładnie 10 dni pracy. Masz też w zespole kolegę, na potrzeby artykułu nazwijmy go Matim. Mati przychodzi rano do pracy i przy porannej kawie proponuje Ci zamianę tasków. Ty przejmiesz jego zadania analityczne, on zrobi za Ciebie moduł ofertowy. Zgadzasz się, bo masz dość grzebania w kodzie i chętnie zrobisz coś innego.
Przychodzi koniec dnia i wpadasz w lekkie zmieszanie, gdy Mati ogłasza koniec pracy nad Twoim modułem, który sam wyceniłeś na dziesięć „dniówek”!
Ta krótka i nieco koloryzowana historyjka pasuje dobrze do obrazu programisty 10x. Programista taki to czysty, niemal mityczny talent. Człowiek pracujący ciągle na wysokich obrotach, którzy potrafią wpadać w stan flow i z dużą wydajnością szybko produkować kod odporny na błędy.
Pisząc bardziej kolokwialnie. Programista 10x to programista, który jest dziesięć razy bardziej wydajny niż przeciętny programista w zespole. Dziesiątka jest w tym przypadku dość umowna, bo nawet jeśli będzie to 3, 5 czy 7 razy bardziej wydajny, to i tak jest to kolosalna różnica.
Termin programista 10x rozszerzył do 1000x inwestor z Doliny Krzemowej Naval Ravikanta, który ma za sobą inwestycje w takie spółki jak Twitter czy Uber. Jest to już nieco szalone porównanie z innymi! Odnosi się to jednak bardziej do tego, że sprawny programista jest w stanie tak skonstruować kod, który da zarobek inwestorom liczony w milionach, albo nawet miliardach dolarów.
I takie określenie i mierzenie bardziej do mnie przemawia niż walka z czasem i umiejętnościami.
Czy da się być programistą 10x?
Podchodzę do tematu sceptycznie. Można być bardziej wydajnym od kolegów i koleżanek z zespołu, ale czy aż 10x? Robisz 10 zadań, a ktoś w tym czasie zrobi ich aż 100? Z dziesięcioletniego doświadczenia mogę powiedzieć, że nie widziałem takich sytuacji. Może za mało w życiu programistycznym jeszcze widziałem?
Są jednak i tacy, którzy wierzą w mit programisty 10x. Wiele osób wskazuje inżynierów takich jak John Carmack i Linus Torvalds jako przykłady takich inżynierów oprogramowania. Większość z nas nie była w stanie zrobić tego, co zrobił John Carmack, nawet przez całe życie. Ale czy jest to aż tak kosmiczna wydajność? Odpowiedz sobie na ten temat sam. Jeśli nie wiesz przy okazji, kim jest John Carmack, to zobacz ten materiał Lexa Fridmana (https://www.youtube.com/watch?v=I845O57ZSy4). Linusa nie muszę przedstawiać.
John czy Linus zrobili mega dużo pracy, ale oni poświęcili całe swoje młode życie na programowanie. Siedzieli przed ekranami komputerów po 12-16h dziennie całymi miesiącami. Czy da się tak wiele robić, pracując na etacie przez 8 godzin, odrywając się od pracy na kolejne naście godzin w tygodniu i na całe weekendy? Każde odejście od komputera wiąże się z obniżeniem wydajności, bo powroty, nawet po kilku/kilkunastu minutach powoduje zanik pamięci i programista musi poświęcić energię na powrót na właściwe tory.
Reasumując, wydaje mi się, że nie da się być aż tak wydajnym w codziennej pracy. Możesz sięgać granic tej wydajności w przypadku pracoholizmu i pracy od rana do nocy, ale umówmy się, ilu jest wśród nas takich pasjonatów? Wiąże się to z problemami zdrowotnymi, zaburzeniem życia osobistego i zwykłym zmęczeniem. Abstrahując już od ponadprzeciętnej inteligencji i niezwykłej umiejętności planowania i wyciszenia, według mnie jest to nierealne, by tak wydajnie pracować cały czas!
Jak zostać programistą 10x?
Pytanie teoretycznie jest trywialne, wystarczy dobrze pracować i się nie rozpraszać. Ale czy to tylko tyle? Żeby tak pracować, trzeba spełnić szereg założeń. Po pierwsze i najważniejsze. Odłączenie się od bodźców zewnętrznych. Jednym pomagają słuchawki, inni zamykają się w samotności. W przypadku pracy zdalnej jest to ułatwione. W biurze często jesteśmy skazani na otwarte przestrzenie, które nie pomagają w wyciszeniu. Do tego zapomnij o telefonie. Zero wiadomości, social media i śmiesznych obrazków. I oczywiście zero rozmów z innymi, zero maili i jeszcze raz cisza.
Po drugie produktywność wniesiona na level master. Dziesiątki narzędzi ułatwiających pracę, duża ilość automatyzacji. Nic nie pozostawiasz przypadkowi, wszystko masz poukładane. Nawet porządek na biurku jest wskazany, nie wspominając o porządku na dysku komputera czy wreszcie w projekcie.
I po trzecie. Godziny siedzenia na dupie. Nie da się być jak programista 10x, bez ciągłej pracy. Nie ma czasu na przerwy, nie można się przecież odrywać. Spotkania? Zapomnij! Rozmowy przy kawie? Strata czasu! Odpisywanie na maile? Nie ma powodu, by to robić, taski same się nie zrobią!
Tylko trzy i aż trzy elementy, które przybliżą Cię do bycia programistą 10x. Zastanów się jednak, czy takie skrajności są dla Ciebie konieczne. Może wystarczy być programistą w swoim tempie?
Czy każdy z nas musi być programistą 10x?
I tak, i nie. Ale co to znaczy? Każdy z nas może wyrobić w sobie odpowiednie cechy, które predysponują do wydajniejszej pracy. Nie każdy jednak może pracować z tak dużą wydajnością. Wpływ na to ma projekt, technologia, nasze chęci i pasja czy wreszcie inne cechy charakteru, takie jak odporność na stres.
Często zapomina się, że praca w takim stanie flow bywa też stresująca i wypalająca. Nie każdy z nas ma predyspozycje do odporności na stres w długim terminie.
Też nie każdy z nas dysponuje w pracy zawodowej narzędziami, które super będą nadawać się do optymalizacji. Firmy nie zawsze będą płacić za nasze zachcianki i dziesiątki programów. Porównaj to do prac fizycznych. Jeden pracownik będzie miał jedynie łopatę, drugi najnowocześniejszą koparkę. Kto będzie kopał szybciej?
Często zapominamy o tym, że sprzęt dostajemy od pracodawcy, czasami bywa tak, że pracodawca oszczędza na przykład na dodatkowym oprogramowaniu. Są oczywiście firmy, które spełniają każdą zachciankę programisty i pozwolą na zakup programów do optymalizacji (przykład ReSharper do VS).
Jest też kwestia bezpieczeństwa. Działy bezpieczeństwa mogą zwyczajnie nie zezwolić na dziwne oprogramowanie lub skrypty optymalizacyjne. Są to jednak marginalne przypadki.
Jak widać, w pracy zawodowej są różne zmienne, które wpływać będą pośrednio lub bezpośrednio na naszą wydajność.
Podsumowanie
Wiele napisałem już wyżej. Moim zdaniem bycie programistą 10x w normalnych warunkach nie jest możliwe. Można być ekstremalnie wydajnym w określonym środowisku, przez określony czas i podczas określonego przygotowania. Czy warto? Nie jestem pewien, za dużo wyzwań i problemów z tym związanych. A może jestem już „za stary” na tak ekstremalny wysiłek intelektualny? Może zbyt leniwy? A może po prostu doświadczony i wolę pożytkować swój czas po równo na różne przyjemności, nie tylko programowanie!
Zachęcam do stosowania umiaru, zwłaszcza na początku kariery programisty. Nie daj sobie wymówić, że robisz coś za wolno, bo wpadniesz w błędne koło. Ganianie za uciekającym króliczkiem, jakim jest bycie programistą 10x, nie jest zdrowe i nie jest opłacalne!
Newsletter
Nie przegap i dołącz już dziś do 838 osób będących w tym Newsletter! Otrzymuj co niedzielę o godzinie 20 listę kilku ciekawych tematów, które miałem okazję obserwować w mijającym tygodniu.
Tematy będą głównie techniczne, ale czasami pojawi się coś, co może wprowadzi Cię w stan zadumy i zmusi do dyskusji w szerszym gronie. Zero spamu!