Przeczytaj wersję webową.

9 praktyk inżynierskich najlepszych firm produktowych

2023-05-10

Cześć!

W ramach newslettera chcę uruchomić cykl artykułów, pod nazwą:

9 praktyk inżynierskich najlepszych firm produktowych

A więc w dzisiaj mam dla Ciebie:

Miłego czytania 😀


9 inżynierskich praktyk

Planuję co 2 tygodnie dzielić się z Tobą sprawdzonymi praktykami inżynierskimi.

Nie będzie to sucha teoria. Całość chcę przedstawić w formie procesu jak wdrożyć to w twojej firmie. Dodatkowo chcę pokazać typowe problemy, które mogą stanąć na twojej drodze.

Dostaniesz 9 konkretnych action pointów dla Ciebie - aby tworzyć bardziej efektywną organizację produktową.

Lista przyszłych artykułów:

  1. Postmortem - nauka na błędach
  2. Projektowanie organizacji
  3. Cele -> Szanse -> Rozwiązania
  4. Inżynierski wkład w roadmapę produktową
  5. Drivery biznesowe i architektoniczne
  6. Automatyzacja - wdrożenia i jakość
  7. Niezawodność i obserwowalność
  8. Analiza wyników funkcjonalności
  9. DX - Developer Experience

Poniżej opisałem je w skrócie, byś wiedział(a) czego oczekiwać. 😍

1. Postmortem - nauka na błędach

Można się pomylić raz, ale głupio jest w kółko popełniać te same błędy 😬

Postmortem to kultura analizowania i wyciągania wniosków z problemów (fuck-upów?), które wydarzyły się w ramach pracy systemu, bądź wdrażania funkcjonalności. Pozwala to na identyfikację błędów i przyczyn ich powstania. A także na wdrażanie długofalowych remediów.

Opowiem tutaj o:

  • przygotowaniu się do pierwszego postmortem
  • przeprowadzeniu takiego spotkania
  • pracy z akcjami z postmortem
  • jak dbać o kulturę nauki na błędach

2. Projektowanie organizacji

Prawo Conway’a mówi, że struktura organizacji wpływa na tworzone rozwiązanie. Wobec czego można powiedzieć, HR planuje systemy 😅

Dlatego ważne jest świadome zaplanowanie struktury organizacji, tak aby wspierała docelową architekturę. Należy po inżyniersku dostosować strukturę zespołów do dziedziny biznesowej.

Opowiem tutaj o:

  • problemach zespołów skupionych na swoich dziedzinach
  • podziale domeny biznesowej na mniejsze części
  • topologiach zespołów na bazie książki Team Topologies
  • przygotowania i wdrażania zmian organizacyjnych
Nie ma Cię w newsletterze?
Zapisz się na radekmaziarka.pl

3. Cele -> Szanse -> Rozwiązania

Firmy produktowe rzadko zaczynają pracę od skupienia na funkcjonalnościach. Raczej określają jakie cele chcą osiągnąć. To prowadzi do wypracowania szans, które następnie zamieniają się w konkretne rozwiązania.

Dzięki temu zespoły produktowe mogą skupić się na najbardziej istotnych zagadnieniach. Prowadzi do efektywniejszego wykorzystania czasu i budowy funkcjonalności, które przynoszą największą wartość dla klientów. 🤑

Opowiem tutaj o:

  • problemach rozpoczynania od strony funkcjonalności
  • różnicy pomiędzy celami, szansami, a rozwiązaniami
  • jak przeprowadzać spotkania generujące pomysły
  • wdrożeniu w proces zespołu produktowego

4. Inżynierski wkład w roadmapę produktową

Jako inżynierowie nie powinniśmy być bierni w ramach dyskusji o roadmapie produktu. Nie chcemy na początku unikać udziału, a później przewracać stolików, bo ktoś nie wziął naszych argumentów pod uwagę.

(╯°□°)╯︵ ┻━┻

