Co to jest programowanie ekstremalne?
Programowanie ekstremalne jest jedną z najnowszych metod tworzenia oprogramowania. Ma na celu doskonalenie tradycyjnych metod tworzenia oprogramowania poprzez podkreślanie wartości biznesowej i jakości. Ta metoda programowania stara się dostarczać kompletne i wolne od błędów oprogramowanie, które spełnia potrzeby biznesowe, w odstępach tak krótkich jak tygodnie.
W tradycyjnym sposobie tworzenia oprogramowania projekt trwa wiele miesięcy lub lat. Zespół analityków stara się uzyskać wszystkie wymagania od użytkowników. Następnie zespół projektantów tworzy szeroką strukturę systemu. Następnie programiści kodują system w tej strukturze. Następnie testerzy upewniają się, że kod jest wolny od błędów i spełnia wymagania.
Główny problem napotkany przy tradycyjnym programowaniu polega na tym, że sami użytkownicy nie zawsze mają jasność co do swoich wymagań, a wymagania często zmieniają się w trakcie dłuższego czasu potrzebnego do utworzenia oprogramowania. Różne osoby są zaangażowane na różnych etapach, a dokumentacja prawie nigdy nie jest kompletna, więc ludzie na późniejszych etapach nie mogą zrozumieć procesu myślenia ludzi na wcześniejszych etapach. Powoduje to niskiej jakości oprogramowanie, a także niską wartość biznesową.
Zwykle ekstremalne programowanie obejmuje częste dostawy oprogramowania w ciągu kilku tygodni. Motywacją jest dostarczenie w pełni działającego oprogramowania, które zaspokoi niektóre kluczowe potrzeby biznesowe. Zmiana wymagań zostanie uwzględniona przy następnej dostawie.
Ekstremalne programowanie, w skrócie XP, podkreśla jakość, pisząc testy przed rozpoczęciem programowania. Podczas pisania oprogramowania kod jest sprawdzany i testowany wiele razy dziennie. Całe oprogramowanie jest składane i testowane raz lub nawet kilka razy dziennie. Odbywa się to w celu zapewnienia, że żadna część oprogramowania nie spowoduje awarii systemu.
Jednym z dobrze znanych aspektów programowania ekstremalnego jest programowanie parami, w którym dwóch programistów pracuje razem na jednym komputerze. Dzięki takiemu podejściu proces myślowy, projektowanie i kodowanie związane z tworzeniem oprogramowania są natychmiast sprawdzane. Odpowiedzialność za opracowanie dowolnego oprogramowania jest dzielona.
Dzięki tej metodzie programowania oprogramowanie zaczyna się od prostej konstrukcji i ewoluuje w celu zaspokojenia dodatkowych potrzeb biznesowych. Tworzenie funkcji jest unikane, dopóki nie staną się priorytetem. Nacisk kładziony jest na pracę zespołową przy tworzeniu kompletnych systemów, więc każdy członek zespołu codziennie odgrywa rolę analityka, projektanta, programisty i testera. Istnieje intensywna komunikacja w zespole programistycznym, a także między programistami a użytkownikami, do których dostarczane jest oprogramowanie.
W tej metodzie programowania podkreślono pojęcie refaktoryzacji. Refaktoryzacja jest wewnętrznym dopracowaniem kodu, aby nadać kodowi dobrą strukturę i ułatwić zrozumienie bez wpływu na wynik. Oczekuje się, że wszystkie prace związane z ekstremalnym programowaniem będą wykonywane w zrównoważonym tempie bez późnych nocy i weekendów. Zwiększa to morale i zmniejsza prawdopodobieństwo błędów.
Ekstremalne programowanie bierze swoją nazwę od idei, że pozytywne aspekty pracy dobrych programistów zostały doprowadzone do skrajności w celu wykorzystania korzyści. Ta metoda rozwoju była dość skuteczna w wielu systemach oprogramowania. Ponieważ jest to wciąż nowa metodologia, jej praktyki stale ewoluują.