Chciałbym dzisiaj poruszyć dość ważną kwestię, jaką bez wątpienia jest rutyna i frajda z pracy. Motorem dla mnie była głównie rozmowa, którą odbyłem dzisiaj z kolegami, gdy siedząc przy piwie dyskutowaliśmy na temat alternatyw i sposobów wzbudzania w sobie entuzjazmu. Może na początku kilka definicji zaciągniętych ze słownik języka polskiego wydawnictwa PWN.

Entuzjazm stan emocjonalnego zaangażowania w coś Rutyna 1. biegłość w czymś nabyta przez długą praktykę 2. postępowanie lub wykonywanie jakichś czynności według utartych schematów W tym przypadku skupiamy się na wersji negatywnej, czyli punkcie drugim.

Problem

Pracując od dłuższego czasu w danej technologii czy też języku dochodzimy do momentu, kiedy jedyną rzeczą, którą mówimy na jego temat jest zdanie - nudzi mnie to. Nie chodzi o dodawanie słów kluczowych czy też rozbudowę semantyki oraz możliwości, tylko ogólnie frameworki, techniki plus kod który się produkuje a o to, że po którymś razie wygląda to w ten sposób, że coś jest podobne do czegoś innego. Przykład pierwszy. Pisząc w Agavi inaczej tworzę widok, inaczej zarządzam wywołaniem, ale logika biznesowa jest ta sama jak w Symfony. Po prostu rzecz od której nie da się uciec, walka z tym, że robimy to samo ale na różne sposoby. Przykład drugi. Pisząc w Cake i w Rails coś zrobię w bardzo zbliżony sposób. Jedyną różnicą będzie to, że tu jest function a tam def, tu przy zmiennej dolar a tam nie. Wynikiem całej tej monotonii pracy, gdzie różnice pomiędzy wszystkim na prawdę nie są duże, bo nawet aspekty potrafią przejść do porządku dziennego, jest brak entuzjazmu. Coś, co Alex opisał w poście pod tytułem Czy tkwisz w pętli czasu?. Objawem tego wszystkiego jest szare postrzeganie tego co się robi, brakuje emocji a co za tym idzie adrenaliny, tego czegoś co powoduje, że człowiek programuje z wypiekami na twarzy.

Przeszłość

Chyba nie tylko ja miałem takie chwile, że siedziałem do późna w nocy nad jakąś rzeczą tylko po to by sprawdzić, czy mój pomysł zadziała, czy to się uda, czy da się zaimplementować to przy takiej a nie innej strukturze bazy danych. W chwili gdy coś jest sporą nowością, zakładając abstrakcyjnie, przejście z plików jako sposobu na zapisywanie danych do relacyjne bazy pokroju MySQL czy też PostgreSQL jest rewolucją. Takich rewolucji każdy programista w życiu uświadczy parę razy, nie muszę chyba prosić o potwierdzenie, prawda? W końcu to może być przejście z C do Javy bądź z PHP do Ruby, prawdę powiedziawszy, bardzo duża zmiana przyprawiająca o mały czy też duży zawrót głowy, obracająca nasze dotychczasowe podejście o 720 stopni wokół osi X, Y oraz Z.

Walka

W chwili, gdy coś nam nie odpowiada naturalnym odruchem jest próba zmienienia tego na coś bardziej odpowiadającego. Gdy nie podoba się nam rutyna, której jesteśmy świadomi walczymy z nią. Jedni oddzielają rutynę z pracy od rutyny w życiu osobistym uprawiając np sporty ekstremalne, inni skupiają się na życiu zawodowym, znajdą się i tacy, że będą zwalczać rutyną tylko w życiu osobistym. W tej nocie skupiamy się na pracy i dlatego rozpatrujemy tylko ten przypadek. Z jednej strony, ja jako programista, kocham to co robię, z drugiej jednak strony nigdy nie chciałbym dojść do momentu, w którym dzień 20 maja różni się od 19 tylko nazwami zmiennych i tym, że użyłem obiektu klasy Account a nie Person. Faktem jest, że pewna doza rutyny zawsze jest obecna, istotny jest jednak procent w tym, czym się zajmujemy. Każdy z nas akceptuje inny poziom rutyny, jednym odpowiada stateczne życie w korporacji, inni szukają wyzwań zakładając własną firmę. Swoją drogą warto zadać sobie pytanie jak wiele rutyny w naszej pracy jest i czy nie jest jej przypadkiem za dużo?

Osobiście

Ciężko mi się wypowiadać na temat rutyny, ponieważ rutynę jak do tej pory najmocniej odczułem pisząc wtyczki dla mambo blisko dwa lata temu gdy pracowałem w IRTI. Od tamtej pory zawsze pojawiała się jakaś mniejsza czy też większa nowość, która powodowała problemy by po pewnym czasie dawać frajdę. Czy to implementacja ORM bądź MVC na potrzeby projektu czy też pierwszy program w Javie i Swingu. Ostatnimi czasy miałem możliwość pisania mechanizmu synchronizacji, co było i jest wyzwaniem z racji na to, że dopiero wtedy miałem okazję na dobre zapoznać się z wielowątkowością w Javie. Takich dziedzin dla mnie, z racji na małe doświadczenie jest jeszcze wiele, stąd temat dla mnie jest bardzo abstrakcyjny, ponieważ nie jestem w stanie zobaczyć problemów takimi jakimi są, z punktu widzenia innych.

Zaproszenie do dyskusji

Nie wątpię w to, że wielu osobom zaczyna doskwierać to, co robią w pracy a przede wszystkim jak to robią. Stąd też pytanie do Was, drodzy czytelnicy, czy odczuwacie rutynę? Jeśli tak, jak z nią walczycie, jeśli nie - czy werwa bierze się sama z siebie czy też wynika z konkretnych celów? Czy jesteście w stanie zdiagnozować i wyeliminować przyczynę? Jeśli tak jakimi środkami? Proszę o wypowiedzi niezależnie od stażu i tego w czym i co piszecie, po prostu podzielcie się swoim zdaniem z innymi. Odpowiedzcie na pytanie - co was motywuje do dalszej pracy na obecnym stanowisku, a co de motywuje i jak sobie z tym radzicie?