Kod

Dlaczego KPI i OKR nie działają w firmach IT

Dlaczego KPI i OKR nie działają w firmach IT

Bezpłatny kurs: „Szybki start w Pythonie”

Dowiedz się więcej

Starszy programista iOS w VKontakte. Posiada doświadczenie jako full-stack developer, back-end developer i inżynier DevOps. Zarządzał działem rozwoju aplikacji mobilnych i przez trzy lata wykładał programowanie iOS w GeekBrains, gdzie pełnił również funkcję dziekana wydziału. Jest członkiem komitetu programowego konferencji Podlodka iOS Crew i prowadzi kanał YouTube z samouczkami Fluttera. Na Twitterze dzieli się swoimi przemyśleniami pod nazwą @tygeddar.

Linki odgrywają kluczową rolę w strukturze internetu, zapewniając połączenia między różnymi stronami i zasobami. Pomagają użytkownikom znaleźć potrzebne informacje, a także przyczyniają się do poprawy widoczności witryn w wyszukiwarkach. Ważne jest, aby poprawnie używać linków, zarówno wewnętrznych, jak i zewnętrznych, aby poprawić SEO treści. Linki wewnętrzne pomagają użytkownikom poruszać się po witrynie i pogłębiać ich zaangażowanie w treść, podczas gdy linki zewnętrzne do autorytatywnych źródeł mogą zwiększyć wiarygodność witryny. Ważna jest również optymalizacja tekstu zakotwiczenia linków: powinien on być informacyjny i odnosić się do treści, do których prowadzi. Efektywne wykorzystanie linków poprawia komfort użytkowania i poprawia pozycję w wynikach wyszukiwania.

Pracuję zdalnie od dawna, podczas gdy większość osób rozpoczęła tę podróż nieco ponad dwa lata temu. Pandemia wywołała u wielu menedżerów obawy: jak nadzorować pracowników w środowisku pracy zdalnej? W rzeczywistości zarządzanie zespołem w środowisku wirtualnym niczym nie różni się od zarządzania w biurze: zaufanie i skuteczna komunikacja pozostają kluczowymi czynnikami.

Kogo próbujemy oszukać?

W środowisku biurowym nie ma nadzoru nad pracownikami. Przez sześć lat pracy, wliczając w to stałą obecność i sporadyczne wizyty, obserwowałem, jak koledzy swobodnie przychodzili i wychodzili o dowolnej porze, spóźniali się lub spędzali długie godziny na lunchu. Nikt tego procesu nie monitoruje. Tworzy to atmosferę zaufania i autonomii, pozwalając pracownikom zarządzać swoim czasem i obowiązkami służbowymi.

Kadr: serial animowany „Simpsonowie”

Możesz argumentować, że kontrola czasu pracy stała się teraz bardziej rygorystyczna: bramki obrotowe rejestrują godziny przybycia i wyjścia, a także całkowitą liczbę godzin spędzonych w miejscu pracy. To prawda, ale nawet w biurze pracownicy nie są stale monitorowani. Możesz spędzać czas w strefie PlayStation, na siłowni lub po prostu rozmawiać z kolegami w biurze typu open space, omawiając samochody lub koncerty ulubionych artystów. Jednak kierownictwo nie będzie monitorować każdego twojego ruchu.

Podczas podróży zauważyłem młodego mężczyznę siedzącego cicho w kącie, niemal nieustannie pogrążonego w swoich sprawach osobistych. Z zewnątrz wyglądało to całkiem akceptowalnie: siedział ze słuchawkami na uszach, plecami do ściany, wpatrując się intensywnie w ekran swojego urządzenia z poważnym wyrazem twarzy. Wyglądał na ciężko pracującego. Takie podejście do pracy w transporcie publicznym budzi szacunek.

Praca zdalna wymaga takiego samego nadzoru jak w biurze. Ważne jest, aby monitorować liczbę zadań, jakość i tempo ich realizacji dla każdego pracownika z osobna. Wszystkie pozostałe dyskusje nie mają praktycznego znaczenia. Skuteczne zarządzanie zespołem zdalnym opiera się na jasnym zrozumieniu zadań i rezultatów, co przyczynia się do wzrostu ogólnej produktywności i satysfakcji pracowników.

Jak wyglądałem pod maską

Obraz: Domena publiczna

Pracowałem z systemem do śledzenia czasu i doświadczenie było wyjątkowo nieprzyjemne. Ważne jest, aby zrozumieć, że programista nie może pracować bez przerw przez całą zmianę. To po prostu niemożliwe. Oczywiście istnieją zawody, w których praca polega na wykonywaniu rutynowych zadań przez osiem godzin. Jednak nawet projektant layoutu musi od czasu do czasu robić sobie przerwy od monotonnych layoutów. Bez tego obciążenie poznawcze staje się nadmierne, co negatywnie wpływa na produktywność i jakość pracy. Skuteczne podejście do zarządzania czasem i zadaniami wymaga elastyczności i uwzględnienia indywidualnych potrzeb pracowników.

