Mobbing… i co dalej?

Mój poprzedni wpis Poznań 2018: tu na razie jest klepisko jest jednym z najpopularniejszych na tym blogu.

Po jego opublikowaniu odezwało się do mnie sporo osób. Większość chciała upewnić, się że nie nie trafi do opisywanej przeze mnie firmy. Cierpliwie i z poczuciem misji odpowiadałam “nie”, “to nie ta firma”, “nie słyszałam o niej żadnej historii z dyskryminacją w tle”. Aż wreszcie po raz pierwszy, a potem drugi i kolejny, otrzymałam odpowiedź:

“No widzisz, a ja tam pracowałem i było zupełnie tak, jak w twoim tekście”.

Postanowiłam napisać kontynuację. Nie chcę jednak koncentrować się jedynie na opowiedzeniu kolejnej strasznej, traumatyzującej historii. Parę tygodni temu spotkałam się z kilkoma spośród osób,  które się do mnie odezwały. Rozmawialiśmy o ich doświadczeniach, ale także o tym, jak zapobiegać takim sytuacjom i jak radzić sobie, jeśli wystąpią. Na mój “panel” zaprosiłam także zaprzyjaźnioną przedstawicielkę działu HR.

Mobbingują i dyskryminują zagraniczne firmy…

W poprzednim tekście opisałam sytuację z naszego poznańskiego podwórka o szwajcarsko-niemieckiej firmie, w której codziennością były rasistowskie i seksistowskie żarty oraz dyskryminacja obecnych i potencjalnych pracowników na tle rasy, płci i światopoglądu.

Opisałam tamtą historię, ponieważ mną wstrząsnęła, a raczej – wstrząsała mną regularnie, kiedy przedstawiona w niej Hania na bieżąco opisywała mi, co się dzieje u  niej w pracy. Myślałam, że to odosobniony przypadek. Że takie rzeczy działy się może w latach dziewięćdziesiątych, a teraz możemy co najwyżej toczyć mniejsze (chociaż wciąż ważne) wojny z mansplainingiem, przerywaniem kobietom na spotkaniach lub przypisywaniem pomysłu mężczyźnie, który głośno powtórzył zignorowaną wcześniej przez innych sugestię koleżanki (hepeat). Niestety, okazało się, że jest o wiele, wiele gorzej.

I duże polskie software houses…

Jedną z historii opowiedzianych podczas naszego panelowego spotkania była ta z poznańskiego oddziału dużego polskiego software house. Rozmawiałam z dwiema osobami różnych płci (nazwę je Kasia i Mariusz), które w wyniku doświadczanej bądź obserwowanej dyskryminacji odeszły z tamtej pracy. Bardzo zależało im na anonimowości, co mnie zaintrygowało. Wyjaśnili, że z jednej strony nie chcą zaszkodzić firmie, gdzie paskudnie zachowywał się tylko jeden, odosobniony zespół, a z drugiej trochę się jednak boją bycia ciąganym po sądach przez bogatego założyciela. Nie jestem pewna, która z tych myśli ma większa wagę.

To opowieść podobna do opowieści Hani. Zaczęło się od przekleństw i obraźliwych żartów na open space. Kiedy Mariusz poinformował grupę, że nie chce w pracy słuchać takich rzeczy, zespół otrzymał od lidera polecenie powstrzymania się od takich tekstów – w obecności Mariusza. Założyli nawet specjalny kanał na firmowym komunikatorze.

Kasia i Mariusz zgodnie twierdzą, że nie wszyscy członkowie tego zespołu od początku zdradzali tego typu tendencje. Przodował w nich charyzmatyczny programista z problemami personalnymi, który szybko zdominował nieasertywnego lidera zespołu. Reszta podążyła. Po krótkim czasie przyznali sobie nawet adekwatną nazwę – dziki.

W trakcie pracy oglądali rozbierane zdjęcia w Internecie i wulgarnie wymieniali się wrażeniami. Mam cytaty, ale uznałam, że wystarczy już plugastw. Poziom jest ten sam, co w poprzednim wpisie.

Poniżali też koleżanki z biura, głównie pod ich nieobecność. Uwzięli się na dziewczynę, która uprawiała sportowy taniec na rurze, a także na Kasię, która kilka razy odważyła się zareagować. W efekcie dostała od nich obrzydliwe przezwisko “Komin”, zgodnie z przekonaniem kolegów, że na seksualne aluzje w miejscu pracy skarżą się tylko “niedo***ne feminazistki” (jeśli nie rozumiesz tego “żartu”, to chyba dobrze świadczy o Tobie).

Kasia i Mariusz reagowali. Prywatnie. Na retrospektywach. W dziale HR. Dogadali się z jeszcze jednym pracownikiem, który dopiero zapytany wprost wyznał, że nie odpowiada mu taki klimat w pracy. Lider zespołu twierdził, że nic na to nie może poradzić. W efekcie “dziki” obraziły się na Kasię do tego stopnia, że przestały odpowiadać na jej powitania. Zaczęli także rozpowiadać, że nie ma ona kompetencji do wykonywanej przez siebie pracy, choć wcześniej nikt nie miał krytycznych uwag.

Temat podjęła jedna z osób zatrudnionych w dziale HR, jednak bardzo szybko odeszła z pracy.

Sprawa zakończyła się “ocaleniem przez wykluczenie” – wszystkie kobiety odeszły z pracy lub przeszły do innych zespołów, podobnie jak kilku co wrażliwszych mężczyzn. “Dziki” pracowały wspólnie do końca projektu, przez jeszcze rok lub dwa, już bez alarmistów.

Kasia po stronie pozytywów wymienia to, że dział HR zapewnił w tej sytuacji pomoc profesjonalnego mediatora (z wewnątrz firmy). Być może ocaliło ją to przed konsekwencjami zdrowotnymi, jaki spotkały bohaterkę poprzedniego wpisu.

Przypadek tego zespołu stał się podstawą warsztatu z komunikacji bez przemocy, była to jednak inicjatywa oddolna. W szczególności, szkolenia nie przeprowadzono w zespole dzików.

I ambitne startupy.

To historia z ambitnego poznańskiego startupu, który ostatecznie nie poradził sobie na rynku.

Zaczęło się od rape joke – “jeśli ci to powie, to potem będzie musiał cię zgwałcić”. Osoba, która o tym opowiada, a którą będę tu nazywać Natalią, z powodu braku działu HR poskarżyła się swojemu szefowi oraz COO. Otrzymała klasyczne “nieprzeprosiny” – “nie sądziłem, że może cię to urazić”.

Żródło: https://geekfeminism.wikia.com/wiki/Sexually_objectifying_presentation

Natalia odeszła z tej pracy, ale nie był to koniec problemów w tej firmie. Autor wspomnianego żartu na imprezie firmowej zaczął siłą całować managerkę biura- odciągali go koledzy. Potem wystawał po nocach pod jej domem, a jakby tego było mało, kobietę nachodziła także jego żona, oskarżająca ją o chęć kradzieży męża.

Ponieważ chodziło o ważnego pracownika (główny architekt), menedżerkę biura poproszono o złożenie wypowiedzenia.

W opinii HR: mobbing, dyskryminacja, molestowanie

Od naszej specjalistki z działu kadr dowiedziałam się, że mobbing, dyskryminacja i molestowanie to nie są synonimy i przed podjęciem działań warto rozpoznać, z czym dokładnie mamy do czynienia.

Mobbing to długotrwały terror psychiczny, opisany w artykule 94 kodeksu pracy. To “uporczywe i długotrwałe nękanie lub zastraszanie pracownika (…) powodujące lub mające na celu poniżenie lub ośmieszenie pracownika (…) “. Ciężar udowodnienia, że coś takiego miało miejsce, spoczywa na pracowniku. Musi też wykazać, że sytuacja nie była jednorazowa.

Dyskryminacja ma miejsce, kiedy pracownik jest gorzej traktowany na tle cech chronionych, takich jak płeć, wyznanie, kolor skóry. Może być bezpośrednia (nie zatrudnimy osoby innej narodowości) lub pośrednia (np. kiedy na skutek pozornie neutralnej decyzji jedna z chronionych grup ponosi straty względem innych). Temat ten opisuje artykuł 18 kodeksu pracy.

Molestowanie seksualne to forma dyskryminacji zarówno cielesnej jak i słownej – nie musi mieć formy fizycznej. To wszelki niechciany dotyk i naruszanie godności na tle seksualnym w sytuacji, kiedy molestowana strona wyraziła sprzeciw. Może to być jednorazowa sytuacja.

W przypadku dyskryminacji i molestowania to pracodawca musi udowodnić, że do zdarzeń nie doszło.

Przepisy antydyskryminacyjne dotyczą nie tylko osób zatrudnionych na umowie o pracę. Polska wdrożyła niektóre przepisy Unii Europejskiej w zakresie równego traktowania, które obejmują wszystkich pracowników i pracodawców.

Co zrobić, kiedy spotyka to Ciebie?

Niestety, nasza konsultantka z HR (którą będę nazywać Elą) nie wykazała się przesadnym entuzjazmem. Twierdzi, że niejednokrotnie była świadkiem, jak zwalnianio osobę zgłaszającą mobbing lub jak “mobber” był szybszy i udawało mu się pod pretekstem pozbyć nielubianego pracownika.

Można pozwać pracodawcę za mobbing, zwłaszcza, jeśli przy wypowiadaniu umowy o pracę wskazało się taką przyczynę. Mobbing trzeba jednak udowodnić, a to nie zawsze jest proste. Należy także uczciwie odpowiedzieć sobie na pytanie, co chcemy osiągnąć. Odszkodowanie finansowe (bywają zasądzane, ale są raczej niskie), prostowanie niesprawiedliwego wpisu do akt?

Ela zauważa, że ofiara jest często w złej kondycji psychicznej lub fizycznej. Między innymi z tego wynika tak niewielka liczba spraw sądowych – pracownik skupia się na sobie i własnym zdrowiu.

O pomoc można zwrócić się do Państwowej Inspekcji Pracy, która może przeprowadzić kontrolę i być pełnomocnikiem pracownika.

Łatwiej poradzić sobie, jeśli firma ma zdefiniowaną politykę antydyskryminacyjną czy kodeks zachowania w pracy. Wówczas łatwiej wskazać, że jest łamany i doprowadzić do  wdrożenia planu naprawczego lub ostatecznie zwolnienia takiego pracownika.

Co jeszcze należy robić i o czym pamiętać?

  1. Mimo wszystko, reagować. Głośno mówić o tym, że nie zgadzamy się na obraźliwe uwagi lub nierealistyczne i niezgodne z przepisami wymagania.
  2. Eskalować problem do działu HR, do przełożonych swoich oraz przełożonych osób mobbingujących/dyskryminujących.
  3. Szukać świadków i sojuszników.
  4. Jeśli stres w pracy odbija się na Twoim zdrowiu, udaj się do lekarza. Nie tylko po pomoc medyczną, ale także po odpowiednie wpisy i zaświadczenia.
  5. W dalszej kolejności odwołać się do przepisów i poinformować pracodawcę, że są one łamane.
  6. Zwłaszcza w przypadku mobbingu (który musi udowodnić pracownik), gromadzić dowody: maile, notatki, a nawet nagrania. Te ostatnie teoretycznie są nielegalne, jednak sądy dopuszczają je czasami, kiedy nie istnieje możliwość zgromadzenia innych dowodów.
  7. Zastanowić się, czy wejście na drogę sądową pomoże uzyskać założony wcześniej cel.

Najbardziej zasmuciła mnie rada, której Ela udzieliła nam na końcu. Jej zdaniem w takiej sytuacji najlepiej (“jeśli zależy ci na własnym zdrowiu”) jest po prostu się zwolnić. Przynajmniej w naszej branży, w tym momencie, nowej pracy nie trzeba z reguły szukać bardzo długo.

Jak uniknąć wdepnięcia na taką minę?

Kilka ciekawych pomysłów pojawiło się podczas naszej dyskusji, kilka przeczytałam w komentarzach pod moim poprzednim tekstem, kilka wynika z mojego doświadczenia. Jak w porę zorientować się, że firma lub zespół, do którego aplikujemy, nie jest w porządku? Kiedy uciekać?

Rada 1: zapytać wprost o politykę antydyskryminacyjną

Znaczenie ma nie tylko to, czy w firmie powstał taki dokument, ale także sposób, w jaki zareaguje rozmówca. Owszem, samo zadanie tego pytania niesie za sobą ryzyko, że zostaniemy uznani za osobę sprawiającą kłopoty lub skrajnego lewaka. To bardzo dobrze! Firma, którą takie pytanie zaniepokoi, nie jest miejscem bezpiecznym dla pracownika.

Rada 2:  poprosić o poznanie zespołu lub najbliższych współpracowników 

Odpowiedź odmowna nie musi oznaczać, że firma ma coś na sumieniu. Nie każdą firmę stać na to, żeby oderwać zespół od pracy i zaprosić wszystkich np. na wspólny lunch. Jeśli się jednak uda, można szybko wyrobić sobie ogólne pojęcie na temat tego, z czym będziemy mierzyć się każdego dnia. Jak rozmawiają ze sobą pracownicy? Czy są przyjaźni? Czy mocno rywalizują? Co intuicja podpowiada Ci na temat relacji z osobą, z którą będziesz w pracy spędzać najwięcej czasu?

Rada 3: wybrać korporację

Wbrew opinii o krwiopijcach, naprawdę duże firmy z reguły mają szczelniejsze procesy rekrutacyjne oraz ustalone sposoby radzenia sobie z napięciami pomiędzy pracownikami. Raczej dbają też o wizerunek.

Rada 4: poszukać opinii

Systemy takie jak Glassdoor nie są przesadnie popularne w Polsce, ale przy odrobinie wytrwałości można znaleźć w Internecie opinie na temat pracodawców (np. tutaj). Wiadomo – zawsze można trafić na opinię zgorzkniałej osoby zwolnionej za lenistwo lub mobbing, albo trafić na rozgoryczoną grupę zwolnioną grupowo.

Oprócz tego, nie oszukujmy się – Poznań (i prawie każde inne miasto w Polsce) jest mały. Ludzie z IT się znają. Warto podpytać znajomych i skorzystać z systemów poleceń.

Rada 5: zapytać o zatrudnianie mniejszości

Ja na rozmowach rekrutacyjnych zawsze pytam o to, ile jest kobiet w dziale inżynieryjnym. Robię to nie tylko dlatego, że interesuje mnie odpowiedź, ale także po to, żeby wysłać firmie sygnał, że takie rzeczy się liczą.

Kilka słów na koniec

Spraw o mobbing i dyskryminację w polskich sądach nadal jest niewiele – po kilkaset rocznie. Jedynie kilka procent spraw o mobbing jest rozstrzyganych na rzecz pracownika. W przypadku dyskryminacji jest to obecnie około 20%.

Na koniec chciałabym się odnieść do reakcji na mój poprzedni wpis. Przeczytałam sporo komentarzy na blogu, w mediach społecznościowych, w wiadomościach prywatnych. Ucieszyło mnie to, że większość komentujących była wstrząśnięta opisanymi wydarzeniami i jednoznacznie ję potępiła.

Nie obyło się bez paru klasycznych tekstów: “baba histeryzuje”, “wpis jest emocjonalny”, “na pewno nie tak było”. Spodziewałam się w sumie, że takich reakcji będzie więcej! Odpowiedziałam na nie w jedyny sensowny sposób (dziękuję, Agato!): słowami interesting point of view – to bardzo ciekawy punkt widzenia.

Poznań 2018: tu na razie jest klepisko

To drugi z tekstów o sytuacji kobiet (i w szczególności matek) na poznańskim rynku pracy. Poprzedni jest tutaj: Poznań 2018: są pracodawcy, którzy wspierają kobiety, a kolejny tu:  Mobbing… i co dalej?

To będzie wpis o mojej koleżance. Skandalizujący. Nauczyłam się już, że kiedy piszę “koleżanka”, część moich Czytelników zakłada, że w rzeczywistości opowiadam o swoich doświadczeniach. Po pierwsze, nigdy tak nie robię. Po drugie, serio, tym razem nie robię tego w szczególności! Moja firma jest ok. Sprawdźcie sobie zresztą w poprzednim artykule.

 