Inżynierski wkład w roadmapę produktową polega na aktywnym udziale liderów inżynierskich w procesie planowania i wyznaczania celów produktu. Dzięki temu osiągamy równowagę pomiędzy kwestiami produktowymi, designerskimi a inżynierskimi w produkcie.

Opowiem tutaj o:

  • czym jest roadmapa i jak różni się od planu
  • rodzaju celów i strategicznych zadań inżynierskich
  • wypracowywaniu miar dla kwestii inżynierskich
  • łączeniu tego wszystkiego w proces zespołu

5. Drivery biznesowe i architektoniczne

Jak nie wiemy pod co optymalizować , to pracownicy optymalizują go pod to, co im akurat pasuje. I system kieruje się donikąd. 🛣️

Określenie kluczowych aspektów biznesowych i technicznych, pozwala zespołom lepiej zrozumieć potrzeby klientów, oraz wyznaczyć optymalne rozwiązania. Zespół skupia się na nich w codziennej pracy.

Opowiem tutaj o:

  • podziale na drivery biznesowe i architektoniczne
  • sposobach na określanie driverów, jakie pytania zadawać
  • głównych błędach, jakie popełniane są przez inżynierów
  • ocenie propozycji rozwiązań i wdrożeń za pomocą driverów

6. Automatyzacja - wdrożenia i jakość

Autorzy książki Accelerate w swoich badaniach udowodnili, że częstotliwość wdrożeń ma bezpośredni wpływ na efektywność samej organizacji. Jednak na czym się skupić, aby wdrażać nawet kilka razy dziennie?

Automatyzować do bólu. 🤖

Dzięki automatyzacji zespoły produktowe mogą skupić się na tworzeniu wartościowych funkcjonalności, jednocześnie zmniejszając ryzyko błędów i niezgodności. W efekcie, produkty są dostarczane szybciej i z wyższą jakością.

Opowiem tutaj o:

  • podstawach teoretycznych wpływu automatyzacji na organizację
  • praktykach Continuous Integration i Delivery
  • czym jest automatyzacja zapewnienia jakości
  • jak zwiększenie jakości nie oznacza spadku tempa wdrażania

7. Niezawodność i obserwowalność

Nie sztuką jest wypchnąć funkcjonalność na produkcję, a później o niej zapomnieć. Sztuką jest utrzymywać niezawodny system, który opiera się problemom i awariom. A także obserwować jak funkcje się zachowują i przewidywać potencjalne problemy.

Dzięki temu więcej czasu spędzamy na pracę dowożącą wartość, a mniej czasu na pracę z niekończącą się listą awarii i bugów. 🐛

Opowiem tutaj o:

  • myśleniu technicznym i biznesowym o niezawodności i obserwowalności
  • podejściu DevOps i Site Reliability Engineering
  • praktykach technicznych na zwiększenie niezawodności i obserwowalności systemu
  • współpracy z działami biznesowymi nad kwestiami technicznymi

8. Analiza wyników funkcjonalności

Funkcjonalność przynosi wartość dopiero na produkcji. Ale może również wcale jej nie przynosić. Co wtedy? 🤔

Gdy nie monitorujemy wartości dla funkcjonalności to dowiemy się o tym zdecydowanie za późno. Dlatego firmy produktowe po inżyniersku mierzą wartość jaką przynoszą poszczególne funkcjonalności.

Opowiem tutaj o:

  • podłączaniu funkcjonalności pod cele produktowe
  • praktykach pracy nad funkcjonalnością - jakie akcje biznesowe mierzyć
  • definiowaniu wskaźników i metryk, oraz kosztów
  • usuwaniu funkcjonalności, gdy nie przynosi zysków

9. DX - Developer Experience

Na pewno masz takie sytuacje, kiedy chcesz rzucić klawiaturą w monitor. Buildy działają tragicznie wolno. Środowisko testowe znowu leży. Nie ma dokumentacji na używane komponenty. Tracisz ogromną ilość czasu na pierdoły. ⌛