System do śledzenia czasu śledził tylko czas spędzony na kodowaniu i rozmowach telefonicznych, co powodowało dodatkowe niedogodności. Jeśli potrzebna była przerwa, na przykład na herbatę lub papierosa, użytkownik musiał wyłączyć system. Co więcej, wszyscy pracownicy musieli rejestrować swoje działania co pół godziny, co niepotrzebnie zwiększało obciążenie i odciągało od głównej pracy.

Oczywiście chętnie pomogę w edycji tekstu. Proszę podać tekst źródłowy, który wymaga korekty.

Jeśli spędziłem 40 minut na omawianiu spraw służbowych z kolegą poza głównym obszarem, aby nie rozpraszać innych, pojawia się pytanie, jak to udokumentować. W jakim zadaniu powinienem nagrać tę rozmowę? Moglibyśmy omawiać nie tylko bieżące sprawy, ale także potencjalne problemy lub przyszłe projekty, które również są związane z naszą pracą. Dlatego często musimy wykazać się kreatywnością w organizacji takich spotkań, co stwarza pewne niedogodności. Prawidłowa organizacja takich dyskusji jest ważna dla śledzenia czasu i zwiększania efektywności.

Istnieją trackery, które robią zrzuty ekranu w określonych odstępach czasu, na przykład co 10 minut. Jeśli otrzymasz wiadomość w Telegramie i otworzysz ją, aby ją przeczytać, w tym momencie tworzony jest zrzut ekranu. To sprawia, że ​​system zakłada, że ​​w ciągu tych 10 minut nie pracowałeś, ale spędziłeś czas na komunikatorze. Udowodnienie, że jest inaczej, może być niezwykle trudne.

Niektórzy nadal śledzą aktywność użytkownika na klawiaturze. Jest to dość skomplikowane i nieefektywne, ponieważ większość czasu, jaki doświadczony programista spędza, poświęca na przemyślenie decyzji. Procesu tego nie da się zmierzyć żadnymi licznikami, ale jest on kluczowy dla jakości kodu i pomyślnego ukończenia projektów.

Znalazłem sposób na efektywne wykorzystanie tego narzędzia do celów osobistych. Ustawiłem go na osiem godzin, aby uniknąć przepracowania. Pomaga mi zarządzać czasem i zachować równowagę między pracą a odpoczynkiem.

Czas to nie pieniądz

Obraz: Domena publiczna

Przewidywanie wyników fabryki jest łatwe, gdy 30 pracowników wycina identyczne śruby na identycznych maszynach. Jeśli 29 z nich wyprodukowałoby po 500 śrub, a jeden tylko 400, prawdopodobnie pojawią się pytania o produktywność tego pracownika. Takie podejście pozwala na skuteczną ocenę pracy każdego pracownika i identyfikację wąskich gardeł w procesie produkcyjnym.

Praca z programistami wymaga indywidualnego podejścia. Każdy specjalista ma swoje własne zadania, różniące się złożonością i objętością. Często nie da się z góry dokładnie określić, ile czasu zajmie ich wykonanie.

Często proces jest przerywany z powodu brakujących wymagań lub konieczności oczekiwania na ukończenie zadań przez innych programistów. Mogą również wystąpić sytuacje wymagające omówienia szczegółów z projektantem. Czynniki te znacznie zwiększają koszty czasowe i utrudniają ocenę wydajności pracy. W rezultacie muszę polegać na intuicyjnych ocenach wydajności.

W większości miejsc pracy, w których pracowałem, koledzy wyrażali zadowolenie z moich ocen. Być może mam po prostu szczęście i pracuję w silnych zespołach.

Z mojego doświadczenia wynika, że ​​tylko dwa razy spotkałem podwładnych o skrajnie niskiej produktywności. Jeden z nich konsekwentnie osiągał najgorsze wyniki i popełniał błędy w swojej pracy. Poproszony o wprowadzenie poprawek, zamiast rozwiązać problem, pojawiały się nowe. Po trzech miesiącach nieefektywnej pracy, bez ukończenia ani jednego zadania, stało się jasne, że współpraca musi się zakończyć.

Drugi pracownik zdawał się radzić sobie z zadaniami, ale wielu podejrzewało, że nie daje z siebie wszystkiego. Jego terminy ciągle się przesuwały. Zawsze zdarzało się coś, co powodowało, że przesuwał termin: obiecywał, że skończy wieczorem, ale potem znowu go przesuwał. Nie mogłem podejść do niego bezpośrednio i zapytać, czy kłamie, bo byłoby to niegrzeczne. Omówiliśmy sytuację z kierownikiem i kolegą. Odkryliśmy, że tam, gdzie inni potrzebowali tylko kilku godzin, on potrzebował dwóch dni. Zawsze jednak znajdował przekonujące wymówki dla opóźnień i szczegółowo demonstrował, co i kiedy robił.