Ci z Was, którzy czytają mnie dłużej, może nawet od zamierzchłych czasów poprzedniego bloga, zauważyli pewnie, że ostatnio unoszę się znacznie mniej niż kiedyś. Powodów tej zmiany jest wiele. W ogóle trudniej mnie dziś wyprowadzić z równowagi; nie chce mi się setny raz popełniać wpisu o innej odmianie tego samego głupiego komentarza; mam lepszą sieć wsparcia; sytuacja kobiet w naszej branży wygląda coraz lepiej; mnie osobiście od dawna nie przytrafiła się historia z tej kategorii. Tym razem jednak milczeć nie potrafię i znów wypuszczam parę uszami.

Koleżankę na potrzeby tej historii nazwijmy Hanią, a firmę, o której opowiadam – Krzakworksem.

Hania zaczyna nową pracę

Zacznijmy od tego, że Hania jest wyjątkowo dobra w swojej pracy. No wymiata. Z wykształcenia jest lingwistką. Zna prawie dziesięć języków obcych na tyle dobrze, że może w nich plotkować przez telefon. Dokształciła się w kierunku IT i pracowała nie tylko jako lingwistka (komputerowa), ale też programistka i testerka.

Nową pracę zaczęła trochę przypadkiem. Nie szukała zmiany. Przejrzała oferty pracy po tym, jak ktoś w jej obecności po raz kolejny narzekał, że w Poznaniu brakuje propozycji pracy dla lingwistów. Hania znalazła ogłoszenie, poszła na rozmowę, podała zaporową stawkę i została natychmiast zatrudniona w nowootwartym oddziale szwajcarsko-niemieckiej firmy Krzakworks.

Nowy zespół lubi sobie zażartować

Hanię zatrudnił, jako jedną z nielicznych, sam zagraniczny szef. Ten sam szef zatrudnił Romka, lidera zespołu, do którego Hania miała trafić. Resztę pracowników wybrał już i przyjął Romek.

Niemalże od pierwszego dnia zaczęłam odbierać od Hani rozpaczliwe wiadomości. Skarżyła się w nich na treści wygłaszane pełnym głosem w przestrzeni open space oraz na głównym kanale firmowego komunikatora. Hania nie mogła zrozumieć, jakim cudem ma wokół siebie dziesięć osób jednym głosem opowiadających seksistowskie żarty rodem z hurtowni budowlanej w latach dziewięćdziesiątych. Na początku postanowiła założyć, że to jedynie reakcja stresowa męskiego zespołu na przyjęcie do ich grona pierwszej kobiety. Miała nadzieję, że chwilę sobie pośmieszkują i temat sam ucichnie.

Nie ucichł. Krzakworks dzielił piętro z bankiem. Większość osób zatrudnionych w banku, odwrotnie niż w Krzakworksie, stanowiły kobiety. Mimowolnie stały się osią firmowego życia towarzyskiego. Żarty były takie:

💀 – Jak ci się udało uciszyć panie z banku?
– Pokazałem im, co mam w spodniach, aż zamilkły z zachwytu na widok mojego potwora.💀

💀 Dobre korpo szmaty, brałbym. Tamta brzydka, stara rura, ale tyłek ma super.💀

💀Nazwijmy serwer Sasha Grey, będzie można mówić „Sasha Grey is down” i wiadomo, co trzeba wtedy zrobić. 💀

💀 Jebać lewaków maczetami. (rzucone tak po prostu, poza rozmową)💀

💀 Fajne dupy, szkoda, że trzynastolatki. 💀

Donald Trump, przyciśnięty odnośnie obrzydliwych seksistowskich komentarzy, których nie zamierzam tu cytować, tłumaczył się przy użyciu terminu locker room talk. Twierdził, że tego typu męskie gadanie buduje wspólnotę, ale nie przekłada się na żadną realną dyskryminację. W tym wypadku stało się podobnie, Romek nazwał takie wymiany zdań “prywatnymi rozmowami” i miał do Hani pretensje o to, że “podsłuchuje” je i na dodatek się wtrąca.

Oryginalna metoda rekrutacji

Romek, lider zespołu, odpowiadał za rekrutację. O tym, że homogeniczne (“jednolite”, gdyby się komuś “homo” źle kojarzyło) zespoły nie działają efektywnie, napisano wiele (np. tu). Romek zdawał się jednak o tym nie wiedzieć. Jednym z najistotniejszych kryteriów rekrutacyjnych było podobieństwo poglądów. Dla pewności i dla rozluźnienia atmosfery, Romek miał zwyczaj odczytywania fragmentów CV na głos. Do kosza trafiali, po publicznym obśmianiu: przedstawiciele ras innych niż biała (a także, na wszelki wypadek, osoby o egzotycznych nazwiskach), osoby po czterdziestce, mężczyźni podejrzewani o homoseksualizm (za istotny wyznacznik uważano przyjście na rozmowę kwalifikacyjną w rurkach).

💀Dobrze, że jestem rasistą, nie zatrudnię żadnego ciapatego. Czarnuchom też pokażemy, gdzie ich miejsce. 💀

💀 Z dinozaurami nie pracujemy, nie zapraszamy nawet na rozmowę. 💀

Kobiety miały szansę, jeśli były atrakcyjne, co w rozumieniu członków zespołu oznaczało przede wszystkim noszenie rozmiaru S.

💀 Jestem k…a najdroższą sprzątaczką w historii tego kraju. Każda Ukrainka chciałaby tyle zarabiać. Nie możemy do sprzątania kuchni zatrudnić jakiejś Ukrainki z fajnym tyłkiem? (po prośbie o wstawienie kubka do zmywarki) 💀

💀Musimy zatrudnić jakichś testerów. Albo lepiej nie! Testerki! Jakieś fajne! Przydadzą się tu nam fajne testerki, ja mam bardzo duuuużo do testowania.💀

Hania reaguje…

Hania jest osobą otwartą i asertywną. Kilka razy upomniała rozochoconych kolegów. Powiadomiła ich, że ma zupełnie inne od nich poglądy ,a ich “żarty” są jej zdaniem nieśmieszne i obraźliwe. Uświadomiła im też, że kiedy życzą śmierci “feminazistkom” blokującym miasto w dzień Czarnego Protestu, mówią także o niej i jej przekonaniach.

Romek oskarżył Hanię o psucie atmosfery. Obawiał się,  że przez przez jej kaprysy zespół zaraz się rozpadnie. W ramach kompromisu umówili się, że Hania będzie zgłaszała mu zastrzeżenia prywatnie, a wtedy on trochę kolegów wyhamuje. Wprowadził także “chamskie czwartki”. W dzień, kiedy Hania nia pracowała, koledzy mieli szansę odreagować obowiązującą przez pozostałe dni tygodnia surową cenzurę.

Mimo wszystko nadal Hania regularnie wracała do domu wściekła. Zdania wypowiadane na open space nie tylko przekraczały granice dobrego smaku, ale także, zwyczajnie, łamały nawet wątłe polskie przepisy antydyskryminacyjne. Wielokrotnie próbowałam namówić ją na rozmowę z działem HR, ale wzbraniała się, nie chcąc jeszcze bardziej eskalować sytuacji. Nie wierzyła zresztą wcale w skuteczność takiego zabiegu.

Zaciskała zęby, żeby szybciej spłacić kredyt, bo płaca była, mimo wszystko, lukratywna.

… i trafia do HR-ów

Rozmowa z HR-ami w końcu się odbyła, ponieważ – za każdym razem, kiedy o tym myślę, wybucham głośnym śmiechem – Hanię do działu HR podkablował sam Romek. Poszło o wspomniane już “psucie atmosfery” i wtrącanie się w “prywatne” rozmowy.

Rzadko zdarza się, żeby dział HR stanął w takiej sytuacji na wysokości zadania, ale tu się udało. Po usłyszeniu kilku przykładów pani wyciągnęła kodeks pracy oraz parę innych teczek i po kolei punktowała, jakie przepisy złamał Romek i jakie powinny być tego konsekwencje. Długo kłócił się, że o dyskryminacji można by mówić, gdyby dotyczyła konkretnej osoby w rozmowie z nią, a nie grupy, a przecież:

💀To nie było do niej. Nikt Hani bezpośrednio nie obraża. Tylko generalnie: kobiety, gejów i Żydów. 💀

W końcu jednak zamilkł, zatroskany wpływem przepisów na najważniejsze spoiwo zbudowanego przez siebie zespołu.

💀To o czym mamy teraz żartować? 💀

Chodziło o przepisy takie jak poniższy artykuł 257 Kodeksu Karnego oraz zapis o “dyskryminacji pośredniej” w kodeksie pracy.

Kto publicznie znieważa grupę ludności albo poszczególną osobę z powodu jej przynależności narodowej, etnicznej, rasowej, wyznaniowej albo z powodu jej bezwyznaniowości lub z takich powodów narusza nietykalność cielesną innej osoby, podlega karze pozbawienia wolności do lat 3.

Jest lepiej i pojawiają się sojusznicy…

Z punktu widzenia Hani, trochę się wtedy poprawiło. Pojawiło się więcej wyposażonych w jakąkolwiek empatię, a Romek został poważnie upomniany przez centralę.

Zagraniczne szefostwo wydawało się wstrząśnięte całą tą historią. Jeden z członków zarządu w obecności Hani rozpłakał się i zatykał uszy rękoma, kiedy ta powtarzała mu komentarze członków zespołu na temat starszej pracownicy niemieckiego biura, która miała wyjść na dworzec po jednego z kolegów:

💀 Ooo, to będzie jej ostatni numerek w życiu. Gościu, uważaj na siebie, jak Cię taka stara brzydka prukwa złapie, to jak świeże mięsko, nie wypuści, wrócisz z takimi wspomnieniami z BT.💀

Nowo zatrudniony programista już po trzech dniach zaczął rozglądać się za nową praca, ponieważ nie mógł wytrzymać poziomu żartów na open space.

Po stronie Hani stanęła też sekretarka, która podobnie jak ona niejednokrotnie wychodziła z biura z wypiekami i we łzach. Ona także złożyła oficjalną skargę na zachowanie niektórych osób.

Firma pisemnie przeprosiła Hanię. Złożono jej oficjalnie podziękowania za reakcję.

… ale kończy się praca

Hanię zapewniono, że konsekwencje zostaną wyciągnięte i że może czuć się bezpiecznie w pracy.

Krótko potem okazało się, że zostanie zwolniona, ponieważ nie ma dla niej wystarczającej ilości zadań.

Opinię na temat ilości zadań wydał, na polecenie szefów, lider zespołu. Znaczy się, Romek.

Posłowie

Hania nie pracuje już w Krzakworksie. Ma nową, ciekawą pracę.

Ma też depresję.

Sekretarka również odeszła z pracy, jako powód podając atmosferę w biurze oraz seksistowskie i rasistowskie żarty. Na odchodne rozmawiała z jednym ze zamiejscowych szefów, który co prawda pamiętał, że Hania się skarżyła (był zresztą jednym z adresatów jej maila na ten temat), ale uwierzył w zapewnienia Romka, że mają do czynienia z histeryczką. Był bardzo zaskoczony kolejną decyzją o odejściu.

Zespół nadal pracuje w oryginalnym składzie. Część jego członków dostała awanse i podwyżki.

Nie wiemy, dlaczego zachodnioeuropejska firma godzi się na takie praktyki w swoim biurze. Czy jej szefowie sądzą, że to typowy w Polsce zespół poglądów, a “wszyscy po tej stronie Odry to barbarzyńcy”?

Mam w tej chwili poczucie, że wylałam na swojej stronie beczkę szamba. Prawdę mówiąc, wstyd mi było wklejać tu niektóre cytaty. Dlaczego się nie powstrzymałam?

  • Bo uważam, że takie zachowania trzeba piętnować.
  • Bo takie rzeczy dzieją się tu, w Poznaniu, na “moim” rynku pracy.
  • Bo chcę przypomnieć, że seksizm to prawdziwy problem, nawet jeśli ja czy mój rozmówca mamy szczęście nie doświadczać go we własnej pracy.
  • Wreszcie – bo sama nie jestem do końca pewna, jak uniknąć wdepnięcia na taką minę. Hania twierdzi, że na rozmowie rekrutacyjnej nie zauważyła żadnych czerwonych flag. Jedyne, co przychodzi mi do głowy (nie jestem pewna, czy pisałam o tym w moim raporcie na temat rekrutacji, czy może to nowsze doświadczenie): przed podpisaniem umowy o pracę warto poprosić o możliwość krótkiego spotkania z ludźmi, z którymi mamy na co dzień współpracować. To ostatni moment, kiedy można jeszcze w miarę bezboleśnie się wycofać.

Co Waszym zdaniem powinna teraz i wtedy zrobić Hania?

Poznań 2018: są pracodawcy, którzy wspierają kobiety

Za miesiąc wracam do pracy po urlopie macierzyńskim, który jak na polskie warunki zrobiłam sobie bardzo krótki (siedem miesięcy), a którego długość zapewne i tak nieprzyjemnie zaskoczyła moich szefów po drugiej stronie oceanu.

Na łamach tego bloga (przy okazji, upewniłam się, że blog owszem ma łamy) zdarza mi się wypowiadać na temat niesprawiedliwości i dyskryminacji w świecie IT. Wkrótce zresztą zamierzam opublikować naprawdę najstraszniejszy tekst na ten temat, jaki zdarzyło mi się napisać. Dla równowagi, tym razem chciałabym odezwać się w innym, optymistycznym tonnie. Chcę pokazać, że istnieją przyzwoite firmy i może być naprawdę dobrze.

W dużej mierze jest to wpis o karmieniu piersią.

Moja największa obawa związana z “wcześniejszym” powrotem dotyczyła tego, że wracam,  ciągle jeszcze karmiąc. To dla mnie krępujące. Nie zrozumcie mnie źle. Czasami karmię w miejscach publicznych i uważam to za naturalne, ale czuję się niezręcznie mieszając w ten sposób sferę zawodowa i prywatną. Zwłaszcza, że w biurze na co dzień mam kontakt z właściwie samymi facetami (których część, na szczęście, ma dzieci).

Mój pracodawca bez mrugnięcia okiem zaakceptował zapisy polskiego prawa, zgodnie z którymi w ciągu dnia pracy na etat mam prawo do dwóch półgodzinnych przew. Z tymi przerwami mogę zrobić wszystko: wziąć je osobno, połączyć, nawet skrócić o nie czas pracy. To ostatnie rozwiązanie wydaje mi się mało praktyczne, żeby nie powiedzieć – naciągane.

Przemyślałam sobie sprawę. Przez parę miesięcy mogę przychodzić do pracy pół godziny później, a drugą dostępną przerwę wykorzystam w połowie swojego dnia. Niania będzie przynosiła moje dziecko do pracy (z domu to godzinny spacer przez las).  Nasze przemiła i super pomocna menedżer biura obiecała mi pomoc w zrobieniu stałej rezerwacji w najintymniejszym pokoiku konferencyjnym z hamakami.

W piątki zamierzam pracować z domu.

Mój mąż przejmuje pozostałą część urlopu rodzicielskiego i wcale nie jest jedynym znanym mi mężczyzną, który zdecydował się na taki krok.

Chwalę się, oczywiście 😉 Piszę to,  żeby pokazać, że się da. Że są tacy pracodawcy. Trzeba ich szukać. Warto negocjować. Ostatecznie korzyści są obustronne, Stawką jest w końcu obecny, zadowolony, oddany pracownik. Czy tam pracownica.

Na dodatek pod moją nieobecność, kiedy byłam na urlopie macierzyńskim, w firmie powstała grupa wsparcia dla kobiet 🙂

Na koniec tylko mini-słowniczek dla osób nie w temacie:

  • urlop macierzyński: to 20 tygodni “wolnego”, z których 14 musi wykorzystać matka, a 6 do wyboru matka lub ojciec;
  • urlop ojcowski zwany tacierzyńskim: to dwa tygodnie wolnego dla taty, do wykorzystania w pierwszych 2 latach życia dziecka;
  • urlop rodzicielski: 26 tygodni dla dowolnego z rodziców;
  • urlop wychowawczy: to bezpłatny urlop, na który może zdecydować się jedno z rodziców już po zakończeniu urlopu rodzicielskiego;
  • urlopy w USA: w USA świeżo upieczonej mamie przysługuje 12 tygodni bezpłatnego urlopu – i tyle, na szczęście często większe firmy, także z branży IT (w tym nasza), same oferują płatne urlopy jako tzw. benefit. Osobiście znam osobę, która wróciła do pracy kilka dni po porodzie.