Developer Experience (DX) odnosi się do ogólnego doświadczenia inżynierów podczas pracy z narzędziami, technologiami i procesami. Skupia się na poprawie efektywności pracy developerów. Obejmuje aspekty takie jak użyteczność, wydajność, dostępność dokumentacji oraz jakość wsparcia dla narzędzi i technologii.

W efekcie, zespoły mogą skupić się na dostarczaniu wartościowych produktów i usług.

Opowiem tutaj o:

  • co mierzyć, by móc poprawiać środowisko pracy developerskiej
  • narzędziach i platformach wykorzystywanych w branży
  • praktykach codziennej pracy zespołowej
  • jak przekonać kierownictwo, że to się opłaca

Podsumowanie

Jak widzisz powyżej, temat jest bardzo szeroki. Jednocześnie poruszymy dane tematy bardzo głęboko.

Jeśli masz coś ciekawego do dodania w danym temacie - napisz do mnie w odpowiedzi na tego maila. 📪

Z chęcią porozmawiam o twoich doświadczeniach, mogę również zacytować twoją wypowiedź w newsletterze.



📺 Prezentacja o transakcjach rozproszonych - nagranie

W ramach konferencji Boiling Frogs wystąpiłem z prezentacją:

“Jak przestałem się martwić i pokochałem transakcje rozproszone”

Opowiadam tam o:

  • 8 błędnych założeniach systemów rozproszonych
  • Problemach, jakie te błędne założenia powodują
  • Praktykach, jak sobie radzić z tymi problemami
  • Tematy to np. drivery architektoniczne, outbox pattern, saga, circuit breaker…

Link do nagrania

Organizatorzy proszą, by nie publikować tego linka publicznie, o co was również proszę.



🪓 Modularyzacja z Event Storming - nagranie

W ramach Architecture Weekly Oskara Dudycza wystąpiłem z mini-warsztatem:

“Modularization with Event Storming Process Level”

Opowiadam tam o:

  • problemach z modularyzacją przez kroki procesu
  • dodatkowych heurystykach modularyzacji
  • jak definiować Bounded Context
  • wzorcach obsługi wizualizacji danych pomiędzy modułami

Link do nagrania

Oskar prosi, by nie publikować tego linka publicznie, o co was również proszę.



⚒️ Szkolenie Tech Lead - propozycja

Na kanale Discord Orders of Dev mój mentee Mateusz Kubaszek zaczął zbierać osoby na otwarte szkolenie Tech Lead. I w ciągu tygodnia uzbierał komplet 8-miu osób. Wobec czego nie byłem w stanie nawet do Ciebie napisać, że takie szkolenie jest organizowane 😅

Dlatego chciałem się Ciebie zapytać czy jesteś zainteresowany(a) kolejną edycją takiego szkolenia:

  • 5 sesji x 4 godziny:
    • Drivery biznesowe i architektoniczne
    • Projektowanie systemów – Model C4
    • Projektowanie systemów - Event Storming Process Level
    • Ocena projektu i rozwiązania + określanie ryzyk
    • Definiowanie planu dostarczania
  • Dokładniejszy opis - link
  • Mała grupa - maksymalnie 8 osób.
  • Start - początek września, spotkania co tydzień.
  • Koszt - 2600 zł netto + VAT.

Jeśli tak, to daj znać w odpowiedzi na tego maila!


📧 Prześlij dalej

Dzięki, że doczytałeś(aś) do końca. 😊

Wszystkie poprzednie wydania newslettera są dostępne tutaj.

Jeśli spodobał Ci się mój newsletter, prześlij go proszę osobom, którym też mógłby się spodobać. Z góry dziękuję.

A jeśli nie jesteś jeszcze w newsletterze, to zachęcam do zapisania się.

Polecam się na przyszłość!
Radek Maziarka

Radek Maziarka
"Inżynierskie podejście do produktów cyfrowych."

P.S. Co myślisz o tym newsletterze? Odpisz :)