Przez kilka tygodni uważnie obserwowałem jego pracę i doszedłem do wniosku, że był rzeczywiście powolny lub umiejętnie udawał. Mimo to był stale zajęty różnymi zadaniami, rozważał rozwiązania i próbował różnych podejść. Ostatecznie doszliśmy do wniosku, że po prostu miał słabą wydajność i przyjęliśmy to jako pewnik.

Agile jest sprawiedliwy i zrozumiały

W Agile istnieje kilka systemów szacowania, ale najskuteczniejszym jest metodologia punktów historii. System ten pozwala zespołom dokładniej szacować złożoność i zakres prac, co przyczynia się do lepszego zarządzania projektami i zwiększenia produktywności. Punkty historii pomagają zespołom skupić się nie tylko na czasie realizacji zadań, ale także na ich złożoności i ryzyku, co czyni proces rozwoju bardziej elastycznym i adaptacyjnym. Korzystanie z punktów historii ułatwia również planowanie sprintów i pomaga w monitorowaniu postępów projektu.

Pierwszą rzeczą, którą należy wziąć pod uwagę, jest konieczność podzielenia całego zadania na mniejsze komponenty. Im mniejsze zadanie, tym łatwiej je oszacować i tym mniejsze prawdopodobieństwo, że zostanie oszacowane. Druga ważna uwaga dotyczy wykorzystania punktów historii, które są swego rodzaju ekwiwalentem czasowym. Oszacowanie jednego zadania względem drugiego pozwala dokładniej określić jego złożoność i zasoby potrzebne do jego wykonania. Takie podejście usprawnia planowanie i zarządzanie projektem oraz minimalizuje ryzyko związane z niedoszacowaniem lub przeszacowaniem zadań. Załóżmy, że wykonałeś proste zadanie w cztery godziny. Teraz rozważasz kolejne zadanie i zdajesz sobie sprawę, że zajmie ono pięć razy więcej czasu. Na tej podstawie przypisujesz punkty historii i szacujesz tempo pracy zespołu. Prawidłowy przydział zadań i szacowanie czasu mają kluczowe znaczenie dla skutecznego zarządzania projektem i osiągania efektywnych rezultatów. Skuteczne szacowanie punktów historii pomaga zespołom optymalizować przepływy pracy i zwiększać produktywność, co z kolei przyczynia się do pomyślnego ukończenia projektów na czas.

Jeśli oszacowałeś całkowite obciążenie pracą dla dwutygodniowego sprintu na 200 punktów historii, ale Twój zespół ukończył tylko 130 i nadal wykonuje 130 w kolejnych sprintach, oznacza to, że rzeczywista prędkość zespołu wynosi 130 punktów historii na sprint. W takim przypadku wskazane jest ponowne przemyślenie planowania sprintu i wyznaczenie bardziej realistycznych celów, aby zapewnić skuteczną realizację zadań i poprawić produktywność zespołu.

Kadr z filmu „Władca Pierścieni: Drużyna Pierścienia” Pierścienie"

Chociaż te wskaźniki nie są wartościami bezwzględnymi i nie pozwalają nam oceniać indywidualnych osiągnięć, dają one jednak pogląd na wydajność zespołu jako całości. Może się zdarzyć, że cały zespół pracuje aktywnie, ale jedna osoba jest mniej aktywna. W takich przypadkach konieczne staje się zastosowanie różnych metod analizy w celu ustalenia przyczyn tego zjawiska. Nie różni się to niczym od sytuacji, które mogą wystąpić w środowisku biurowym. Nie można po prostu oceniać programistów, jeśli pracują nad różnymi zadaniami. Ta analogia do śrub podkreśla znaczenie uwzględnienia kontekstu pracy każdego członka zespołu.

Dlaczego KPI i OKR nie działają

KPI i OKR nie są już tylko narzędziami do oceny wydajności, ale także mechanizmami nagradzania i wyznaczania celów. Jednak w praktyce jasny i zrozumiały system, który Często brakuje przejrzystego i abstrakcyjnego systemu wskaźników KPI i OKR, który jest dostępny dla wszystkich uczestników. Zamiast tego mamy do czynienia z niejasnymi i abstrakcyjnymi metrykami, opracowanymi bez uwzględnienia rzeczywistych potrzeb firmy. To wprowadza zamieszanie i obniża motywację pracowników, ponieważ nie rozumieją oni kryteriów oceny ich pracy. Ważne jest, aby opracować przejrzysty i logiczny system KPI i OKR, który będzie zrozumiały dla wszystkich i pomoże im osiągnąć cele.

Kiedyś pracowałem w firmie z elastycznym podejściem do KPI. Każdy pracownik miał możliwość wyznaczania sobie dodatkowych celów poza swoimi głównymi obowiązkami. Mogło to obejmować naukę nowej technologii, opracowanie innowacyjnego rozwiązania lub sporządzenie raportu z osiągniętych wyników. Takie podejście przyczyniło się do rozwoju umiejętności zawodowych i zwiększenia ogólnej efektywności zespołu.

Na te zadania nie przeznaczano dodatkowego czasu, pomimo braku zasobów na realizację bieżących obowiązków. Pracownicy musieli stale zmagać się z obciążeniem pracą, aby uniknąć nadgodzin. Główne pytanie pozostało: po co to w ogóle jest potrzebne?

Programiści często stają przed koniecznością rozwoju i opanowywania nowych technologii. Dla początkujących może to być trudne, ponieważ wszystko wokół wydaje się nieznane i niezrozumiałe. Jeśli jednak ma się już doświadczenie w pracy z 15 różnymi technologiami, pojawia się pytanie: czy warto opanowywać 16? Ważne jest, aby pamiętać, że zastosowanie nowej technologii musi być uzasadnione rzeczywistymi potrzebami projektu. Brak możliwości zastosowania nowej technologii może budzić wątpliwości co do jej konieczności. Mądre podejście do szkoleń i rozwoju pomoże Ci uniknąć przeciążenia i skupić się na naprawdę istotnych umiejętnościach.

Jedna firma miała złożony system punktów rozwoju, który wprowadzał zamieszanie wśród pracowników. Jednym z nich było utrzymanie dokumentacji, pomimo obecności dedykowanego analityka odpowiedzialnego za to zadanie. Pracownicy mogli zwrócić się do analityka i spróbować samodzielnie przygotować materiały, ale wydawało się to dziwne: trudno wyobrazić sobie programistę aspirującego do roli analityka. Zazwyczaj jest odwrotnie – analitycy dążą do przejścia do działu rozwoju. W rezultacie zespół tracił czas na tworzenie nieistotnych schematów i diagramów, aby spełnić wymagania, zamiast skupić się na rzeczywistych zadaniach projektu. Podkreśla to wagę jasnej struktury i zrozumienia ról zespołowych dla poprawy efektywności zespołu i osiągania realnych rezultatów.

Pracując na kolei, zetknąłem się z wdrożeniem systemu Toyoty 5S, który obejmuje optymalizację przepływu pracy. Jednym z kluczowych wymagań było, aby pracownicy co miesiąc zgłaszali określoną liczbę własnych propozycji usprawnień. W tym celu opracowano specjalny system rejestrowania tych inicjatyw. Jednak wiele z tych propozycji budziło wątpliwości i wydawało się niepraktycznych. Zamiast skupić się na wykonywaniu przypisanych zadań, pracownicy byli zmuszeni tracić czas na wymyślanie nieefektywnych pomysłów.

Wnioski

Zautomatyzowane systemy oceny efektywności i wydajności programistów mogą nie przynosić oczekiwanych rezultatów. Aby takie systemy były naprawdę użyteczne, konieczne jest ustalenie jasnych i szczegółowych kryteriów pomiaru. Jednak w praktyce nigdy nie spotkałem się z takimi kryteriami, co podważa skuteczność takich narzędzi.

Systemy testowe często są podatne na uproszczenia i nieefektywność. Na przykład, jeśli zdecydujesz się wdrożyć testowanie w swoim projekcie, jest to godne pochwały, a posiadanie metryki, takiej jak procent pokrycia, pomaga śledzić postępy. Na pierwszy rzut oka wystarczy po prostu rozpocząć proces, a jeśli pokrycie wzrośnie, jesteś na dobrej drodze. Istnieje jednak wiele podejść do pisania testów. Możesz szybko utworzyć wiele testów, zwiększając zakres o 20%, ale to nie gwarantuje ich użyteczności. Z drugiej strony, pojedynczy test wysokiej jakości może dać znacznie bardziej wiarygodne wyniki, nawet jeśli tylko nieznacznie zwiększy zakres. Pytanie brzmi, który wybierzesz, jeśli Twoja składka zależy od tych wskaźników? Wysokiej jakości testy są zawsze preferowane, ponieważ zapewniają prawdziwą pewność co do funkcjonalności kodu.

Przerobiony tekst:

Przeczytaj również:

  • Kim jest programista blockchain i jak nim zostać
  • 7 książek o DevOps dla początkujących i zaawansowanych inżynierów
  • Andriej Erszow: ojciec radzieckiej „informatyki” i jeden z pierwszych programistów w ZSRR