PS. Zdjęcie w nagłówku zostało zriobione podczas imprezy baby shower w moim biurze.

Zawrót głowy w Scali: class, trait, object, instancja

Fajne rzeczy w Scali: klasy przypadkówKiedy jako programista Javy po raz pierwszy ujrzałam kod napisany w Scali, miałam spore problemy ze zrozumieniem, czym różnią się od siebie poszczególne byty:

  • class (klasa)
  • case class (klasa przypadków)
  • trait (cecha)
  • object (obiekt)
  • instancje klas (bo “obiekt” w Scali to wcale nie jest instancja!).

Poniżej ściąga dla zainteresowanych i dla przyszłej mnie 🙂

Klasa

Klasa (class) jak w przypadku większości obiektowych języków programowania, to szablon, na podstawie którego można tworzyć ukonkretnione instancje. Zawiera pola i metody. Ponieważ Scala jest językiem funkcyjnym, dobrym zwyczajem jest tworzenie klas niemodyfikowalnych.

Klasa przypadków

O klasach przypadków (case class) więcej napisałam tutaj: Fajne rzeczy w Scali: klasy przypadków. Klasy przypadków to specjalne klasy, których instancje można porównywać przez wartość i dopasowywać do wzorców w ramach instrukcji match.

Cecha

Cechy (trait) są podobne do klas i umożliwiają wielokrotne dziedziczenie (które ostatecznie i tak jest linearyzowane przez kompilator, ale nie o tym teraz). Różne byty (klasy, obiekty, cechy) w Scali mogą rozszerzać jedną tylko klasę, ale za to wiele cech.

Przy dziedziczeniu z kilku cech trzeba użyć słowa kluczowego with:

Jeśli wśród “rodziców” znajduje się jakaś klasa, musi ona zostać wymieniona pierwsza, zaraz po słowie extends.

Nie można tworzyć instancji cech.

Cechy można dodawać do klas na etapie ich definicji, ale także do instancji na etapie ich tworzenia. Cechę można dorzucić do właściwie każdej klasy – chyba że ograniczymy listę dozwolonych typów przy użyciu słowa kluczowego self (co ma sens np. jeśli kod którejś z metod odwołuje się do pola istniejącego tylko w danej hierarchii klas).

Obiekt

Obiekt (object) w Scali to klasa, która może miec maksymalnie jedną instancję – a więc, innymi słowy, singleton. Instancja ta zostanie utworzona w momencie pierwszego dostępu do niej przez JVM. Obiekty umożliwiają tworzenie odpowiedników metod i pól statycznych (globalnych), tj. atrybutów niepowiązanych z konkretną instancją klasy.

Obiekt może dziedziczyć z jakiejś klasy albo cechy.

Często stosowanym wzorcem w Scali są obiekty towarzyszące. Obiekt towarzyszący ma taką samą nazwę jak klasa, jest definiowany w tym samym pliku i ma (z wzajemnością) dostęp do jej prywatnych pól i metod. Obiekty towarzyszące mogą pełnić funkcję fabryki instancji danej klasy.

Kolejne zastosowanie obiektów to aplikacje w linii poleceń. Wewnątrz obiektu można zdefiniować metodę main, która zostanie uruchomiona po wywołaniu kodu z linii poleceń.

Instancja

Instancja to instancja 🙂 czyli konkretny jeden byt stworzony w oparciu o wzór opisany w ramach klasy.

Przyznam, że w mojej własnej głowie nietypowe użycie słowa object narobiło sporo zamieszania. Podejrzewam, że w miarę poznawania języka zrozumiem, dlaczego tak się stało i przestanie mnie to zaskakiwać.

Gdzie znaleźć więcej szczegółów?

Oto kilka źródeł dogłębniej tłumaczących omawiane to różnice:

Poznań, 2014: o tym jak napisałam do “Wysokich Obcasów” i dlaczego kobiety nie zmieniają pracy

W najbliższym czasie na moim blogu, gdzieś pomiędzy Scalą, pojawi się kilka tekstów na temat kobiet i, w szczególności, matek w IT. Znów inspirują mnie do tego okoliczności. Zanim poskładam te teksty, chciałabym podzielić się z Wami listem, który dawno temu (2014) wysłałam do redakcji “Wysokich Obcasów” w odpowiedzi na ich apel o przedstawienie “problemów współczesnych kobiet”. Rozwinęło się to w fajną przygodę: dwie miłe panie reporterki odwiedziły mnie w domu i użyły moich opowieści w jednym z reportaży. Na tyle skutecznie, że mimo że nie podałam nazwiska ani nazwy pracodawcy, kilkoro przyjaciół zorientowało się, że to ja.

Poniżej minimalnie tylko zredagowany list. Plus kilka współczesnych refleksji na końcu.

Poznań, 8 maja 2014

Wiele razy piętnowałam, prywatnie i publicznie, przejawy dyskryminacji zarówno w miejscu pracy [1 – uzupełniające cytaty poniżej], jak i na drodze, która w to miejsce prowadzi [2]. Tyle razy wdałam się w dysputy na firmowych zebraniach [3], tyle razy tłumaczyłam, dlaczego kobiety nie wybierają studiów technicznych [4], tyle razy byłam zapraszana na debaty na ten temat – że ostatnio, przez chwilę, wydawało mi się, że wszystko zostało powiedziane i nie ma już o czym rozmawiać.

Poświęciłam chwilę na refleksję nad Waszym apelem o wskazanie bolączek współczesnych kobiet. Bolączka, którą rozstrząsam właściwie codziennie, która w dużej mierze definiuje może życie zawodowe i prywatne.

Jest tak:

Mam trochę ponad 30 lat, męża, doktorat, dobrą pracę w dziale badawczym międzynarodowej firmy. Mnóstwo ofert pracy, w tym od gigantów w mojej dziedzinie. Obserwuję (z sympatią)
kolegów ze studiów, którzy podążają za każdą korzystniejszą lub umożliwiająca lepszy rozwój ofertą. Koleżanki z reguły pracują w jednej firmie znacznie dłużej; spora część z nich prowadzi (dobrze prosperujące) malutkie firmy z własnego domu. Sama, podobnie jak one, czuję, że zawodowe skakanie z kwiatka na kwiatek nie jest dostępną dla mnie opcją.

Dlaczego? Ponieważ jestem kobietą i kiedyś (a teraz już bliżej niż dalej) prawdopodobnie będę chciała mieć dziecko.

Nie, nie boję się, że stracę pracę pierwszego dnia po powrocie i zostanę na lodzie z małym dzieckiem. W moim zawodzie ciągle pracy jest więcej niż przyzwoitych fachowców. Rozmowy kwalifikacyjne to akurat jedna z nielicznych sytuacji, w których nigdy nie odczułam, by moja płeć miała znaczenie. Irytuje mnie to, że kiedy znajomi faceci są u szczytu kariery
zawodowej, przebierają w ofertach i pną się w górę (zgodnie z zasadą, że nigdzie nie awansują cię tak szybko, jak wtedy, gdy jedna firma podkrada cię drugiej) – ja ciągle mam skrupuły. Bo przecież za chwilę mogę chcieć być w ciąży.

Z ciążą problem jest następujący – wymaga zniknięcia z pracy na dobrych kilka miesięcy. Głupio by było po trzech miesiącach w nowym miejscu pójść na zwolnienie z powodu zagrożonej ciąży i pojawić się ponownie po kolejnym roku, gdy nikt nie będzie już pamiętał, skąd się wzięłam. Prawda? Mogłoby to utwierdzić pracodawcę w przekonaniu, że kobietom
tylko to (wynagrodzenie na chorobowym/macierzyńskim) w głowie. Zatem pracuję pilnie kolejny rok, starając się pokazać przełożonemu, że w razie czego warto te kilka miesięcy na mnie poczekać. Wszystko na zapas, gdy nawet nie zaczęliśmy z mężem starań o to dziecko. Gdy wiem, że takie starania mogą trwać latami lub w ogóle zakończyć się niepowodzeniem.

