Marudzenie zgreda (czyli 3 rzeczy o których chciałbym wiedzieć na początku kariery)

Zainspirowany artykułem “The 3 Things I Wish I’d Known When I Began My Career in Software” postanowiłem wyprodukować własną listę trzech rzeczy, o których bardzo żałuję, że nie wiedziałem jakieś 15 lat temu. Mam nadzieję, że opisy poniższych kwestii przyczynią się do potencjalnego przedłużenia życia adeptom programowania i IT. W końcu wiadomo, że błędy oraz problemy w pracy są często powodem stresu. Stres z kolei jest jednym z głównych czynników przyczyniającym się do zapadalności na rozmaite choroby i skracania długości życia.

Panie i Panowie, zapraszam do lektury!

1. Nie staraj się być ekspertem od wszystkiego

Zmiany na rynku IT i nowych technologii postępują w zastraszającym tempie. Platformy, które są aktualne na topie, za 2-3 lata mogą już popaść w zupełne zapomnienie. Rozpoczynając karierę zawodową, zajmowałem się przez pewien czas pisaniem kodu dla systemu integracji tożsamości użytkowników. Tymczasem wschodzącymi gwiazdami w programistyczno-microsoftowym światku były wówczas frameworki z grupy 3xW (WPF, WCF i WWF, przemianowany później na WF). Strasznie mnie wówczas wkurzało, że zamiast rozpracowywać nowości – muszę w godzinach pracy pisać jakieś adaptery z użyciem egzotycznych w moim przekonaniu bibliotek. „Braki” próbowałem nadrabiać w wolnym czasie, którego jednak miałem coraz mniej i mniej. Efektem tego wszystkiego było poczucie narastającej frustracji oraz wrażenie, że technologiczny świat ucieka mi coraz bardziej.

Kolejną kwestią jest poczucie, że musisz być ekspertem w każdym napotykanym obszarze. Jedziesz do klienta zainstalować Dynamicsa i… nagle okazuje się, że musisz być również ekspertem od Active Directory, Exchange’a i partycji bazodanowych. Otóż drogi czytelniku – wcale nie musisz. Jest wręcz odwrotnie, osobiście uważam, że nie ma co „rżnąć głupa” i zatajać przed klientem lub kolegami fakt, że nie mamy o czymś pojęcia. I tak wyjdzie to wcześniej czy później w praniu. Jeżeli się na czymś nie znamy, to nie ukrywajmy tego faktu i starajmy się pomóc klientowi w miarę możliwości (np. polecając kolegę, który faktycznie posiada pożądaną wiedzę).

Scenka z przeszłości (pierwsza wizyta w biurze nowego klienta):

Klient: „Panie Piotrze, ponieważ jest Pan ekspertem od wdrażania CRM w sektorze finansowym…

Ja: „

Nie wyjaśniłem wówczas od razu tego „nieporozumienia”. Efektem opisywanej sytuacji był stres, nieprzespane noce i (tak czy inaczej) niezadowolenie klienta z efektów pracy mojej i mojego zespołu.  

Zdaję sobie sprawę z tego, że mój pogląd jest być może niezgodny z polityką wielu firm określających się jako „konsultingowe”. W tego typu organizacjach trafiasz zazwyczaj na projekt realizowany dla klienta i od razu musisz grać rolę „eksperta” (najczęściej zarówno dziedzinowego, jak i technicznego), żeby sprzedawać swojego roboczogodziny.  Cóż, co kto lubi. Albo „kariera” w tego typu organizacjach, albo zdrowie psychiczne.

Podsumowując – nigdy nie będziesz ekspertem od wszystkiego. Co więcej, prawdopodobnie nie zostaniesz również ekspertem od wszystkiego, od czego być chciał. Wybierz 2-3 ulubione technologie (albo obszary dziedzinowe) i wyspecjalizuj się w nich. W przypadku pozostałych wystarczy Ci wiedza na ogólnym poziomie. Albo wiedza o tym, gdzie znaleźć faktycznego eksperta 😉.  

2. Unikaj albo olewaj wszelakich trucicieli

Czyli tak naprawdę kogo? Mam na myśli upierdliwych, roszczeniowych klientów, sprzedawców z rozrośniętym ego, nawiedzonych managerów i wszystkich korpo-szczurów tego świata. Osobnicy w rodzaju powyższych są w stanie skutecznie obrzydzić Ci życie. Jeżeli nie jesteś w stanie tego zrobić,  naucz sobie z nimi radzić. Moje doświadczenie mówi, że w 90% przypadków minimum asertywności w postępowaniu z ww. osobnikami wystarczy do tego, żeby przestali Ci wchodzić na głowę. W skrajnych przypadkach po prostu zmień robotę. Życie ma się tylko jedno i szkoda je tracić na obcowanie z kimś, kogo się serdecznie nie cierpi.

3. Skoncentruj się na budowie rozwiązań, a nie wykorzystywanych technologiach

Właśnie tak. Nawet najciekawszy stos technologiczny nie zapewni sukcesu w projekcie, który jest źle zarządzany, tworzone rozwiązanie nie spełnia wymagań klienta, a wybrana technologia pasuje do rozwiązywanego problemu, jak pięść do oka. Jednym z moich pierwszych komercyjnych doświadczeń było tworzenie aplikacji dla call-center opartej o frameworki .NET oraz CCF (Customer Care Framework). Drugi z wymienionych powyżej do taki praprzodek rozwiązanie znanego obecnie jako Dynamics 365 Unified Service Desk. Co tu dużo mówić. W czasach, w których pracowałem nad tym projektem wspomniany framework był crapem, jakich ze świecą szukać. Na dodatek praktycznie pozbawionym jakiejkolwiek sensownej dokumentacji. Pamiętam, że wraz z całym zespołem serdecznie nie cierpieliśmy tych bilbiotek. Jednocześnie z uwagi na to, że w czasie omawianego przedsięwzięcia miałem przyjemność pracować ze świetnymi ludźmi, którzy wiedzieli, co robią (a nie tylko sprawiali takie wrażenie), wycena pracy była sensowna (czytaj: nie trzeba było siedzieć po nocach, rozwiązując dziwaczne technologiczne problemy), a zarządzanie projektem (zarówno po stronie dostawcy, jak i klienta) było w miarę sensowne – z perspektywy lat wspominam je jako całkiem ciekawe doświadczenie.

Wniosek: nawet posiadając starego laptopa i wiekową technologiczną platformę będziesz w stanie zbudować coś fajnego, jeżeli podejdziesz do tego z głową i otoczysz się dobrymi ludźmi. Takie przedsięwzięcie da Ci dużo więcej z perspektywy rozwoju zawodowego niż nieudany, utopiony projekt wykorzystujący najnowsze frameworki JavaScript 😉.

Koniec.

Obrazek wyróżniający pochodzi jak zwykle z niezastąpionego serwisu Unsplash.com

Total Views: 530 ,
Be the first to comment

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *