Metodyka Crystal jest jednym z najlżejszych i elastycznych podejść do tworzenia oprogramowania (jest traktowany jako jedno z podejść zwinnych). W rzeczywistości Crystal składa się z rodziny zwinnych metod, takich jak Crystal Clear, Crystal Yellow, Crystal Orange i inne, których unikalne cechy zależą od kilku czynników, takich jak wielkość zespołu, krytyczność systemu i priorytety projektu. Ta rodzina Crystal zwraca uwagę na fakt, że każdy projekt może wymagać nieco dostosowanego zestawu zasad, praktyk i procesów w celu spełnienia unikalnych cech projektu. Nastawia się na dużą elastyczność dla zespołu i zarazem oczekuje dosyć duży poziom dojrzałości i samodzielności zespołów.

Kategorie projektu w metodykach krystalicznych

Projekty są podzielone na kategorie według krytyczności systemu będącego przedmiotem projektu. Zdefiniowano cztery poziomy krytyczności, oparte na tym, co może zostać utracone z powodu awarii wyprodukowanego systemu:

  • Confort (C)
  • Discretionary Money (D)
  • Essential Money (E)
  • Life (L) – projekt kategorii L40 to projekt, w którym do 40 osób opracowuje system krytyczny dla życia.

Miarą wielkości projektu jest maksymalna liczba osób, które mogą być zaangażowane w projekt.

Metodyki krystaliczne: członkowie rodziny

  • Crystal Methods jakie wymieniono w literaturze: przezroczysty, żółty, pomarańczowy, czerwony, bordowy, niebieski i fioletowy (w kolejności rosnącej złożoności)
  • Możemy definiować nowe biorą pod uwagę kontekstu użycia
  • Zdefiniowano tylko te, które zostały praktycznie wykorzystane w rzeczywistych projektach:
    • Crystal Orange został wprowadzony w 1998 roku i był przeznaczony dla projektów C40, D40 i E40.
    • Sieć Orange Orange została wprowadzona w 2001 roku i jest odmianą Crystal Orange przeznaczoną do realizowania projektów rozwoju sieci.
    • Crystal Clear został wprowadzony w 2004 roku, głównie dla projektów C6 i D6.

Każde podejście Crystal Clear:

  • Wymusza strukturę procesu programowania.
  • Wymaga użycia zestawu pewnych ogólnych elementów procesu
  • Wymaga wytworzenia określonych produktów roboczych.

Jednak duży ilość drobniejszych szczegółów pozostaje w gestii zespołu programistów; programiści mogą nawet stosować techniki zapożyczone z innych podejść;

  • Zespół programistów wybiera podstawowe podejście / proces / framework na początku projektu (w formie minimalnego zestawu startowego).
  • Często odbywają się warsztaty refleksji (retrospektywy) w celu monitorowania, dostrajania i poprawiania procesu.

Metoda krystaliczna mają cztery powtarzające się cykle procesów o różnych długościach

  • Cykl Projektu. Składa się z trzech części, które obejmują czarterowanie, serię dwóch lub więcej cykli dostaw i podsumowanie projektu, jest to sekwencja, w której formuje się zespół podstawowy, stosowana metodyka jest kształtowana i dopracowywana oraz tworzony jest wstępny plan projektu.
  • Cykl dostaw. Ten cykl składa się z czterech części, a mianowicie: ponownej kalibracji schematu wydania, serii jednej lub więcej iteracji, prezentacji dla prawdziwych użytkowników końcowych oraz tzw. rytuału ukończenia, który odzwierciedla zarówno wytworzony produkt, jak i zastosowane metody. To tutaj użytkownicy otrzymują produkt i uzyskują od nich informacje zwrotne na temat produktu. Odpowiednie Review Scrumowego.
  • Cykl iteracji. Z trzema częściami kończącymi cykl – planowanie iteracji, codzienne i integracyjne działania oraz warsztaty refleksji – długość i format tego okresu nie są spójne. Jest to także czas, w którym zespół może wprowadzać zmiany w wymaganiach, funkcjonalności lub możliwościach swojego środowiska.
  • Cykl integracji. Nie ma określonej długości cyklu integracji. W przypadku niektórych zespołów cykl integracji może potrwać tylko pół godziny albo i krócej, a w przypadku innych może trwać wiele dni. Niektórzy mogą to robić więcej niż raz w tygodniu, podczas gdy inni mogą przeprowadzać ciągłą integrację lub po każdym odcinku projektowania.

Siedem właściwości Crystal Clear

Crystal Clear opisuje siedem właściwości tworzących szkielet, ale wymagane są tylko trzy pierwsze. Pozostałe cztery są pomocne i sprawniej z nich korzystają doświadczone zespoły Crystal Clear. Właściwości mają zastosowanie do projektów każdej wielkości, z wyjątkiem „komunikacji osmotycznej”, ale ogólnie Crystal Clear działa najlepiej w przypadku małych, kolokowanych zespołów. Crystal podkreśla ważność lokalizacja w pobliżu.