Trudno nazwać to niesprawiedliwością. Brak tu złej woli z czyjejkolwiek strony. To miejsce, w którym pokonuje mnie sama biologia. Zaczynam myśleć, że niedobór kobiet na najwyższych, eksponowanych stanowiskach i w zarządach niekoniecznie wiąże się z seksizmem i dyskryminacją (bo to, że nie wiąże się z mniejszymi zdolnościami kobiet, jest dla mnie oczywiste). Kobiety “same” się eliminują – w najbardziej produktywnym wieku, w momencie najlepszym na nawiązywanie kontaktów, prezentowanie profesjonalizmu, pięcie się w górę – one “produkują” dzieci, lub panikują na ten temat.

No i co z tym zrobić? 🙂

J.

[1] “Wow, jeszcze nigdy nie widziałem, żeby kobieta to potrafiła!”
[2] “Dzisiaj będziemy omawiać geometrię przestrzenną. Z mojego
doświadczenia wynika, że chłopcy radzą sobie z tym lepiej, niż dziewczynki”.
[3] “O co ci chodzi, nie ma nic złego w tym, że kobiety lepiej się znają
na kolorach”.
[4] “Studiuj na politechnice, twój mąż już tu jest”.

 

Od czasu napisania tego listu sporo się u mnie pozmieniało. Mam dwójkę dzieci i nowego pracodawcę (którego bardzo sobie chwalę, ale o tym w następnym tekście). Jeśli chodzi o kwestie poruszone w powyższym tekście, mam dwie gorzkie anegdoty:

  1. Zdecydowałam się na ciążę 2 latach pracy w jednym miejscu. Byłam już w zaawansowanej ciąży, kiedy firma podjęła decyzję o likwidacji (relokacji) poznańskiego biura. Nie miałam dokąd wracać… Chociaż muszę przyznać, że cała historia skończyła się dla mnie bardzo korzystnie.
  2. W nowym miejscu, trochę pamiętna tamtych doświadczeń, trochę wstrząśnięta falą zwolnień, a trochę zgodnie z zasadą “życie>praca” podjęłam decyzje o ciąży po 5 miesiącach. Pracowałam aktywnie do 7 miesiąca ciąży, mimo że czułam się podle – ci, którzy znają mnie osobiście, wiedzą jak bardzo. Dość powiedzieć, że układ kafelków na podłodze w firmowej toalecie dla inwalidów znów mam wyryty w mózgu po wsze czasy (za pierwszym razem było tak samo). No i i tak spotkałam się z komentarzem, z ust kobiety – “a ta tak krótko pracuje i już na zwolnieniu”.

Na koniec jeszcze oświadczenie: zdaję sobie sprawę, że opisuję tzw. problemy pierwszego świata i wiem, na jak uprzywilejowanej pozycji jestem, nie tylko z powodu własnych zasług.

Fajne rzeczy w Scali: klasy przypadków

Skończyłam pierwszy z pięciu kursów programowania w języku Scala w pięciokursowej specjalizacji na Courserze, prowadzonej przez twórcę tego języka.

Kolejna ciekawa cecha języka, jaką poznałam, to klasy przypadków (ang. case classes) i dopasowywanie wzorców (ang. pattern matching).

Instrukcje wielokrotnego wyboru i wzorce w innych językach

W wielu językach programowania istnieje jakaś forma instrukcji switch. W Javie pozwala  ona dokonywać wyboru dla zmiennej typu prostego oraz, nie od początku, zmiennej typu String. Na przykład:

Dopasowywanie wzorców i instrukcja match w Scali

Niektóre języki, w tym Scala, idą o krok dalej. Instrukcji wielokrotnego wyboru można w nich używać nie tylko na danych typów prostych. Co więcej, dopasoowywanie wzorców pozwala nam opisać przypadki w sposób niepełny – np. z zastosowaniem symboli wieloznacznych (ang. wildcards).

Poniżej przykład ze Scali, w którym przetwarzane są wierzchołki drzewa binarnego – osobno wierzchołki wewnętrzne (Fork), osobno liście (Leaf) drzewa.

W zależności od typu wierzchołka (Fork lub Leaf) oraz od wartości jednego z pól w przypadku klasy Leaf, w odmienny sposób zwrócona zostanie waga wierzchołka.

Nieistotne parametry zostały zastąpione symbolem _, który dopasuje się do wszystkiego.  Istotnym parametrom przypisujemy nazwę, dzięki czemu będzie można się do nich odwołać. Można też użyć ukonkretnionych wartości, żeby zdefiniować konkretne przypadki.

Po prawej stronie case nie ma żadnego przypisania ani instrukcji, ponieważ match jest wyrażeniem – zwróci jako wartość prawą stronę operatora =>.

Test  powyższej funkcji (przechodzący, daję słowo):

Klasy przypadków i ich cechy

Brakuje jeszcze definicji klas Leaf oraz Fork. Jak łatwo się domyślić, żeby używać ich w ten sposób, klasy te muszą zostać zdefiniowane jako klasy przypadków.

Ich definicja wygląda tak:

Klasy przypadków:

  • definiuje się z użyciem słowa kluczowego case,
  • powinny być niemodyfikowalne,
  • są porównywane przez podobieństwo strukturalne i wartości, a nie przez referencję,
  • wartości przekazane w konstruktorze są publicznie dostępne.

FAQ

Poniżej kilka szybkich pytań i odpowiedzi:

Q1: Co się stanie, jeśli nie przewidzisz wszystkich wzorców i na etapie wywołania okaże się, że zmienna nie pasuje do żadnego wzorca?
A1:  Otrzymasz scala.MatchError.

Q2: Jak utworzyć odpowiednik javowego default?
A2: Tak:

Q3: Czy to działa także dla typów prostych.
A3: Tak. Co więcej, możliwa jest nawet taka operacja:

PS.

Bardzo to wszystko wygodne i czytelne.

O, podstawowa dokumentacja Scali została przetłumaczona na język polski!

Fajne rzeczy w Scali: zwracanie funkcji

Kontynuuję kurs programowania w języku Scala, o którym wspominałam w poprzednim wpisie.  Zgodnie z obietnicą, pokazuję kolejną fajną rzecz, której się nauczyłam.

Funkcje, które zwracają funkcje!

W Scali funkcje są tzw. obywatelami pierwszej kategorii (ang. first class citizens).  Inaczej, funkcje są pierwszoklasowe. Oznacza to, że można z nimi robić wszystko to, co można robić z “normalnymi” typami danych, to jest: przekazywać jako argumenty, przypisywać do zmiennych, zwracać z funkcji, tworzyć je na bieżąco.

W szczególności, jedna funkcja może zwrócić inną. Poniżej przykład.

Na początku tworzymy alias o nazwie Set. Reprezentuje on typ funkcyjny: wszystkie funkcje pobierające parametr typu Int i zwracające wartość typu Boolean. W ten sposób chcemy, na potrzeby przykładu, reprezentować zbiory: jako funkcję, która dla każdej podanej liczby całkowitej powie nam, czy liczba ta należy do tego zbioru.

Jeśli nasz zbiór ma być zbiorem jednoelementowym (ang. singleton), to w zależności od tego, jaki to element, musielibyśmy utworzyć (nieskończenie) wiele funkcji sprawdzających, przynależność do zbioru – dla każdego możliwego elementu zbioru jednostkowego. Osobno dla zbioru zawierającego tylko liczbę 1, osobno dla liczby 2 itp. Dzięki możliwości zwracania funkcji, mamy tylko jedną funkcję, która tworzy i zwraca funkcję badającą przynależność do zbioru jednostkowego zawierającego wybrany element – przekazany jako parametr do funkcji singletonSet.

Jak to działa w praktyce?

Na początku testu tworzymy zbiór jednoelementowy zawierający liczbę całkowitą 4. Nasz zbiór – czyli funkcję pobierającą argument Int, zwróconą z funkcji singletonSet – przypisujemy do zmiennej (hm, stałej właściwie) single.

Następnie, wywołując funkcję przypisaną do zmiennej single, sprawdzamy, czy do zbioru {4} należą odpowiednio liczby 4 oraz 1. Zgodnie z oczekiwaniami, dla 4 otrzymujemy wartość true, dla 1 wartość false.

Uczę się Scali!

Zapisałam się na kurs programowania w języku Scala. Prowadzi go na Courserze twórca tego języka, Martin Odersky.

Postanowiłam po każdym tygodniu kursu dzielić się jakimś spostrzeżeniem albo cechą języka.

Co spodobało mi się w pierwszym tygodniu? Możliwość definiowania funkcji zagnieżdżonych, czyli funkcji w funkcjach. Poniżej przedstawiam definicję funkcji rekurencyjnej spradzającej parzystość nawiasów. Pomocnicza funkcja z dodatkowym parametrem jest zdefiniowana wewnątrz niej.

Co to daje? Przede wszystkim, funkcje pomocnicze przeznaczone do jednokrotnego użycia nie zaśmiecają przestrzeni nazw. Oczywiście w Javie zdefiniowałabym taką funkcję jako prywatną, więc do “zaśmiecenia” doszłoby tylko w ramach jednej klasy – ale i to potrafi uprzykrzyć kodowanie, np. kiedy IDE podpowiada mi wersje metody zamiast jednej.

Scala nie jest jedynym językiem pozwalającym na stosowanie zagnieżdżonych funkcji. Pełna lista jest dostępna w Wikipedii, w artykule o funkcjach zagnieżdżonych (opisane są tam też “obejścia” tego problemu w językach bez bezpośredniego wsparcia dla takich funkcji).

Inna rzecz, która przykuła mogą uwagę na kursie, to akcent prowadzącego. Nie mogłam się oprzeć i sprawdziłam, skąd pochodzi. Okazało się, że to Niemiec, ale pracujący we francuskojęzycznej części Szwajcarii.

Swoją droga, bardzo podobają mi się zadania domowe. Wymagają chwili pomyślunku, dobrze ilustrują treść wykładów – a przy tym nie zajmują bardzo dużo czasu.

Zachęcam do przyłączenia się do mnie na kursie!

Nie takie korpo straszne, czyli o wartości feedbacku

Całe dotychczasowe życie zawodowe spędziłam, pracując w dużych firmach.

Anegdotka nr 1, czyli prasówka babci Halinki

Mój poprzedni pracodawca zatrudnia na całym świecie ponad 300.000 osób. Za czasów pracy tam, kiedy tylko odwiedzałam rodzinne miasto (które ma mniej więcej tyle samo mieszkańców, co tamta firma pracowników), babcia zadawała mi zawsze to samo pytanie. Pytała mnie, mianowicie, czy korporacja już wyżęła mnie i wyrzuciła jak zużytą ścierkę.

Na początku próbowałam tłumaczyć, że każda firma, a nawet każde biuro firmy, niezależnie od wielkości, wytwarza własną kulturę pracy. Że w dużych firmach istnieją mechanizmy kontroli, podczas gdy w małych Krzaczeksach niejednokrotnie wszystko rozbija się o widzimisię szefa (z całym szacunkiem dla rodzinnych biznesów i ambitnych startupów). I jeszcze, że rozpasanych programistów z reguły traktuje się po królewsku.

Efekt był żaden, więc w końcu się poddałam i odpowiadałam tylko, że jeszcze nie. Niedługo później firma postanowiła “skonsolidować” pracowników w Warszawie. Nie przeniosłam się, a babcia uznała, że moje przeznaczenie się dopełniło.

Co to znaczy “korporacja”?

Z reguły, kiedy mówię o “korporacji”, mam na myśli firmę, która spełnia większość z wymienionych poniżej warunków:

  • zatrudnia co najmniej 200 pracowników,
  • oferuje benefity takie jak prywatne usługi medyczne czy karta Multisport,
  • organizuje imprezy integracyjne,
  • ma biura w więcej niż jednym mieście,
  • wprowadziła system oceny okresowej.

Anegdotka nr 2, czyli co mnie skłoniło do napisania tego tekstu

Do niedawna nie poświęcałam dużo uwagi temu, w jaki sposób, poza kwestiami czysto merytorycznymi (jak technologie, które poznałam) zmieniła mnie praca dla korporacji. Ale ostatno wydarzyło się coś, co skłoniło mnie do refleksji na ten temat.

Zostałam poproszona przez znajomą panią fotograf o napisanie rekomendacji na jej stronie. Zrobiłam to z przyjemnością, ponieważ lubię ją i podobają mi się wyniki jej pracy. Postanowiłam także wykorzystać okazję, żeby przekazać jej (poza recenzją) jedną uwagę krytyczną. Otóż jedna z koleżanek poskarżyła mi się jakiś czas temu, że podczas sesji niemowlęcej u niej w domu w pani fotograf karcąco odniosła się do karmienia dziecka małego butelką.

Wiedziałam, że to nieporozumienie, ale w jakiś sposób do niego doszło. Przekazałam informację. Spodziewałam się odpowiedzi w stylu “ok, zwrócę uwagę na to, jak rozmawiam z mamami”. Albo, że zignoruje to jako wypadek przy pracy. Nie moja sprawa.

Tymczasem rozpętało się piekło. Fotograf najpierw oskarżyła koleżankę o złośliwość i chęć zaszkodzenia. Potem twierdziła, że to na pewno nie o niej. Później tłumaczyła mi wielokrotnie, że nigdy powiedziałaby nic takiego. Tego dnia poszłam spać z podłym uczuciem, że chciałam pomóc, a jedynie wytrąciłam kogoś z równowagi.

Zrozumiałam wtedy, że mój korporacyjny trening w otrzymywaniu feedbacku i oceny sprawił, że podobnie jak moi współpracownicy i wielu znajomych, reaguję na krytykę inaczej, niż znaczna część naszego społeczeństwa.

Znienawidzona roczna ocena

Wierzę w firmowe systemy oceny. Zdarzyło mi się pracować w dużej (200+) firmie, gdzie takiego systemu brakowało. Prawie nie sposób było dostać podwyżkę, ponieważ szef, do którego trzeba się było udać, nie do końca odróżniał dziesiątki pracowników. Błagaliśmy o wprowadzenie formalnego systemu oceny, który pozwoliłby nam wykazać, że zasługujemy na podwyżkę.

Feedback to nie to samo ocena

Ocena, niezależnie od tego, czy jest ilościowa (np. w skali od 1 do 100) czy jakościowa (dobrze, średnio, źle), podsumowuje nasz wysiłek i informuje o aktualnym położeniu w firmie. Czy w perspektywie mam awans, czy raczej grozi mi zwolnienie?

Feedback, czyli informacja zwrotna, nie powinien być mylony z oceną. Celem wymiany informacji tego typu ma być rozwój. Jeśli kolega z pracy popełnia błąd ciągle w tym samym miejscu, warto wskazać mu odpowiednią lekturę albo kurs. Może utwierdza się w przekonaniu, że tak jest dobrze? Jeśli ktoś opowiada obraźliwe żarty, warto, żeby urażona nimi osoba zwróciła mu uwagę, zamiast znosić je w milczeniu i kisić w sobie złość oraz żal.

Ludzie nie zawsze obiektywnie widzą swoje słabsze strony i nie zawsze rozumieją, jak są odbierani. Życzliwy feedback może mieć ogromną, rewolucyjną wręcz wartość.

Feedback to nie tylko krytyka

Feedback może być też pozytywny. A może żarty jednego z kolegów są zabawne, na temat i rozładowują atmosferę na trudnych spotkaniach? Może ktoś pisze wyjątkowo czytelny kod i warto, żeby podzielił się swoimi zasadami i wiedzą z resztą zespołu? Może ktoś wyjątkowo sprawnie prowadzi spotkania, a przy tym waha się nad zmianą profilu, i warto potwierdzić, że sprawdza się w danej roli?

Wartość feedbacku

Życzliwy i kontrolowany feedback daje szansę na rozwój.

Sama tego doświadczyłam. Kiedyś panicznie bałam się wystąpień publicznych i unikałam ich jak ognia. Za którymś razem, kiedy nie miałam wyboru i musiałam coś przygotować, obca dla mnie osoba podeszła powiedzieć, że jej zdaniem mam do tego talent, tylko powinnam czasem patrzeć na publiczność. Dodało mi to pewności siebie, a dzisiaj występowanie nie jest dla mnie najmniejszym problemem.

