Systemy szerokie i głębokie, czyli jak programista rozwija się w IT PZU
Autor
Ekspert Grupy PZU
Rozwój kompetencji programistycznych może odbywać się w dwóch najważniejszych obszarach. Technologie i narzędzia, czyli m.in. języki programowania, frameworki czy biblioteki oraz techniki i wzorce projektowe (np. strategiczne i taktyczne DDD, BDD, TDD), modelowanie na podstawie wzorców analitycznych i biznesowych, czy techniki skutecznego pozyskiwania wymagań biznesowych (m.in. event storming). Każdy z nas, programistów, intuicyjnie rozwija ten pierwszy obszar. Fun w pracy czerpiemy z możliwości wyżycia się w nowych, nieznanych nam jeszcze, technologiach, których możemy się nauczyć w kolejnych realizowanych przez nas projektach.
Jak już napełnimy swoją skrzynkę narzędziową wybranymi przez nas technologiami i wejdziemy na ekspercki poziom ich znajomości, często zauważamy że różnice pomiędzy technologiami które już znamy, a tymi nowymi są niewielkie, bo wykorzystywane paradygmaty pozostają niezmienne. Wtedy odkrywamy drugi opisany obszar rozwoju, który do tej pory traktowaliśmy jako mniej istotny.
Oczywiście nic nie stoi na przeszkodzie, żeby rozwijać się w obu tych obszarach naraz - nie jest to niestety na rynku podejście powszechne, bo nie sprzyja mu branżowe zjawisko tworzenia ofert pracy pod słowa kluczowe nazw pożądanych technologii. W konsekwencji druga z wymienionych grup kompetencji rozwija i stosuje się nie na podstawie zdobytej twardej wiedzy, ale niejako przy okazji, intuicyjnie lub jedynie z doświadczenia zdobytego przez obserwację kodu w poprzednich projektach, albo zachowań innych członków zespołów.
W PZU mamy sprzyjające warunki do równoległego rozwoju obu opisanych wcześniej obszarów kompetencji, jednak szczególnie sprzyjają one rozwoju w drugim z opisywanych kierunków.
Z uwagi na to, że nasze spółki mają bardzo szeroką ofertę produktów skierowanych do różnych sektorów rynku, dla których wsparcie zapewnia IT PZU, a każdy z tych biznesów ma mocno skomplikowaną domenę, nasze systemy są zarówno szerokie jak i głębokie, czyli składają się z wielu komponentów i realizują przewlekłe w czasie i mocno skomplikowane procesy biznesowe.
Programiści w PZU mają więc świetną okazję, by rozwinąć się w:
- nowoczesnym i skutecznym pozyskiwaniu wymagań biznesowych,
- identyfikowaniu wzorców biznesowych w potrzebach jakie do nas trafiają,
- modelowaniu systemów w oparciu o identyfikację domen
- adekwatnym stosowaniu wzorców projektowych i architektonicznych w celu tworzenia wydajnych oraz gotowych na zmieniające się potrzeby naszych biznesów.