Nie po to zostałem programistą, żeby rozmawiać z ludźmi – mawiają niektórzy. Programiści lubią czasem pozować na niezrozumiałych, heraklitejskich mędrców, stojących ponad masami nieświadomych użytkowników. Będąc wśród swoich, przynajmniej niektórzy z nas, pieszczą swoje ego spoglądając na niedoświadczonych kolegów z góry. Internet pełen jest zresztą memów ukazujących starszych programistów w blasku i chwale, juniorów zaś, razem z praktykantami jako niedoświadczonych półgłówkow.
Kiedy pokazujemy juniorowi starą technologię
Źródło: https://thecodinglove.com/when-we-show-an-old-technology-to-a-junior-developer
Między nami, deweloperami toczy się walka, walka o dominację. Ile to razy widziałem już skracanie kodu przy użyciu mało znanych elementów języka, by pokazać, że jest się większym ekspertem. Zmniejszanie wycen, by udowodnić innym, że jesteśmy bardziej wydajni. Chodzenie na rekrutacje dla sportu. Delegowanie juniorom zadań nie prostych, a żmudnych.
W jednej firmie, w której pracowałem na stanowisku młodszego programisty pracował ze mną kolega. Nazwijmy go Przemek. Kolega Przemek również był młodszym programistą. Pewnego dnia jednak, z racji dłuższego o bodajże rok stażu pracy, awansowano go. Dwa tygodnie po tym wydarzeniu, pracując nad kodem produktu zapytałem na open-space o, nieznany mi wówczas, typ decimal w C#. Przemek oderwał się od komputera i roześmiał.
– Nie wiesz co to decimal? Ty juniorze!
Usłyszawszy to, znad swojego z kolei ekranu, podniósł się starszy programista i roześmiał gromko.
– Przemek, przecież sam mnie o to pytałeś miesiąc temu!
Tymczasem to współpraca i synergia, a nie ego i znajomość kruczków technologicznych budują zgrane, sprawne, produktywne zespoły, które tworzą piękne, zgrabne, wydajne rozwiązania cieszące klientów. Po latach zrozumiałem jedno…
Najważniejszą cechą dobrego programisty jest empatia.
Empatia to umiejętność wczucia się w inną osobę. Jeśli deweloper potrafi zobaczyć świat oczami innych, będzie w stanie zaprojektować system łatwy i wygodny w użyciu dla zwykłych ludzi. Jeśli potrafi wyjść poza swoją perspektywę, będzie umiał pisać kod źródłowy, który będzie zrozumiały dla innych programistów, przez co modyfikowanie produktu będzie tańsze i sprawniejsze. Mając tę cenną umiejętność będzie też umiał rozmawiać z projektantami aplikacji, z tzw. biznesem.
Jako programiści zawsze powinniśmy próbować doskonalić naszą empatię. Możliwie często pytać samych siebie – czy będzie to zrozumiałe dla innych, którzy nie wiedzą tego co ja? Czy nie będzie to zbyt skomplikowane w użyciu? Czy używam dostatecznie prostego języka? Czy nie komplikuję czegoś nadmiernie?
Rekrutując programistów warto zwrócić uwagę na ich osobowość. Osoby zarozumiałe, tyraniczne, mało empatyczne, nawet jeśli genialne na płaszczyźnie technicznej, mogą więcej problemów stworzyć niż rozwiązać… Nie skupiajmy się jedynie na IQ i znajomości technologii. W większości projektów wyzwania techniczne nie są tak monumentalne, jak mogłyby się wydawać.
Same technologie zresztą – przeminą. To co pozostanie, to kod źródłowy. Napisany przez ludzi, którzy wyobrażali sobie, że ktoś, kiedyś po nich przyjdzie i będzie musiał go zrozumieć, nie znając tak jak oni technologii i uwarunkowań albo przez tych, których ich następcy nie interesowali. Po tych drugich nikt nie będzie chciał pracować, a praca będzie powolna. Nie chcemy tego…