Blog Dla Młodszych Programistów C#/.NET

Zastanawiałeś się kiedyś w jaki sposób powstają kreatywne rozwiązania technologiczne? Nie ciekawiło Cię może, jak wygląda proces tworzenia, wdrażania i doskonalenia sztampowych produktów cyfrowych w największych światowych korporacjach? Kupując nowego smartfona zwykle kierujesz się takimi kryteriami, jak: sprawdzona jakość, wysoka niezawodność, a także renomowana marka. Decydując się na produkt spełniający wszystkie Twe oczekiwania jesteś przekonany, że dokonałeś możliwie najlepszego wyboru.

W jaki jednak sposób nadawany jest ostateczny charakter produktu, który czyni go stale atrakcyjnym w oczach odbiorców, pomimo zmieniających się warunków? Za sukcesem wielu produktów cyfrowych stoi cała rzesza programistów. Nie jest to takie proste, aby stworzyć produkt, który spełni wszelkie możliwe oczekiwania konsumentów.

Istnieją jednak sposoby, które czynią pracę programistów bardziej efektywną i skoncentrowaną na celu, dzięki czemu światowej sławy marki co rusz to wypuszczają na rynek nowe linie produktów maksymalnie dopasowane do oczekiwań konsumentów. Jak więc tworzone są takie produkty?

Scrum w Pigułce – Wprowadzenie Do Scrum w 10 Minut


Potrzeba efektywnej pracy zespołowej


Praca programisty to nie lada wyzwanie. Często za wieloma sukcesami programistycznymi stoją wielogodzinne analizy i skomplikowane działania developerskie. Za realizację złożonych projektów komercyjnych najczęściej odpowiedzialne są całe zespoły developerskie. Aby móc doprowadzić dany projekt do jak najlepszego efektu końcowego, najczęściej konieczne jest stosowanie skutecznych narzędzi projektowych, umożliwiających efektywne dzielenie obowiązków między członkami zespołu a tym samym sprawną realizację poszczególnych zadań.

Niestety bez zastosowania sprawdzonych metod zarządczych realizacja złożonych projektów programistycznych jest bardzo trudna i pracochłonna, ponieważ wymaga wieloetapowego procesu analitycznego. Na osobie odpowiedzialnej za realizację projektu często spoczywa trudne zadanie związane z rozeznaniem umiejętności zaangażowanych w projekt osób. Aby móc jak najlepiej zrealizować projekt, niezbędne jest ułożenie skutecznego planu działania w oparciu o sprawdzone metodyki projektowe i odpowiednie oddelegowanie zadań.


Czym jest Scrum?


Jednym z często praktykowanych sposobów w procesie tworzenia nowych rozwiązań technologicznych w branży IT jest Scrum. Jest to swego rodzaju metodyka projektowa określająca wszelkiego rodzaju ramy postępowania, pozwalające na adaptacyjne rozwiązanie złożonych problemów, w taki sposób, by móc zarówno efektywnie, jak i kreatywnie tworzyć produkty o jak najwyższej jakości i wartości.


Po co to wszystko?


Scrum znajduje szczególne zastosowanie w zespołowych pracach programistycznych. Jego wykorzystanie pozwala usystematyzować codzienną pracę zespołów deweloperskich. Wszelkie zasady i wnioski wynikające z przyjęcia założeń scrumowych są w stanie doprowadzić najbardziej nieoczywisty projekt do zamierzonego rezultatu.

W praktyce taka metodyka projektowa pozwala sprawne tworzyć oprogramowania w taki sposób, aby móc stopniowo ukazywać klientowi kolejne postępy działań, dając szansę na bieżące wprowadzenie zmian w projekcie. Dzięki takiemu rozwiązaniu możliwe jest przyspieszenie prac i skuteczne wdrożenie proponowanego rozwiązania, a w razie potrzeby zmiana kierunku rozwoju projektu, poprzez szybkie reagowanie.


Główne założenia Scrumu


Ramy postępowania przyjęte w scrumowym podejściu do projektu są dość heurystyczne. Zakładają one bowiem proces ciągłego uczenia i przystosowywania się do zmiennych czynników. Jako punkt wyjścia określają, iż zespół projektowy nie posiada kompleksowej wiedzy, a jedynie stopniowo, w miarę zdobywania doświadczenia będzie mógł się rozwijać, czyniąc projekt coraz lepszym.

