Czy zauważyłeś w swoich międzynarodowych współpracownikach (Z DOWOLNEGO kraju), że styl kodowania i rozwiązywanie problemów są zgodne z językami ojczystymi?
Absolutnie. To trudny fakt. Łańcuch przyczynowo-skutkowy jest jednak bardziej złożony.
Region, jego ekosystem, warunki pogodowe, życie roślin i zwierząt wpłynęły na rozwój lokalnej kultury kulturowej, która jest jego częścią.
Kultura i religia wpłynęły na powstanie i rozwój lokalnego języka (ów).
Kultura i język odcisnęły swoje piętno na modelu społeczeństwa dla tej konkretnej grupy etnicznej.
Model społeczny zdefiniował model zachowania - styl życia, podejście do pracy, relacje społeczne, priorytety i wartości jednostek. To jest część, której chcemy.
Ludzie różnych kultur będą zbliżać się do rozwiązania problemu z bagażem swojego dziedzictwa kulturowego - jak o tym myślą, jakie podejście do pracy, jaką metodologię i wzorce rozwiązywania problemów zastosują, jakie priorytety i wartości wyznaczyli.
Mówiąc o przykładach, mogę podać dwa. Jeśli zabierzemy Niemcy tam, gdzie obecnie mieszkam, zaobserwowałem pewne wzorce.
Planowanie wszystkiego z wyprzedzeniem i długoterminowo to sposób na życie. Wieczorne spotkania z przyjaciółmi można zaplanować z tygodniami i miesiącami. Młodzi ludzie już się zajmują przejściem na emeryturę (ubezpieczenie itp.). Nastrój, improwizacja, chęć i umiejętność dostosowywania się w miarę upływu czasu są bardzo niskie. Oczywiście przenosi się na sposób pracy. Dużą rolę odgrywają planowanie i porządek. Zwinność jest uważana za wyjątkową cechę opisującą nowoczesną osobę / zespół z postępowym myśleniem. Jednak większość zwinnych procesów, które zaobserwowałem w niemieckich zespołach, bardziej przypomina maszynową realizację predefiniowanych kroków (nawet jeśli ludzie naprawdę próbują być zwinni), ale nie ma ducha zwinności jako takiej.
Przewidywalność wszystkiego jest normą życia. Ludzie są przyzwyczajeni do wiedzy o tym, co się stanie, gdzie i kiedy. Rozciąga się od codziennego życia przez styl pracy po relacje osobiste. Możesz to zobaczyć na przykład, gdy ludzie przechodzą przez ulicę. Czekają na zielone światło i zaczynają jechać, nie patrząc, czy samochody rzeczywiście się zatrzymały - ponieważ ich oczekują. Ludzie są dumni z możliwości kontrolowania każdego aspektu swojego życia. Kiedy jednak życie wraca z czymś nieoczekiwanym, kiedy sprawy wymykają się spod kontroli, ludzie w pewnym sensie wariują. Po przeniesieniu do programowania zauważyłem, że kodowanie odbywa się raczej optymistycznie, bez obsesjize sprawdzaniem danych wejściowych, kluczami obcymi w celu weryfikacji integralności danych i tak dalej. Nie ma też dodatkowej inżynierii, aby utrzymać kod w pewnym stopniu odporny na awarie i przystosowujący się do pewnych przyszłych zmian, tylko po to, aby zaspokoić dzisiejsze oczekiwania (które prawdopodobnie nie zmienią się).
Oszczędność pieniędzy i optymalizacja wydatków są niezwykle ważne w kulturze. Odzwierciedla to artefakty pracy. Charakterystyka i jakość są zgodne z planowaniem, ale nie przekraczają ich nagle (aby było chłodniej lub po prostu „na wszelki wypadek”). Inną stroną gry jest niechęć do inwestowania w nowoczesny sprzęt i oprogramowanie, do przeprojektowywania działającego kodu, do jego refaktoryzacji, do ulepszenia, aby zachować zgodność z aktualnym stanem rzeczy, aby przygotować się na przyszłość. Ponieważ nie ma natychmiastowej wygranej i nikt nie płaci za zmiany, nikt tak naprawdę się nie ruszy.
W kulturze przedsiębiorczość i kreatywność są raczej niskie. Niechęć do podejmowania ryzyka na własny rachunek jest wysoka. Wyniki pracy rzadko niosą odciski niezwykłych, nieoczekiwanych, kreatywnych. Ludzie mają tendencję do podążania zdeptaną ścieżką, niewielkich eksperymentów lub nietypowych ustawień „z ciekawości”. Ludzie nie lubią przejmować inicjatywy w swoje ręce, szczególnie w połączeniu z odpowiedzialnością. Słyszałem też, że Niemcy lądujący w Holandii czasami mają trudności, ponieważ ludzie są przyzwyczajeni do samodzielnej pracy bez ścisłego nadzoru. Jeśli chodzi o programowanie, oznacza to niewielkie eksperymenty z nowymi językami, narzędziami lub bibliotekami, nowe wersje nie są przyjmowane z obawy przed zmianą. Ludzie biorą wzorce projektowe i na ślepo stosują je, ponieważ uczyli się tego na uniwersytecie i nie kwestionują ich zastosowania.
Funkcjonalność nad modą. Widać to w życiu codziennym. Wspólny styl miejski, projektowanie budynków, dekoracja ulic, wszystko sprowadza się do minimum wymaganego do jego funkcjonowania, ale zwykle nic tylko ze względu na styl, piękno. Jeśli chodzi o programowanie, widać to w braku pięknego projektu interfejsu użytkownika. Większość witryn firmowych i prywatnych jest raczej stara i nudna. Nie można również przekonać szefa i współpracowników do polerowania, ponieważ nie widzą żadnych wymiernych korzyści.
Złożoność i biurokracja są częścią stylu życia. Ludzie idą dalej i aplikują wszędzie. Relacje osobiste szczegóły pracy, decyzje i rozwiązania często skutkują wieloma artefaktami dokumentującymi to, co zostało zrobione. Kod programistyczny często zawiera niepotrzebne elementy, poziomy abstrakcji i kompozycje, ponieważ wydaje się, że ludzie są w ten sposób poważniejsi. Zasada KISS nie jest zbyt popularna.
„Ratowanie twarzy” wydaje się być bardzo ważne, aby wydawać się sukcesem, nie pokazywać oznak słabości lub porażki nikomu innemu (jeśli tak, to prawie na pewno zostanie użyte przeciwko tobie). W praktyce zawodowej przyznawanie się do porażki jest dość trudne, ludzie robią wszystko, aby nie „stracić twarzy”. Krytyka też przychodzi ciężko. Krytykowanie kogoś (z słusznej przyczyny lub nie) jest pewnym sposobem na uczynienie wroga. Mówienie tego, co ma się na myśli, nie jest praktykowane, co sprawia, że trudno jest zrozumieć, kto stoi.
Podsumowując, dobrzy wykonawcy, najlepsze planowanie i harmonogram, dokładność jest dobra. Nie należy się jednak spodziewać innowacji i kreatywności.
Drugi przykład dotyczy kultury rosyjskiej, do której należę. Jest całkiem inaczej.
Harmonogram i planowanie nie wydają się mieć szczególnej wartości. Drobne odchylenia nie dotyczą ludzi, chyba że / dopóki nie zacznie zagrażać większemu wynikowi. Ludzie nie lubią żyć według planu, wolą coś w rodzaju wolności umysłowej, robić to, co lubią i kiedy mają na to ochotę. Jeśli chodzi o programowanie, mogą zignorować „nieistotne”, takie jak pisanie dokumentacji i wykonywanie papierkowej roboty. Ludziom łatwiej przychodzi i odchodzi, jeśli znudzi im się projekt, nie lubią atmosfery i tak dalej. Nie należy oczekiwać długoterminowego zaangażowania na całe życie, ludzie nie chcą być związani, nie oczekują, że przyjdą raz i pozostaną do emerytury. Jest to dobrze widoczne na rynku telefonów komórkowych. Podczas gdy w Europie / USA powszechne jest posiadanie 2-letnich umów, w Rosji nie jest to praktykowane. Ludzie nie
Ludzie nie lubią biurokracji i wolą nieformalne relacje. Niewielka lub żadna papierkowa robota, jak najmniej dyskusji i spotkań, wystarczy wykonać pracę. Złożoność kodu nie jest podobna, preferowane są proste decyzje i bezpośrednie sposoby. Nudna rutyna nie jest preferowana. Niektóre „nieistotne” zadania, takie jak komentowanie i dokumentacja, mogą być ignorowane. Ludzie mogą odłożyć pewne nudne rzeczy i zamiast tego robić bardziej interesujące rzeczy lub robić nudne części w nieoczekiwany sposób, co utrzyma ich motywację.
Koszty nie są tak ważne. Ludzie lubią zdobywać coś nowszego, fajniejszego, ciekawszego i nowocześniejszego, bez uzasadnienia biznesowego. Jeśli zapewni to satysfakcję, zwykle nie będą zaniepokojeni dodatkowymi poniesionymi kosztami.
Ludzie są bardzo entuzjastycznie nastawieni do wszystkiego. Żywność, muzyka, ubrania, artefakty i pomysły z różnych krajów i kultur przenikają przez otwarte drzwi. Jeśli chodzi o programowanie, ludzie eksperymentowali z nowym językiem, narzędziem lub biblioteką, z ciekawości, z uzasadnieniem biznesowym lub bez. Różne filozofie i metodologie są chętnie podejmowane, dotykane, gryzione, eksperymentowane i mieszane razem w funkowy sposób.
Piękno i styl są bardzo ważne. Ludzie spędziliby dodatkowy czas i pieniądze na czymś, co nie ma żadnych wymiernych korzyści, ale zaspokaja jedynie artystyczny sens. Często wolą coś stylowego niż coś bardziej funkcjonalnego. Bardzo ceniony jest piękny design interfejsu użytkownika. Jeśli chodzi o programowanie, ludzie przeprojektowaliby kod, który wydaje się niezdarny i nieuporządkowany, po prostu dodając mu więcej stylu, nawet jeśli wcześniej działał idealnie, co skutkowało dodatkowym czasem.
Recepty i reguły są często lekceważone, a nawet pogardzane, ludzie mogą zrobić coś zupełnie innego, jeśli są przekonani, że będzie lepiej (lub fajniej - nie można się temu oprzeć). Wiele decyzji z góry będzie kwestionowanych i dyskutowanych. I tak, wszyscy mają dobre zdanie na każdy temat.
Przewidywalność życia jest dość niska, więc ludzie zawsze planują na wszelki wypadek. To samo często znajduje odzwierciedlenie w kodzie, raczej nastawieniu pesymistycznym, z podwójnymi kontrolami i planami awaryjnymi. Architektura może odzwierciedlać gotowość na przyszłe możliwe zmiany, ale nie nadmierną architekturę podobną do astronautów. Agile nie jest nowoczesną metodologią, ale sposobem na życie. Również ludzie są przyzwyczajeni do zmian i nie próbują kontrolować każdego aspektu swojego życia. Kiedy dzieje się coś nieoczekiwanego, ludzie po prostu kiwają głowami, mówią „następnym razem będzie lepiej” i idą dalej bez szaleństwa, picia, narkotyków itp. Niepowodzenie projektu nie powoduje samobójstw, jest łatwe do podjęcia.
Poprawność polityczna jest niska, więc ludzie mogą po prostu powiedzieć z góry to, co myślą, gdy się tego nie spodziewasz. Być przygotowanym.
Inna podstawowa kwestia to, spodziewaj się nieoczekiwanego, coś niezwykłego i kreatywnego, ale nie oczekuj precyzji maszyny, harmonogramu i przestrzegania zasad.
Na to, który jest lepszy, nie można łatwo odpowiedzieć. Jeden rodzaj pracy jest lepiej objęty jedną kategorią pracowników, a drugi inną. Źle, jeśli ludziom przypisano niewłaściwe zadania ze względu na ich mentalność. Przypuszczam, że rozpoznanie tego problemu stanowi wyzwanie dla kierownika międzynarodowego zespołu. Nie jestem pewien, czy kiedykolwiek było to omawiane z aplikacjami dla branży IT.