Marketing i Biznes IT Z kim powinien umieć pracować programista?

Z kim powinien umieć pracować programista?

Z kim powinien umieć pracować programista?

Prowadzisz firmę? Dołącz do Founders Mind, najlepszej konferencji dla biznesu w Polsce

Sprawdź szczegóły wydarzenia

Chociaż developer większość swojej pracy, czyli programowania, wykonuje samodzielnie, jego praca jest nierozerwalnie związana z innymi osobami. Programowanie nie jest samym pisaniem kodu, czyli sztuką dla sztuki, lecz elementem większego procesu. Koder jest bowiem najczęściej także częścią zespołu specjalistów, współpracuje również z testerami czy – niekiedy – z samym klientem. Z kim jeszcze pracuje programista (np. w metodyce Scrum)? Na jakie problemy może napotykać w trakcie wykonywania swoich codziennych obowiązków?

Programista + Programiści

Programiści najczęściej pracują w zespołach – jeden developer bowiem nie byłby w stanie napisać całej aplikacji wraz ze wszystkimi funkcjonalnościami lub – w najlepszym przypadku – zajęłoby mu to wiele miesięcy. Z tego powodu programiści pracują najczęściej w od pięcio- do piętnastoosobowych zespołach. Czasami zespoły są międzynarodowe – wyzwaniem może być wtedy zgranie wszystkich i zaplanowanie spotkania o tej samej porze. Najpopularniejszą metodyką pracy zespołów programistycznych jest Scrum. W jego ramach odbywają się codzienne spotkania – DSM-y (daily scrum meetings), podczas których poszczególni członkowie zespołu przedstawiają zespołowi postępy swoich prac.

Programista + Scrum Master

Scrum Master jest osobą z zespołu, która pilnuje utrzymywania metodyki pracy. Dba, by codzienne, krótkie spotkania programistów – DSM-y odbywały się o tej samej porze i nie trwały za długo. Pilnuje także, by wszyscy członkowie zespołu byli na spotkaniach obecni. Dobrze byłoby gdyby miał również wysoko rozwinięte umiejętności miękkie, takie jak sprawność w rozwiązywaniu konfliktów czy zmysł organizacji.

Scrum Master to najczęściej jeden z programistów pracujących w zespole (choć w idealnej sytuacji osoba ta powinna piastować tylko jedno z tych stanowisk). Co warto podkreślić, Scrum Master nie stoi „ponad” zespołem, a raczej pełni funkcję wsparcia – zarówno dla programistów, jak i dla klienta. Rola i zadania Scrum Mastera w dużym stopniu zależą jednak od wewnętrznych ustaleń w firmie – Scrum jest metodyką zwinną, dlatego w różnych firmach to stanowisko pracy może wyglądać w inny sposób.

 

Programista + Kierownik Projektu

Kierownik Projektu m.in. sprawuje pieczę nad zespołem oraz ustala zakres Sprintu (poszczególnych „części” pracy programistów, etapów tworzenia czy ulepszania aplikacji) – w żadnym wypadku nie należy mylić roli Project Managera z rolą Scrum Mastera. To także Project Manager przydziela zadania osobom w zespole czy podejmuje ważne, techniczne decyzje. Scrum Master jest zatem dla niego wsparciem, podlega mu. Warto także dodać, że Kierownik Projektu nie zawsze jest obecny na DSM-ach, ale to do niego trafiają wszelkie problemy. Do jego ról może należeć także rozwiązywanie większych sporów czy chociażby poszukiwanie nowych członków zespołu lub zastępstwa za któregoś z nich.

Programista + Analityk Biznesowy

Programiści tworzą aplikacje na zlecenie klienta. Z tego powodu istotny jest płynny i bieżący kontakt ze zleceniodawcą. Za kontakt z klientem ze strony firmy programistycznej odpowiada albo programista tworzący aplikację (tak jest najczęściej w przypadku developerów freelancerów) lub analityk biznesowy danej firmy. Analityk biznesowy (który może być także Scrum Masterem) to pierwsze ogniwo kontaktu na linii firma programistyczna-klient. Przeprowadza on dokładny wywiad z klientem na temat potrzeb i specyfiki aplikacji, której tworzenie zlecił.

Przykładowo, jeśli klient zleca stworzenie aplikacji do obsługi sklepu internetowego, rolą analityka będzie dokładne wybadanie potrzeb, np. w zakresie funkcjonalności – czy w aplikacji będzie możliwość założenia konta, czy przedmiot będzie można kupić bez jego zakładania, jak długo w koszyku będzie można przechowywać dodane produkty itp. Na podstawie określonych potrzeb, analityk biznesowy tworzy dla programistów specyfikację i – często – przydziela w obrębie zespołu zadania. Z tego powodu ważne jest, by analityk wiedział, jakie są możliwości aplikacji i technologii, w jakiej pracuje zespół – musi on wiedzieć, co jest wykonalne i potem przyporządkować poszczególne zadania konkretnym członkom zespołu. Analityk biznesowy tworzy również dokumentację.

Programista + Klient/Product Owner

Product Owner to przedstawiciel klienta oddelegowany do sprawowania opieki nad danym projektem. W przypadku programisty freelancera, to bezpośrednio programista kontaktuje się z klientem lub wyznaczonym przez niego Właścicielem Projektu. Z kolei w przypadku wieloosobowych firm programistycznych komunikacja na tej linii odbywa się pomiędzy Analitykiem Biznesowym (jako przedstawicielem zespołu programistów i twórcą dokumentacji) oraz klientem bądź Product Ownerem, który go reprezentuje. Właściciel Projektu zarządza Product Backlogiem i bierze udział w procesie planowania produktu – zarówno na początkowych etapach jego tworzenia, jak i później, gdy pojawią się błędy bądź gdy klient chce rozwijać dalej aplikację. Jest on zatem swego rodzaju „łącznikiem” czy – jak mówią niektórzy – „aniołem” projektu.

Programista + Tester

Tester jest ostatnim ogniwem procesu tworzenia aplikacji nim trafi ona do klienta. Zgodnie z dokumentacją i zdefiniowanymi oczekiwaniami oraz funkcjonalnościami aplikacji, sprawdza on jej użyteczność i poprawność. W tym celu korzysta z takich narzędzi, jak np. testy funkcjonalne. Jeżeli odnajdzie błędy, aplikacja wraca do programistów i po wprowadzeniu przez nich poprawek, tester dokonuje kolejnego sprawdzenia czy usterki zostały wyeliminowane (tzw. testy potwierdzające). Istotne są również testy niefunkcjonalne, które sprawdzają, jak działa system. To na przykład testy wydajności, obciążeń czy użyteczności aplikacji.

Czy programista może współpracować z grafikiem?

Artykuł powstał dzięki:

Coders Lab

Łącząc doświadczenie edukacyjne ze znajomością rynku pracy IT, Coders Lab umożliwia szybkie i efektywne zdobycie pożądanych kompetencji związanych z nowymi technologiami. Skupia się się na przekazywaniu praktycznych umiejętności, które w pierwszej kolejności są przydatne u pracodawców.

Wszystkie kursy odbywają się na bazie autorskich materiałów, takich samych niezależnie od miejsca kursu. Dzięki dbałości o jakość kursów oraz uczestnictwie w programie Career Lab, 82% z absolwentów znajduje zatrudnienie w nowym zawodzie w ciągu 3 miesięcy od zakończenia kursu.


Podziel się

Zostaw komentarz

Najnowsze

Powered by: unstudio.pl