Programista programiście nierówny. Jeden zaczyna pracę nad nowym zadaniem od razu, drugi od sesji z białą tablicą i markerami. Jeden woli pracować w samotności, drugi preferuje programowanie w parach (pair programming). Jak jednak poznać takiego, który jest zainteresowany produktem, który współtworzy oraz zależy mu na jego powodzeniu? Oto pięć cech, które charakteryzują Product Engineera.
Umiejętność współpracy
Jak pokazują badania przeprowadzone przez Sedlak&Sedlak umiejętność współpracy w roku 2015 jest drugą spośród dwudziestu najważniejszych kompetencji w branży informatycznej, a w roku 2020 awansuje na pierwsze miejsce. Nie bez przyczyny manifest Agile (Agile Manifesto) promuje ludzi i interakcje ponad procesy i narzędzia. Nie bez powodu zespół scrumowy (Scrum Team) powinien być interdyscyplinarny i samoorganizujący. Nawet programista nie będący członkiem zwinnengo zespołu, nie posiadający umiejętności efektywnej współpracy z innymi, może napotkać na swojej drodze wiele problemów natury “nietechnicznej”.
Zaangażowanie
Sprint planning, grooming meeting czy daily scrum. Bez względu na to, w jakich spotkaniach poruszających tematykę okołoproduktową uczestniczy Product Engineer, aktywnie uczestniczy on w dyskusjach dotyczących rozwijanego produktu, otwarcie wyraża swoje zdanie na temat proponowanych nowych funkcjonalności oraz bez wahania podważa te, które uważa za zbędne.
Ciągły rozwój techniczny
Bycie na bieżąco ze wszystkimi nowościami zwłaszcza w branży IT to zdecydowanie trudne wyzwanie. Jednak ciągłe samodoskonalenie poprzez poznawanie i eksperymentowanie z nowymi rozwiązaniami, czy to w poznanym już, czy całkiem nowym języku programowania, pozwala na postrzeganie napotykanych problemów i możliwych rozwiązań z zupełnie innej perspektywy. Coś co wczoraj zostało określone jako “nie da się”, jutro może okazać się jedynie kwestią zaimportowania i użycia nowej biblioteki.
Chcesz jeszcze lepiej zrozumieć świat IT? Sprawdź nasz Kurs Podstaw IT
Troska o jakość
Niejednokrotnie w zespołach produktowych i deweloperskich pojawia się pytanie: “Kto powinien dbać o jakość tworzonego produktu?”. Odpowiedź jest prosta – każdy na swój sposób. Product Engineer, przywiązujący wagę do jakości rozróżnia, umie pisać i pisze testy na różnych poziomach, od testów jednostkowych poprzez funkcjonalne aż do testów integracyjnych. Jeszcze lepiej kiedy nowy kod tworzy wykorzystując technikę TDD (Test-driven development), polegającą na pisaniu testów pokrywających funkcjonalność, która jeszcze nie została napisana. Wzorowy Product Engineer uruchamia napisane testy automatycznie w środowisku odźwierciedlającym środowisko produkcyjne przy wykorzystaniu jednego z wielu dostępnych rozwiązań do ciągłej integracji (continuous integration) i zawsze znajdzie czas na refaktoryzację istniejącego już kodu 😉 .
Znajomość i stosowanie metodyk Agile
Product Engineer wie, jakie elementy wchodzą w skład, wspomnianego już wcześniej, manifestu Agile. Dostrzega zalety zwinnych metodyk wytwarzania oprogramowania oraz wykorzystuje je w praktyce, ponieważ wie, że produkt, który współtworzy zmienia się z dnia na dzień. W codziennej pracy wykorzystuje dobre praktyki Agile takie jak testy automatyczne, jedno wspólne repozytorium kodu czy zapisywanie wymagań przy wykorzystaniu historyjek użytkownika (user stories).
Podsumowanie
Każdemu członkowi zespołu deweloperskiego powinno zależeć na produkcie, który rozwija.
Już przed złożeniem aplikacji na nowe stanowisko, warto zapoznać się z ofertą bądź produktem rozwijanym przez daną firme w celu weryfikacji, czy wzbudza w nas wystarczające zainteresowanie. Prawdziwe zaangażowanie i zainteresowanie pozwalają na tworzenie lepszych produktów w dobrej atmosferze oraz przekładają się na bardziej efektywną współpracę i większe zadowolenie całego zespołu.