Dzięki takiemu założeniu członkowie zespołu są w stanie poradzić sobie z występowaniem zmiennych warunków oraz przekształcaniem wymagań użytkowników, a także koniecznością przeobrażenia dotychczasowych priorytetów i założeń projektowych.


Idea Scrumu


Sukces projektu opartego o metodykę scrumową warunkuje przejście przez kolejno następujące po sobie etapy. Mimo ustrukturyzowanej formy i sztywno złożonej kolejności działań podejście scrumowe daje możliwość wielu modyfikacji i zastosowania bardziej elastycznego rozwiązania.

Tu kluczowa jest przede wszystkim komunikacja w zespole, zaangażowanie oraz chęć samodoskonalenia każdego z członków – reszta jest kwestią dowolną. Ideą Scrumu jest tworzenie samoorganizujących się zespołów, które same wybierają idealną dla siebie drogę do rozwiązania konkretnego problemu, dzięki czemu wzmacniana jest kreatywność, elastyczność i produktywność jego członków.


Projekt Owner


Pośród członków zespołu scrumowego występują pewne ważne role. Jedną z nich jest rola Projekt Ownera. Takim mianem określamy osobę, która wskazuje kierunek działania pozostałych członków zespołu developerskiego.

To ona pełni rolę reprezentanta klienta, ponieważ znając jego wymagania może dbać, aby były one jak najlepiej wypełniane. Mając pewne wyobrażenie na temat produktu, Projekt Owner może łatwiej określić co jest najważniejsze w pracy zespołu, zarządzając zadaniami i ustalając priorytety istotne w kontekście pracy całego zespołu. To on odpowiada za maksymalizację wartości tworzonego produktu, dlatego wszystkie osoby muszą respektować jego decyzje.


Scrum Master


Kolejnym ważnym członkiem zespołu jest Scrum Master. To on skupia się na planowaniu działania, obserwując i wskazując pozostałym członkom sposób postępowania, pozwalający uczynić ich działania bardziej efektywnymi. W rezultacie zastosowania takich działań możliwe jest osiągniecie zamierzonych celów biznesowych i stworzenie produktu najwyższej jakości, który będzie odpowiadał wszelkim potrzebom konsumenta.

Scrum Master jest więc swego rodzaju przywódcą, wspierającym nie tylko poszczególnych członków zespołu, lecz także Projekt Ownera i całą organizację, dbającym o zrozumienie przez każdego członka przebiegu poszczególnych etapów.


Development Team


Metodyka Scrum opiera się przede wszystkim na pracy zespołowej. Dzięki połączeniu wspólnych sił wszystkich członków, zespół developerski jest w stanie nabyć niezbędne umiejętności i zasoby do stworzenia konkretnego produktu – oprogramowania lub aplikacji.

Łącząc się w zespół, poszczególne osoby dają wszystko co najlepsze mają, dzieląc się swymi umiejętnościami i spostrzeżeniami z innymi i wzajemnie uzupełniając swoje kompetencje, umożliwiając przeprowadzenie każdego z etapów. Zwyczajowo zespół developerski tworzy od 3 do 9 specjalistów. W skład takiego zespołu wchodzą zarówno analitycy, programiści, jak i testerzy, jednak na tym poziomie przestają oni być łączeni ściśle ze swoimi specjalnościami, zaczynają być jednym zespołem projektowym.

Każdy z nich stanowi ważne ogniwo całego zespołu i jednocześnie przyczynia się do osiągnięcia założonych celów. Wszyscy developerzy odpowiedzialni są za rozwój projektu, dlatego każdemu z nich zależy, aby wnieść ważną część do działania zespołu, stanowiąc potężną siłę napędową w rozwiązywaniu danego zagadnienia, tworząc zgrany Development Team.

Suma doświadczeń i umiejętności wszystkich członków czyni zespół niezależnym i samowystarczalnym. Zespołowi Deweloperskiemu nie potrzeba żadnego wsparcia z zewnątrz, aby osiągnąć zamierzone rezultaty. Został on bowiem powołany do samodzielnej organizacji swej pracy i zarządzania nią. Odpowiedzialność za przeprowadzenie całego procesu w równym stopniu spoczywa na każdym z członków – tu nie ma lepszych i gorszych, tu wszyscy są jednakowo ważni i równi.


Zdarzenia i artefakty w Scrumie


