Zwinne tworzenie oprogramowania 101

Autor: Judy Howell
Data Utworzenia: 26 Lipiec 2021
Data Aktualizacji: 23 Czerwiec 2024
Anonim
What is Agile?
Wideo: What is Agile?

Zawartość


Na wynos:

Ta metoda tworzenia oprogramowania zachęca do współpracy i elastyczności, aby pomóc w dostarczeniu produktu wysokiej jakości.

W branży inżynierii oprogramowania i rozwoju aplikacji wokół Agile pojawiło się wiele szumu. Zwinność nie jest koncepcją, ale sposobem myślenia. Jak sama nazwa wskazuje, koncentruje się na elastyczności i dynamice. Ta metodologia usuwa również izolację między fazami tworzenia oprogramowania i zachęca zespół programistów do współpracy z analitykami jakości. Podkreśla także zaangażowanie klientów w opracowywanie, budowanie i dostarczanie produktu wysokiej jakości. Tutaj dobrze przyjrzyj się Agile, jak to działa i kilka najlepszych praktyk dla tej popularnej metody tworzenia oprogramowania.

Krótki opis cyklu życia oprogramowania

Cykl życia oprogramowania (SDLC) to proces tworzenia oprogramowania lub modyfikowania istniejących struktur w celu rozwiązania określonego problemu. Obejmuje różne etapy, które są wykonywane w logicznej kolejności. W tradycyjnych modelach SDLC są to kroki, które są wykonywane jeden po drugim i zwykle są wykonywane osobno:


  1. Wymagania zbierane od klientów
  2. Analiza systemu i wykonalności
  3. Projektowanie i modelowanie
  4. Kodowanie lub implementacja
  5. Testowanie
  6. Wdrożenie i dostawa
  7. Wnioski o konserwację i zmianę

W typowym cyklu tworzenia oprogramowania faktyczni użytkownicy lub klienci biorą udział w procesie gromadzenia wymagań, a następnie podczas testów beta. Jednak problemem tego tradycyjnego modelu jest to, że część konserwacyjna cyklu staje się trudną i dość kosztowną sprawą. Wiele razy w systemie nie ma możliwości wprowadzania ulepszeń ani zmian. W najgorszym przypadku oprogramowanie, które zostało zaprojektowane lub opracowane, nie jest zgodne z rzeczywistymi specyfikacjami i oczekiwaniami klientów, co oznacza, że ​​zespół programistów może być zmuszony rozpocząć cały proces od nowa.

Dlaczego różne zwinne rozwiązania

Najczęstsze tradycyjne modele SDLC - model wodospadu, model szybkiego stosowania, model iteracyjny, model spiralny itp. - mają własny zestaw zalet i wad. Minęły wieki, zanim ludzie mogli naprawdę przeanalizować, jak realistyczne były te modele. Idealnie pasują do idealnych scenariuszy, ale nie zawsze były praktyczne, jeśli chodzi o rzeczywiste zastosowania. W rezultacie zespoły programistów stanęły przed wieloma wyzwaniami. Niektóre ograniczenia konwencjonalnych modeli SDLC obejmują:


  • Nie pozwalają one na zmianę wymagań na późniejszych etapach, ponieważ są one zamrożone w dokumencie specyfikacji wymagań oprogramowania. W niektórych przypadkach oczekiwania użytkowników są niepotwierdzone lub źle zrozumiane.
  • Użytkownicy końcowi nie zobaczą systemu, dopóki nie zostanie ukończony. Daje to bardzo mało możliwości dokonywania sugestii i zmian.
  • Tradycyjne SDLC może stworzyć ogromną lukę komunikacyjną między programistami i testerami, ponieważ są to osobne fazy i nie ma współpracy między obiema stronami.
  • Testów w białej skrzynce nie można wykonać skutecznie.

Zastosowanie Agile rozwiązuje wiele z tych problemów, ponieważ zamiast procesu krok po kroku, działa raczej jako filozofia i struktura, która ma na celu pomóc zespołom współpracować, reagować na zmiany i budować gotowy produkt, który zawiera większy wkład wszystkich strony, w tym użytkownicy.

Zwinne praktyki

Pojawienie się metodyki Agile jest nie mniej niż rewolucyjną reformą metodologii tworzenia oprogramowania, ponieważ zapewnia wystarczająco dużo miejsca zespołom projektowym na kreatywność i wszechstronność przy jednoczesnym przejęciu zbiorowej odpowiedzialności za każdy etap produktu. Podążając ścieżką zwinną, poszczególni uczestnicy zespołu programistów są w stanie uwarunkować swoje umysły, by przyjęły niepewność, poradziły sobie ze zmianami i zbudowały lepszy produkt jako proces, a nie w dyskretnych, niezależnych krokach.

Chociaż nie ma wyczerpującej listy zasad Agile, istnieją pewne praktyki, które Agile propaguje. Obejmują one:

  1. Test Driven Development (TDD)
    Idealnie, programiści powinni najpierw napisać przypadki testowe dla funkcji, dla których zamierzają kodować. Zapewni to kod dobrej jakości, który rzadziej pęka w wyjątkowych warunkach. Ten proces pomaga również zapewnić, że specyfikacje użytkowników zostały uwzględnione.
  2. Programowanie par
    W programowaniu Agile programiści zazwyczaj pracują nad tym samym problemem w parach, gdzie jedna osoba pisze kod (sterownik), a druga przegląda kod i przedstawia pomysły i sugestie (nawigator). Zwiększa to produktywność i skraca czas potrzebny na sprawdzenie kodu.
  3. Refaktoryzacja kodu
    Refaktoryzacja kodu polega na rozbiciu kodu na mniejsze i prostsze moduły, które mogą (i powinny) istnieć niezależnie w idealnym scenariuszu. W znacznym stopniu poprawia to czytelność, testowalność i łatwość konserwacji kodu.
  4. Aktywny udział rzeczywistych interesariuszy
    Po regularnych odstępach czasu przez określony czas (określanych jako „ss”) klienci powinni otrzymać znaczący działający prototyp oprogramowania. Dzięki temu programiści mogą uzyskiwać informacje zwrotne na temat tego, co budują.
  5. Potraktuj wymagania jako stos priorytetowy
    W Agile niezbędne jest kategoryzowanie wymagań na podstawie ich znaczenia. Może to obejmować zarówno domniemane, jak i wyraźne oczekiwania klientów dotyczące opracowywanego oprogramowania. Zespół programistów powinien wspólnie oszacować czas i zasoby, które zamierzają zainwestować we wdrożenie tej funkcji, i odwzorować ją w oparciu o wymagania użytkowników i względną kolejność, w jakiej zajmują się każdą częścią projektu.
  6. Testy regresji
    Testowanie regresyjne obejmuje testowanie funkcjonalności całej aplikacji po dodaniu nowej funkcji lub zmodyfikowaniu istniejącej funkcjonalności w kodzie. Pomaga to upewnić się, że zmiany nie spowodowały uszkodzenia istniejącego kodu.

Dlaczego warto przejść zwinnie?

Agile zaleca pewne praktyki, ale nie wymusza ich w zespole programistów. W końcu, jeśli nie ma możliwości dokonywania korekt i odchyleń, cel Agile jest w dużej mierze pokonany. Włączenie nawet kilku aspektów rozwoju zwinnego do projektu może pomóc zespołom opracowującym oprogramowanie w sprostaniu nieoczekiwanym wyzwaniom, a ostatecznie zbudować lepszy produkt w bardziej wydajny sposób.

Bez błędów, bez stresu - Twój przewodnik krok po kroku do tworzenia oprogramowania zmieniającego życie bez niszczenia życia

Nie możesz poprawić swoich umiejętności programistycznych, gdy nikt nie dba o jakość oprogramowania.