(wracam do pisania po dłuższej przerwie, więc jak chcesz mi dać wsparcie napisz dobre słowo)
Świat zielony, dobrych praktyk tworzenia wysokiej jakości kodu, dostarczanie wartości każdego dnia na proda – czy istnieje? w książkach? na konferencjach? na blogach?
Była taka dyskusja na Clubhouse (dev-radio.pl) o Pull-Requestach. Wywiązała się dyskusja, z której wynikło, że świat IT nie jest taki zielony wszędzie, że na przykład praktyki testowania kodu na różny sposób które dają nam pewność, spokój i wbudowaną jakość nie są tak powszechne w każdej organizacji.
I może u Ciebie w projekcie, w organizacji też nie jest zielono. Pamiętasz, że kiedyś próbowaliście usprawnić development, ale ktoś “niedobry” powiedział, że trzeba dostarczać “ficzerki” i nie ma czasu. Nie ma czasu na testy, nie ma czasu na przegląd kodu, nie ma czasu na refactoring, nie ma czasu na zbudowanie dobrego CI a co dopiero mówić o jakimś CD. Wymagania też nie są idealne, więc często dowiadujemy się, że coś nie działa jak zamierzono na prodzie. Biegamy z pustą taczką, bo nie mamy czasu jej załadować. Były kolejne próby, ale znów coś przeszkodziło. Energia w zespole spadła i każde kolejne próby usprawniania były coraz słabsze. Czasami, tylko jak przychodziła nowa osoba, która nie wiedziała, że “nie ma czasu” rwała się do usprawniania, lecz usilnie przekonywana, w końcu też odpuściła. Znasz to? Nie oceniam.
Jedni opuścili organizację, bo stracili nadzieję. Drudzy, którzy pozostali, pchają lub ciągną dalej wózek, w najlepszej wierze, jak najlepiej potrafią. Marzenia o porządnym procesie, czystym kodzie, dobrych testach, daily deployment pozostały w obszarze sci-fi.
Clean code - forbidden here!
//please dont test this one
Obraz przejaskrawiony niczym fabuła Phoenix Project. Lecz, też tak bywa. Może nie w takiej skali, może nie tak silnie. Odwiedzając różne organizacje spotykam podobne sytuacje. Taka jest też rzeczywistość.
Dev can`t to test
W tej dyskusju na CH pojawił się taki głos, że firma zamiast “pozwolić” ludziom pracować godnie, zatrudnia konsultantów. Po co? Aby “naprawili” sytuację, z czego często zespół może nie być zbyt zadowolony. Przecież od zawsze chcieli pracować według rzemiosła. Całkowicie rozumiem tę frustrację.
Można się zastanowić, dlaczego zespół nie był w stanie przekonać dyrektora czy kierownika, aby zmienić podejście do pracy, dlaczego ten Product Owner nie pozwolił pisać testów jednostkowych?
Na takie “niepozwalanie” mam zawsze odpowiedź. Czy my siedząc na fotelu dentystycznym, mówimy: “nie mam czasu, szybciej będzie młoteczkiem tego zęba ciachnąć, byleby był wyrwany, najwyżej poprawimy później”. Jak idziemy do specjalisty który wie, na czym polega jego rzemiosło to domyślnie mu ufamy, a przynajmniej powinniśmy. Oczywiście nie tyczy się to mechaników, bo wiadomo, że mechanikom nie UFA się 😅
Tutaj można by zacząć filozoficzną dyskusję. Najsmutniejszym powodem, może być brak zaufania do swoich ludzi. Innym – zwyczajny brak skutecznej komunikacji góra-dół-góra. Wygoda, rutyna, słaba atmosfera, strach, przytłaczający dług technologiczny, kompetencje, samo podcinające hasła w stylu “Józek próbował w 94 roku, ale prod wybuchł i od tej pory nie próbujemy”. Powodów pewnie znacie więcej, jeżeli zostawisz w komentarzu, będzie mi bardzo miło.
Jego słuchają
I przychodzi. Oto on. Konsultant. Konsultant – Kozak. Będzie naprawiał. Siada przy swoim PC, naokoło zbiera się heheszkujący tłum, który patrzy z pogardą. Oczywiście Kozak, chwilę wcześniej odwiedził dyrektorów na ostatnim piętrze ustalając wysokość wszystkich wskaźników do osiągnięcia. Wyciąga oscyloskop, podłącza, na ekranie pojawiają się jakieś logarytmiczne kształty. Wstaje, idzie do serwerowni. Przełącza wajchę. Wraca. Siada i czeka.
Zapalają się światła, a na open-space wlatuje biały jednorożec.
I teraz wszystkim głupio. Bo jednak się dało.
No dobrze, troszkę popłynąłem 🙂 rzeczywistość nie jest taka kolorowa.
Wracając do tematu. Firma zatrudnia konsultanta, konsultantów, firmę consultingową. Wydaje mi się, że na miejscu osoby która próbowała naprawiać świat od dołu, ale poległa na osobach decyzyjnych, mógłbym odczuwać jakiegoś rodzaju żal czy frustrację. Tylko kogo by interesowało jak się czuję? Czy to byłoby najistotniejsze? Skoro teraz przychodzi ktoś kto chce pomóc i ma dobre intencje czy nie powinienem z nim zawiązać komitywy, aby osiągnąć tak ważne dla mnie cele? To jest mój wybór, mogę też się zamknąć w sobie i obrazić.
A może konsultant jest po prostu dobry w argumentacji, komunikacji i przekonywaniu do kierunków usprawniania organizacji i projektów? To jest ta osoba która potrafi połączyć świat techniczny z oczekiwaniami kierowników i dyrektorów. W najlepszej wersji jest też NIEZALEŻNA, niepowiązana w żadną politykę, przyjmuje pozycję obserwatora co daje świeżą perspektywę.
Dużą wartością może być szeroka wiedza i doświadczenie konsultanta. Kozak był już w X organizacjach, zrobił Y projektów, zetknął się z N problemami. Widział dobro, widział zuo.
Konsultant nie wie na pewno wszystkiego, ale nawet jak nie wie to dowie się szybko i podrzuci alternatywy.
Może warto dać mu szansę? Jesteście w jednej drużynie, chcecie naprawić kawałek świata.
Nie koniec
Jestem konsultantem. Przyśpieszam projekty i wbudowuję możliwie najwyższą jakość w nie. Rozmawiam z biznesem, kierownikami i zespołami. Siadam z zespołem do jednej łódki i stawiamy żagle. Nie wszystko idzie zawsze gładko, ale są efekty jak się przyłożymy. Wnoszę nadzieję, dobrą energię, wiarę, że możemy wspólnie coś zmienić. Wspieram i jestem z teamem. Nie narzucam rozwiązań, chyba że ktoś bardzo prosi. Daję alternatywy. Dzielę się doświadczeniem i wiedzą. Dyskutujemy konstruktywnie i podejmujemy działania. Opowiadam o swojej perspektywie i co widzę, dzięki czemu zespół czy organizacja mogą zobaczyć się w lustrze. Może zabrzmi to górnolotnie, ale czasami przypomina to pewien rodzaj terapii. Jak trzeba to siadam do kodu 🙂
Nie maluję trawy na zielono. Staram się spulchnić ziemię, odżywić i popodlewać. Jak trzeba to, wyplewić i zasiać na nowo.
Nie tylko zgłaszają się do mnie organizacje które już są świadome swoich problemów. Zdarzają się klienci, którzy chcą po prostu dostać perspektywę, jakoś upozycjonować swoje praktyki na tle rynku.
Wszyscy jesteśmy konsultantami jeżeli szukamy wiedzy na zewnątrz, na konferencjach, książkach, blogach i szkoleniach – i to jest cool. Może czasami zabraknąć tego czynnika psychologicznego lub komunikacyjnego, aby przekonać zespół. A może zwykłego wsparcia. Wprowadzanie zmian to zawsze proces w którym potrzebujemy agentów zmiany. Ty też możesz nim być. Jeżeli są trudności to dobry konsultant pomoże otwierać drzwi.
Wiem, że duże firmy konsultingowe są często źle kojarzone. Widziałem wdrożenia procesów w dużych organizacjach po wielomilionowych projektach, ale to temat na inną dyskusję.