Proces działania Zespołów Developerskich oparty o metodykę Scrum charakteryzuje się usystematyzowaną i jasno określoną kolejnością następujących po sobie zdarzeń. Najpierw wszystko co jest do zrobienia umieszczane jest na jednej liście, tzw. Product Backlogu stworzonym w oparciu o wymagania klienta, które udało się ustalić Product Ownerowi podczas konsultacji z klientem.

Product Backlog jest swoistym rejestrem wymagań klienta dotyczącym produktu – usystematyzowanym od najważniejszych do mniej ważnych. Tak stworzona lista jest stale i na bieżąco aktualizowana przez Project Ownera.

Następnie planowany jest pewien niewielki fragment projektu zwany Sprintem. Jeden Sprint (tzw. iteracja) trwa zwykle od 3 do 4 tygodni. Podczas realizacji tej części projektu tworzony jest krótki fragment programu, który następnie jest omawiany.

Kolejnym etapem jest spotkanie zainicjowane pod nazwą tzw. Sprint Planning Meetingu, podczas którego planowane są kolejne prace w następnym Sprincie. Uzgodniony plan działania trafia do Sprint Backlogu, czyli rejestru realizacji fragmentu Product Backlogu opracowywanego w danym Sprincie. W każdym momencie zarówno Product Backlog, jak i Sprint Backlog pozostają dostępne są do wglądu każdego zainteresowanego.

Następnie wdrażane są kolejne działania wynikające z realizacji Product Backlogu i Sprint Backlogu, a każdego dnia zespół spotyka się podczas krótkich spotkań (około 15 minutowych). Są to tzw. Daily Scrumy, podczas których sprawdza się bieżące postępy i na tej omawia zaplanowane zadania na kolejny dzień.

W końcu nadchodzi czas na Sprint Review, czyli spotkanie z klientem, podczas którego zespół deweloperski przedstawia efekty swoich prac i w zależności od tego z jaką opinią klienta na temat produktu się spotka, podejmuje decyzje dotyczące ewentualnych dalszych prac.

Po spotkaniu z klientem następuje tzw. Sprint Retrospective, czyli spotkanie całego zespołu, mające na celu przeprowadzenie analiz dokonanych prac i zaproponowanie ewentualnych usprawnień. Taki proces następujących po sobie zdarzeń jest przeprowadzany tak długo, aż do momentu uzyskania satysfakcjonującego dla wszystkich stron efektu.

Każdy zakończony element realizacji Product Backlogu nazywany jest przyrostem. Dopiero zrealizowanie wszystkich planowanych przyrostów pozwala doprowadzić dany projekt do końca.


Podsumowanie


Jak widać, Scrum świetnie sprawdza się w codziennych projektach IT. Opracowanie metodyki działań opartej na Scrumie umożliwia tworzenie zaawansowanych systemów dedykowanych oraz przeprowadzenie prac związanych z dostosowaniem różnorodnych modułów oraz szeroko rozumianą integracją programów.

Zastosowanie tej metodyki pozwala nie tylko zgrać zespół odpowiedzialny za wykonanie danego projektu komercyjnego, lecz także zapewnić lepszą jego efektywność, z racji możliwości bieżącego monitorowania postępów działania przez klienta, który jest w stanie na bieżąco zatwierdzić lub skorygować poszczególne części projektu. Dzięki takiemu rozwiązaniu powstają w pełni dopasowane do potrzeb biznesowych rozwiązania technologiczne.

Scrum jest tak elastycznym narzędziem, że pozwala sprawnie odpowiadać na potrzeby klienta, jednocześnie pozostawiając możliwość przyszłego rozwijania realizowanego w ten sposób projektu.

To wszystkie na dzisiaj. Jeżeli taki artykuł Ci się spodobał, to koniecznie dołącz do mojej społecznościdarmowe zapisy, gdzie będziesz również miał dostęp do dodatkowych materiałów i przede wszystkim bonusów. Do zobaczenia w kolejnym artykule.

Poprzedni artykuł - Syndrom Oszusta w Programowaniu – Coraz Częściej Spotykany Problem Wśród Programistów
Następny artykuł - Programista Na Rozmowie Kwalifikacyjnej – Jakie Własne Pytania Zadawać Rekruterom?
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
Programista C#/.NET. Specjalizuje się w ASP.NET Core, ASP.NET MVC, ASP.NET Web API, Blazor, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2022 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Polityka prywatności. Design by Kazimierz Szpin