Nie znaczy to, oczywiście, że musimy bez cienia wątpliwości przyjmować wszystko, co nam mówią. Być może ktoś się nie zna, nie rozumie, albo wręcz nie życzy nam najlepiej. Mimo wszystko warto powstrzymać się od odruchowego uznawania,  że “krytykuje żeby zaszkodzić” czy “krytykuje z zadrości”.

Warto także nauczyć się dawać życzliwy, wyważony feedback.

Kiedy się odzywać?

Jak uczy przedstawiona powyżej historia, nie zawsze! Nie za często. Bezpieczniej w sformalizowanych sytuacjach – to kolejny powód, dla którego jestem fanką firmowych systemów oceny. Wtedy “trzeba” coś powiedzieć, więc nikt nie powinien brać takich informacji do siebie.

Feedback, jak każde przydatne narzędzie, bywa nadużywany. Mam kolegę w pracy, który, gdy tylko coś mu się nie spodoba, bierze mnie na stronę i wypowiada kwestię “mam dla ciebie feedback”.

Znoszę z podniesionym czołem. I tego samego Wam życzę 🙂

“Stałe” w Javie:
final, static, i niemodyfikowalność

Wpis z dedykacją dla D, który postanowił nauczyć się nowego języka programowania i, chcąc utworzyć stałą (constant – słowo kluczowe niedostępne w Javie),  zapytał mnie o relację pomiędzy terminami: final, static i obiekt niemodyfikowalny (immutable).

final

Słowo final zmienia znaczenie w zależności od kontekstu, ale zawsze oznacza, że coś jest “ostateczne” i po utworzeniu nie da się już tego zmienić.

Klasa final

Jeśli klasę oznaczymy słowem final, nie będzie można jej rozszerzać, czyli tworzyć jej podklas. Zatem będzie to “ostateczna” wersja danej klasy.

Metoda final

Z metodami jest podobnie jak z klasami. Jeśli słowem final oznaczymy metodę, nie będzie można jej przesłaniać w klasach pochodnych – czyli mamy do czynienia z “ostateczną” wersją danej metody.

Zmienna final

Jeśli jako final opiszemy zwykłą zmienną w środku kodu, wartość (a dokładniej: wartość w przypadku typów prostych lub referencję w przypadku obiektów) będzie można jej przypisać maksymalnie raz. Na przykład:

Pole klasy final

Jeśli słowem final oznaczymy pole klasy, będzie to oznaczało, że wartość (lub referencję, jak powyżej) można mu nadać tylko raz – będzie ona ostateczna. Wartość tę można przypisać na dwa sposoby – albo “w miejscu”, przy definiowaniu klasy, albo w konstruktorze. Nie da się tego zrobić później. Jeśli pole final nie otrzyma wartości w żadnym z tych dwóch miejsc, kompilator zaprostesuje.

Za przykład niech posłuży fragment definicji klasy String z Javy 8:

Parametr final

Jeśli jako final oznaczymy parametr metody,  zablokujemy możliwość zmiany jego wartości. I tak nie powinniśmy tego robić – to jedna z dobrych praktyk. Użycie słowa final oficjalnie nas do niej zobowiązuje.

static

Słowo kluczowe static nie musi być łączone ze stałymi. Chcę jednak rozebrać je na czynniki pierwsze, ponieważ często spotyka się je razem z final w następujących konstrukcjach (ta akurat znów klasy String):

Słowo “statyczny”, jako przeciwieństwo “dynamiczny” można w uproszczeniu rozumieć w ten sposób, że opisany nim byt do życia nie potrzebuje obiektów (tworzonych dynamicznie).

Pole klasy static

Jeśli pole klasy zostanie oznaczone jako static (jak w przykładzie bezpośrednio powyżej), oznacza to, że jest współdzielone przez wszystkie obiekty danej klasy. Można uzyskać do niego dostęp odwołując się do nazwy obiektu lub do nazwy klasy – efekt będzie ten sam. Pamięć jest przydzielana tylko raz, podczas ładowania klasy.

W ten sposób można definiować ważne stałe albo różnego rodzaju liczniki (np. liczba egzemplarzy danej klasy – wówczas w konstruktorze zwiększamy wartość tego pola o 1).

Metoda static

Metoda static jest współdzielona przez wszystkie obiekty, można ją także wywołać odnosząc się bezpośrednio do nazwy klasy, bez potrzeby tworzenia obiektu.

Metoda ta ma dostęp jedynie do statycznych atrybutów (pól i metod) danej klasy. Co za tym idzie, nie może też używać słów this ani super.

W ten sposób często definiuje się różne metody pomocnicze – na przykład większość metod w klasy Math.

Najbardziej znana metoda statyczna to oczywiście main.

Blok kodu static

Wewnątrz definicji klasy można umieścić statyczny blok kodu, w którym, na przykład, zainicjalizujemy jakieś statyczne pola. Zostanie on wywołany w trakcie ładowania klasy.

Mimo że bloki statyczne rzadko pojawiają się w kodzie, kolejność ich wykonywania to konik wielu profesorów informatyki na egzaminach z programowania obiektowego.

Zagnieżdżona klasa static

Jeśli klasę zagnieżdżoną opiszemy słowem static, będzie ona mogła odwoływać się jedynie do statycznych atrybutów swojej klasy zewnętrznej.

Obiekty niemodyfikowalne

Obiekt niemodyfikowalny (immutable) to taki obiekt, w którym po użyciu konstruktora nie można już dokonywać żadnych zmian.

Przekazując taki obiekt, mamy pewność, że nie zostanie on zmieniony przez żaden kod – ani nasz, ani znajdujący się pod kontrolą kogoś innego. Obiekty niemodyfikowalne są wybawieniem podczas pracy z wątkami, ponieważ nie trzeba synchronizować ich stanu.

Niemutowalne są na przykład obiekty klasy Integer.

Oto fragment definicji tej klasy:

Wartość value (czyli liczbę typu prostego int opakowywaną przez klasę Integer) można ustawić jedynie przy użyciu któregoś z konstruktorów. Nie da się jej zmienić później. Klasa Integer ma szereg metod pozwalających uzyskać dostęp do tej wartości, ale sama wartość wewnątrz obiektu tej klasy nigdy  nie zostanie zmieniona. Nie jest do tego potrzebne słowo final (które zostało tu użyte) – wystarczyłaby sama enkapsulacja. final daje nam jednak niezbitą pewność, że po inicjalizacji nikt już tej wartości nie zmieni.

Co ma zrobić osoba, która potrzebuje innej liczby Integer? Będzie musiała po prostu utworzyć nowy obiekt.

Nie istnieje słowo kluczowe immutable. Obiekty niemodyfikowalne tworzy programista, korzystając z mechanizmu enkapsulacji oraz słowafinal.

Wszystko razem, czyli static final String

Rozważmy definicję poniższych pól:

Wszystkie trzy pola są opisane jako static final, czyli są to stałe współdzielone przez wszystkie obiekty danej klasy.

W pierwszym przypadku mamy stałą typu prostego. Sprawa jest oczywista – nie wolno nam zmienić jej wartości. Nie możemy przypisać pod ERROR_CODE żadnej innej wartości.

W drugim przypadku mamy obiekt. Jest to, dodatkowo, obiekt niemodyfikowalny (immutable). Uczący się Javy kolega zapytał ostatnio, po co dodawać final, skoro obiekt jest niemodyfikowalny. Po co? – żeby nie można było zmienić referencji. Gdyby nie słowo final, możliwa byłaby następująca operacja:

Obiekt String z wartością “Ouch” jest co prawda niemodyfikowalny (nie można zmienić przechowywanej w nim wartości), ale nic nie stałoby na przeszkodzie, żeby podmienić obiekty przypisane do zmiennej RESPONSE. Użycie final nas przed tym chroni.

W ostatnim przypadku mamy zwykły (modyfikowalny) obiekt ze zmiennym stanem, przypisany do pola oznaczonego jako final. Co to oznacza? Że co prawda, dzięki final, nie możemy zmienić referencji (to będzie nadal tem sam obiekt) ale ciągle możemy nieźle namieszać w jego wnętrzu przy użyciu API:

Jasne?

Odpowiedne korzystanie z javowych “stałych”, wartości statycznych i obiektów niemodyfikowalnych pozwala na oszczędzenie miejsca w pamięci i stworzenie czytelnego, łatwego w utrzymaniu kodu.

Milsza strona programowania