CodeGym /Blog Java /Random-PL /Metodyki tworzenia oprogramowania
Autor
Alexey Yelenevych
Co-Founder at CodeGym

Metodyki tworzenia oprogramowania

Opublikowano w grupie Random-PL
Na wielu rozmowach kwalifikacyjnych prawdopodobnie zostaniesz zapytany o metodologie. To nie jest najważniejsze ani najtrudniejsze pytanie, ale posiadanie ściągawki byłoby miłe. W tym artykule postaramy się przekazać, czym jest metodologia rozwoju i porównać je. Metodologia tworzenia oprogramowania to proces wykorzystywany do rozwijania określonego produktu, to znaczy jest to jeden ze sposobów organizowania rozwoju przez zespół programistów. Istnieje wiele różnych modeli rozwoju, z których każdy definiuje własne podejście. Nie można powiedzieć, że którykolwiek z nich powinien być używany do każdego projektu. Właściwe podejście zależy całkowicie od sytuacji. Zamierzam przyjrzeć się bliżej trzem z nich.

Wodospad

Metodologia wodospadu jest jedną z najstarszych i obejmuje ściśle sekwencyjną implementację: każdy etap musi zostać zakończony, zanim rozpocznie się następny. Innymi słowy przejście do kolejnego etapu oznacza, że ​​praca z poprzedniego etapu jest w 100% zakończona. Rysunek pokazuje, jak to działa: najpierw analizujemy problem (dokumentujemy zadania, omawiamy wyzwania), następnie projektujemy (na tym etapie kształtuje się struktura projektu), a następnie kodujemy i testujemy. Powrót do poprzednich etapów jest zabroniony. Takie podejście jest zalecane w przypadku małych projektów, w których wymagania są znane z góry i mało prawdopodobne, aby uległy zmianie. Metodyki tworzenia oprogramowania - 2Zalety:
  • Kompletna i spójna dokumentacja na każdym etapie
  • Łatwość użycia
  • Stabilne wymagania
  • Budżety i terminy są z góry ustalone
Niedogodności:
  • Duża ilość dokumentacji
  • Niezbyt elastyczny
  • Klient nie widzi wersji demonstracyjnej produktu
  • Brak możliwości cofnięcia się

Scrum

Scrum to metodologia tworzenia oprogramowania, która dzieli cały proces na iteracje. Na koniec każdej interakcji zespół jest gotowy do udostępnienia wersji demonstracyjnej produktu. Na rysunku widać, że zespół przechodzi przez wszystkie etapy rozwoju równolegle, dzięki czemu na końcu każdej iteracji można mieć ukończoną część projektu. Metodyki wytwarzania oprogramowania - 3Postaram się pokrótce wyjaśnić istotę metodologii za pomocą prostych słów, ale terminologii jest dużo. Myślę, że najważniejsze jest zrozumienie istoty. Z doświadczeniem zapamiętasz terminologię. Cały rozwój jest podzielony na sprinty (często 2-3 tygodnie). Są zaległości(lista zadań) na cały okres rozwoju i dla każdego oddzielnego sprintu. Każde zadanie ma swój własny punkt fabularny (stopień trudności). Każdy uczestnik procesu ma swoją rolę:
  • Zespół scrumowy składa się z profesjonalistów (programistów, testerów, projektantów) pracujących nad projektem.
  • Scrum master to osoba, która czuwa nad przestrzeganiem zasad scrum.
  • Właścicielem produktu jest klient.
Ta metodologia opiera się na komunikacji, dlatego odbywa się duża liczba spotkań:
  • Stand-up – Jest to krótkie spotkanie, odbywające się codziennie, w którym biorą udział wszyscy członkowie zespołu. Każdy uczestnik odpowiada na 3 pytania: Co zrobiłem? Co zrobię? A jakie są problemy z blokowaniem?
  • Planowanie spotkania – To spotkanie odbywa się na początku sprintu. Na tym spotkaniu określane są zadania, które muszą być wykonane w kolejnym sprincie.
  • Retrospektywa - To spotkanie odbywa się na koniec sprintu i ma na celu określenie, co zostało zrobione dobrze, a co można poprawić.
Zalety:
  • Klient może zobaczyć wyniki podczas procesu rozwoju
  • Codzienny monitoring procesu deweloperskiego
  • Możliwość wprowadzania zmian w trakcie rozwoju
  • Ustanowiono komunikację ze wszystkimi członkami zespołu
  • Niewielka ilość dokumentacji
Niedogodności:
  • Trudno oszacować robociznę i inne koszty potrzebne do rozwoju
  • Trudno zidentyfikować wąskie gardła przed rozpoczęciem rozwoju
  • Konieczność zaangażowania wszystkich w pracę pozostałych członków zespołu.

Kanban

Kanban to metoda polegająca na wizualizacji postępów w realizacji zadań zespołu. Główną ideą jest zmniejszenie liczby aktualnie wykonywanych zadań (w kolumnie „W toku”). W scrumie zespół koncentruje się na pomyślnym ukończeniu sprintów. W Kanbanie zadanie zajmuje pierwszoplanową pozycję. Jest to dobre dla projektów na etapie konserwacji, gdzie podstawowa funkcjonalność została już zaimplementowana i pozostają minimalne ulepszenia i poprawki błędów. W Kanbanie zadania są przydzielane indywidualnie. Zadanie przechodzi przez wszystkie etapy na tablicy, niezależnie od innych zadań, a po wykonaniu może zostać pokazane klientowi. Tablica Kanban składa się z kolumn, z których każda reprezentuje odrębny proces rozwoju. Niektóre kolumny (na przykład „W toku” ) ograniczyć liczbę zadań, które mogą wykonywać. Pomaga to szybko i łatwo znaleźć obszary problemowe w podziale zadań. Na zdjęciu przykład takiej właśnie tablicy. Liczba kolumn i ich nazwy mogą się różnić. Przedstawię najczęstsze: Metodyki wytwarzania oprogramowania - 4
  • Do zrobienia – lista zadań do wykonania
  • W toku — zadania, nad którymi aktualnie pracujemy
  • Przegląd kodu — zadania, które zostały wykonane i przesłane do przeglądu
  • W trakcie testowania — zadania gotowe do testowania
  • Gotowe — zakończone zadania
Zalety:
  • Łatwość użycia
  • Widoczność (pomaga zlokalizować wąskie gardła, ułatwia zrozumienie)
  • Duże zaangażowanie zespołu w sam proces
  • Bardzo elastyczny rozwój
Niedogodności:
  • Niestabilna lista zadań
  • Trudne do zastosowania w projektach długoterminowych
  • Brak twardych terminów

Ostatnie słowo o metodologiach tworzenia oprogramowania

Osoby, które zajmują lub aspirują do stanowisk kierowniczych, muszą dokładnie rozumieć metodologie tworzenia oprogramowania, ale każdy musi rozumieć przynajmniej podstawy. Metodologie są integralną częścią procesu rozwoju i są wykorzystywane nie tylko w sferze IT. Dziękuję za poświęcenie czasu na przeczytanie mojego artykułu. Mam nadzieję, że było to dla Ciebie pomocne. Starałem się opisać tylko kluczowe punkty tak przystępnie i zwięźle, jak to tylko możliwe. W rezultacie ten artykuł nie jest wyczerpujący. Chętnie poznam Twoją opinię na ten temat i odpowiem na Twoje pytania. Wszystkiego najlepszego!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION