Książka Team Topologies autorstwa Matthew Skelton’a i Manuela Pais’a porusza kwestie organizacji i podziału pracy między zespoły. Wszystko po to, aby wspólna praca stała się jak najbardziej płynna, przewidywalna i przede wszystkim efektywna.
Zespoły i ich interakcje
U podstaw wszystkiego stoi podział na 4 rodzaje zespołów:
- Stream Aligned Team. Odpowiedzialny za główne prace biznesowe, umiejący dowieźć bez przeszkód nowe ficzery E2E.
- Enabling Team. Zespół wspierający inne. Ma za zadanie ułatwić, udrożnić oraz nauczać inne zespoły w celu zoptymalizowania ich pracy. Może być np. odpowiedzialny pokazanie innym zespołom, jak poprawnie wdrożyć proces CICD u siebie.
- Platform Team. Team odpowiedzialny ze stworzenie wygodnej platformy dla pozostałych teamów. Składa się na to infrastruktura, procesy, narzędzia. Przykładowo mogą być odpowiedzialni za proces CICD, połączony z Kubernetesem, oraz narzędziami do monitorowania jak Elastic stack oraz Prometheus czy Grafana. Wszystko zrobione tak, aby było, jak najprostsze w użyciu dla innych zespołów.
- Complicated Subsystem Team. Team stworzony na potrzeby komponentu, którego specyfika powoduje, iż jest zbyt złożony, aby mógł być obsłużony przez standardowe Stream Aligned teamy. Takich zespołów powinno być jak najmniej.
Mając już zespoły, pozostaje kwestia, w jaki sposób powinny one ze sobą współpracować. Zespół nigdy nie działą w próżni. Zawsze są jakieś interakcje.
Tutaj autorzy wyróżnili tylko trzy:
- Współpraca. Dwa zespoły razem pracują nad osiągnięciem jakiegoś celu, np. rozpoznanie nowej technologii.
- X-as-a-Service. Zespół korzysta z API, narzędzi czy też produktu dostarczonego przez inny zespół.
- Facylitacja. Zespół pomaga innemu wdrożyć się w technologię, rozwiązanie czy nowe podejście. Tutaj zespołem facylitującym jest zwykle Enabling Team.
Do czego Ci to w ogóle potrzebne?
No pewnie przyszło Ci takie pytanie do głowy. Przecież jako developer, nie zajmujesz się ludźmi!
Ale pracujesz z ludźmi!
Musisz rozumieć otoczenie swojego zespołu.
- Kto jeszcze pracuje w Twoim otoczeniu?
- Czym się zajmują?
- Czy mogą Ci w czymś pomóc?
- Czy Ty możesz im pomóc?
- Do kogo się odezwać jak potrzebujesz pomocy?
Warto znać mapę Twojej organizacji i wiedzieć, kto w jakiej roli występuje – czyli jakim rodzajem zespołu jest. Zrozumienie tego pozytywnie wpłynie na planowanie Twojej pracy. Stanie się ona bardziej płynna, zmniejszysz zależności, a przynajmniej zyskasz świadomość tych zależności.
Jeżeli Cię to zainteresowało, to polecam przeczytać całą książkę, jest naprawdę ciekawa. Możesz się w nią zaopatrzyć np. TUTAJ