Zasady inżynierii: putting our values into practice
VP of Engineering, Ilya Kozlov, dzieli się logiką i wartością stojącą za naszymi zasadami inżynieryjnymi. Dowiedz się jak te zasady pomagają naszym inżynierom rozwijać się i brać odpowiedzialność za dostarczane przez nich produkty.
W Taxfix wszystko zaczyna się od naszych wartości: Dostarczanie, Zaufanie, Rozwój i Zrozumienie. Każdy, niezależnie od roli jaką odgrywa w firmie, ma wspólne zrozumienie tych wartości. Zasady inżynieryjne urzeczywistniają nasze wartości w konkretnych koncepcjach i prowadzą wszystkich w uczciwy i uporządkowany sposób. Celem jest uczynienie naszego zespołu tak autonomicznym, jak to tylko możliwe – w odkrywaniu, podejmowaniu decyzji, dostarczaniu i rozwoju.
Zasady są mapą drogową dla nowych pracowników, która pozwala szybko zorientować się, jak działamy. Dostarczają one podręcznika działań i sposobów podejścia do nowych wyzwań. Na przykład, jeśli dwie różne osoby staną przed tym samym problemem w podobnym kontekście, ich rozwiązania będą mniej więcej takie same, ponieważ kierowały się tymi samymi wytycznymi. Nasze zasady służą również jako punkt odniesienia dla informacji zwrotnej i rozwoju. Za każdą zasadą kryje się zestaw oczekiwań dotyczących zachowania naszych inżynierów, który wyznacza kierunek samodoskonalenia.
Jak tworzyliśmy te zasady?
Mimo że wartości są integralną częścią codziennego życia, nie zawsze było jasne, jak wprowadzić je w czyn. Nasi inżynierowie potrzebowali bardziej konkretnych przykładów, jak żyć tymi wartościami w praktyce.
Zdaliśmy sobie sprawę, że potrzebujemy podręcznika do gry dla inżynierów, który dokładnie określałby, co cenimy i czego oczekujemy od zespołu. Zebraliśmy się na pierwszej sesji burzy mózgów – Juan Ramirez, nasz menedżer ds. inżynierii w Madrycie, Alex De Leon, nasz CTO, i ja. Wspólnie określiliśmy kilka kluczowych obszarów, nad którymi powinniśmy pracować, ale szybko odkryliśmy, że nasz obraz nie jest kompletny. Musieliśmy usłyszeć każdy głos w organizacji inżynierskiej.
Przez serię warsztatów w ciągu następnych kilku miesięcy omawialiśmy pomysły, rzucaliśmy sobie nawzajem wyzwania i czerpaliśmy referencje od niektórych wiodących kultur inżynierskich na rynku. W rezultacie powstała struktura ośmiu zasad inżynieryjnych opartych na wartościach, popartych przykładami najlepszych praktyk.
Co zasady inżynieryjne oznaczają w praktyce?
Oto rzut oka na kilka z naszych zasad inżynieryjnych:
Dostarczaj
W ramach wartości Dostarczaj mamy zasadę Wewnętrznego Otwartego Źródła. Oznacza to, że każdy może wnieść swój wkład do dowolnej aplikacji lub usługi, co jest również znane jako słaba własność kodu. Wewnętrzne Otwarte Źródło pomaga nam w dostarczaniu, ponieważ kiedy baza kodu jest współdzielona, efektywnie nie ma zależności.
Jednym z głównych problemów, z którym zmaga się wiele firm, są zależności. Jeśli zespół chce dostarczyć nową funkcję, często musi zbudować coś w swoim własnym serwisie, a następnie dotrzeć do innego zespołu i czekać, aż wszystkie elementy się połączą. Zazwyczaj, im większa jest firma, tym bardziej skomplikowany staje się ten problem. Jesteś zasadniczo zablokowany przez zależności. Tutaj pracujemy w wielofunkcyjnych zespołach i prawie wszędzie używamy jednego języka – JavaScript. Dzięki temu każdy może przejść do konkretnego serwisu w firmie i tam dokonać zmiany. Nie trzeba czekać – można ją wdrożyć samemu.
Zaufanie
Pod naszą wartością Zaufanie kryje się zasada Jesteśmy jednym zespołem. Oznacza to, że optymalizujemy pod kątem wyników zespołu i organizacji, a nie jednostki. Jednostka z pewnością może osiągnąć wynik, o który jej chodzi, ale jakim kosztem dla reszty organizacji? Jeśli masz na uwadze tylko swój własny cel, cała firma nie będzie wydajna. Dlatego staramy się znaleźć sposób na osiąganie lepszych wyników poprzez wykorzystanie kombinacji wiedzy, doświadczenia i perspektywy. Nie ma pracy „jednoosobowej”, jest tylko współpraca.
Rozwój
W ramach naszego rozwoju wartości uwzględniliśmy zasadę Uczymy się od siebie nawzajem. Oprócz standardowych inicjatyw edukacyjnych, takich jak uczestnictwo w meetupach czy odwiedzanie konferencji, chcemy zachęcać do dzielenia się wiedzą między członkami zespołu. To, co staramy się osiągnąć, to dopasowanie różnych umiejętności w naszych zespołach. Jeśli, na przykład, jest inżynier front-end, który chce przejść do full-stack, wtedy łączymy go z inżynierem back-end. Łączymy ich w pary, aby mogli rozwijać się jako zespół i jako jednostki poprzez prowadzenie nowych projektów poza ich typową specjalizacją.
Understand
Ostatni przykład, który chciałbym podać, odnosi się do naszej wartości Understand – Create and Share Context. Zasada ta wykracza poza samą dokumentację; jest to ulica dwukierunkowa. Oczekujemy, że nasz zespół będzie tworzył kontekst dla innych. Ponadto, powinni oni być proaktywni w czytaniu i przyswajaniu kontekstu, który otrzymują. Na przykład, gdy chodzi o pull requesty, ludzie nie zawsze znają twój kontekst lub to, co próbujesz osiągnąć w swoim zespole. Jeśli współpracujesz i próbujesz zmienić czyjeś repozytorium, musisz podać tak dużo kontekstu, jak to tylko możliwe. Musisz wyjaśnić swoje intencje, wszelkie kompromisy, na które poszedłeś, harmonogram i to, jak ta zmiana łączy się z większymi zmianami w dalszej części linii. Nie wierzymy w słuszne lub niesłuszne decyzje. Wierzymy jedynie w decyzje, które są podejmowane we właściwym kontekście lub w brakującym kontekście.
.
Leave a Reply