Siedem właściwości Crystal Clear niezbędnych do pomyślnego uruchomienia projektu Agile to:

Częste dostarczanie

Mowa o użytecznym i w pełni ukończonym i przetestowanym kodzie.

Nieustanna poprawa

Crystal Clear nie ma charakteru nakazowego i wiele rzeczy pozostawia zespołowi do przemyślenia i sfinalizowania po ich przedyskutowaniu. Eksperymentowanie jest kluczowym elementem w Crystal Clear.

Komunikacja osmotyczna.

Dzieje się tak, gdy wszyscy programiści w zespole są w jednym pokoju przy stole. Odbywa się dyskusja, w której członkowie uczestniczą lub wyłączają się; ale każdy słyszy to, co zostało powiedziane, nawet jak nie bierze aktywnego udziału w dyskusji. Działa to najlepiej w przypadku małych zespołów liczących od ośmiu do dziesięciu osób, a komunikacja między osmozą wymaga fizycznej bliskości między członkami zespołu. Zagrożenia związane z komunikacją osmotyczną to zbyt duży hałas i zbyt wiele pytań skierowanych do najbardziej doświadczonego programisty.

Przykładowo przeniesienia osoby z kluczową wiedzą techniczną czy eksperta do prywatnej przestrzeni w inny miejscu w celu pracy w “spokoju” nie jest idealnym rozwiązanim. Taki ekspert musi znajdować się w centrum grupy aby zadziałała osmotyczna komunikacja. Ekspert musi jednak posiadać przestrzeń do swobodnej pracy, aby mógł coś zrobić. Jaki rozwiązani jest najlepsze? Ciężko powiedzieć, to temat do doprecyzowania w praktyce. Wymagana jest dyskusja zespołem. Może warto ustanowić pewien okres każdego dnia, w którym ekspert jest całkowicie sam i niedostępny.

Bezpieczeństwo osobiste.

Członkowie zespołu muszą być w stanie zabrać głos, gdy coś im przeszkadza, bez obawy o odwet. Gdy zespół może swobodnie mówić, może odkryć i naprawić swoje słabości. Gdy nie ma dowodów na to, że ktoś został zdradzony, ludzie chętniej udzielają informacji, co skraca czas trwania projektu. Poczucie bezpieczeństwa osobistego jest kluczową własnością zespołu. Aby zyskać zaufanie, trzeba się ujawnić. Trzy rzeczy, na które programiści oprogramowania muszą być otwarci w związku z projektem

Skupienie.

Kierownictwo czy Właściciele Produktów muszą ustalić priorytety i jasno określić, na co deweloperzy powinni spędzać czas. Następnie programiści muszą mieć czas, bez przerywników i “wrzutek”, na pracę nad tymi priorytetami. Praca nad jednym projektem na raz jest idealna; dwa projekty maksimum. Jedna z technik jaką zespół może zaadaptować to ustalenie dwóch godziny każdego dnia roboczego (powiedzmy od 10 do 12 w południe), w których nie są dozwolone żadne przerwy, w tym spotkania, rozmowy telefoniczne z klietami.

Łatwy dostęp do użytkowników.

Kluczem jest uzyskanie szybkiej odpowiedzi od użytkowników, a zwłaszcza na nurtujące problemy. Zarówno programista pracujący z użytkownikiem, jak i użytkownik pracujący w zespole programistycznym są bardzo pomocni, ale co za dużo to niezdrowo. Jednym rozwiązaniem jest znalezienie użytkowników (grupy fokusowe) gotowego wypróbować nowe oprogramowanie na próbę. Nie tylko Crystal Clear o tym mówi, ale także dowolny framework Agile – bardzo ważne jest uzyskanie opinii użytkowników końcowych.

Środowisko techniczne

Czyli automatyczne testy, zarządzaniem konfiguracją i częstą, bieżąca integracją. Wiele zespołów programistycznych integruj produkt które budują wiele razy dziennie lub przynajmniej raz dziennie. Zespoły wykonujące „ciągłą integrację wraz z testami” będą w stanie wykryć błędy poziomu integracji w ciągu kilku minut. Znacząco przyśpiesza to rozwój oprogramowania i minimalizuje straty na komunikację i obsługę błędów.

Podsumowanie

Zespoły programistów pracują najlepiej w bezpiecznym środowisku, z bezpieczeństwem osobistym i emocjonalnego. Kluczową koncepcją Crystal Clear jest konstruktywna, ale nie obwinająca krytyka. Ron Jeffries ściśle scharakteryzował Crystal Clear jako:

„Bring a few developers together in peace, love, and harmony; shipping code every other month, and good software will emerge.”

Ron Jeffries

Miroslaw Dabrowski

Miroslaw Dabrowski

Ex-Marine in IT. Entrepreneur, Investor, Enterprise-Lean Agile Coach, Mentor, Consultant, Trainer, Speaker. Lifelong learner.

Subscribe To Our Newsletter

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

GDPR EN

You have Successfully Subscribed!

X