Metodyka Crystal: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
Metodyka Crystal, której twórcą jest Alistar Cockburn jest jedną z metodyk zaliczanych do zwinnego zarządzania projektami w obszarze tworzenia oprogramowania komputerowego. Metodyka Crystal, ma siedem poziomów złożoności, które opierają się o wspólną podstawę tzw. „kod genetyczny”, a głównym kryterium, które odróżnia kolejne typy metodyki Crystal jest liczba osób, które są zaangażowane w realizację projektu. | '''Metodyka Crystal''', której twórcą jest Alistar Cockburn jest jedną z metodyk zaliczanych do zwinnego zarządzania projektami w obszarze tworzenia oprogramowania komputerowego. Metodyka Crystal, ma siedem poziomów złożoności, które opierają się o wspólną podstawę tzw. „kod genetyczny”, a głównym kryterium, które odróżnia kolejne typy metodyki Crystal jest liczba osób, które są zaangażowane w realizację projektu. | ||
==Rys Historyczny== | ==Rys Historyczny== | ||
Linia 7: | Linia 7: | ||
A. Cockburn wymienił również cechy udanych projektów realizowanych zgodnie z Crystal - pierwsze trzy są wymagane, a kolejne cztery przenoszą zespół w strefę bezpieczeństwa, w której członkowie czują się najwygodniej i pracują najlepiej: | A. Cockburn wymienił również cechy udanych projektów realizowanych zgodnie z Crystal - pierwsze trzy są wymagane, a kolejne cztery przenoszą zespół w strefę bezpieczeństwa, w której członkowie czują się najwygodniej i pracują najlepiej: | ||
Częste dostarczanie użytecznego kodu (oprogramowania) (ang. Frequent delivery) | '''Częste dostarczanie użytecznego kodu (oprogramowania) (ang. Frequent delivery)''' | ||
Najważniejszą właściwością każdego projektu jest częste dostarczanie działającego, przetestowanego kodu do rzeczywistych użytkowników. W przypadku nie stosowania się do tej zasady istnieje wysokie ryzyko, że produkt w postaci oprogramowania może być całkowicie bezużyteczny. | Najważniejszą właściwością każdego projektu jest częste dostarczanie działającego, przetestowanego kodu do rzeczywistych użytkowników. W przypadku nie stosowania się do tej zasady istnieje wysokie ryzyko, że produkt w postaci oprogramowania może być całkowicie bezużyteczny. | ||
Refleksyjne podkreślanie jakości procesu (ang. Reflective improvement) | '''Refleksyjne podkreślanie jakości procesu (ang. Reflective improvement)''' | ||
Cykliczne spotkania zespołu i dyskusja członków nad poprawkami i zmianami oraz wyciąganie wniosków podnosi jakość opracowywanego produktu. | Cykliczne spotkania zespołu i dyskusja członków nad poprawkami i zmianami oraz wyciąganie wniosków podnosi jakość opracowywanego produktu. | ||
Komunikacja osmotyczna (ang. Osmotic communication) | '''Komunikacja osmotyczna (ang. Osmotic communication)''' | ||
Dotyczy to podkreślenia znaczenia komunikacji miedzy wszystkimi członkami zespołu znajdującymi się w jednym pomieszczeniu. Istotą nie jest wyłącznie czynny udział w dyskusji, ale także słuchanie dyskusji odbywającej się w tle, które niekoniecznie stanowi pierwszy plan danego członka zespołu, ale pozostaje w pewnej części świadome. | Dotyczy to podkreślenia znaczenia komunikacji miedzy wszystkimi członkami zespołu znajdującymi się w jednym pomieszczeniu. Istotą nie jest wyłącznie czynny udział w dyskusji, ale także słuchanie dyskusji odbywającej się w tle, które niekoniecznie stanowi pierwszy plan danego członka zespołu, ale pozostaje w pewnej części świadome. | ||
Osobiste bezpieczeństwo (ang. Personal safety) | '''Osobiste bezpieczeństwo (ang. Personal safety)''' | ||
Poczucie bezpieczeństwa osobistego jest kluczową cechą, którą należy osiągnąć w zespole. Jest to zasada związana ze swobodą wyrażania własnego zdania na temat realizowanego projektu, nie obawiając się jakichkolwiek negatywnych konsekwencji ze strony przełożonych. Mając swobodę mówienia, zespół może odkryć i naprawić swoje słabości. Otwarta komunikacja oznacza też zaufanie, ponieważ zgadzamy się na to, iż każdy może zaprezentować swoje zdanie na forum zespołu projektowego. | Poczucie bezpieczeństwa osobistego jest kluczową cechą, którą należy osiągnąć w zespole. Jest to zasada związana ze swobodą wyrażania własnego zdania na temat realizowanego projektu, nie obawiając się jakichkolwiek negatywnych konsekwencji ze strony przełożonych. Mając swobodę mówienia, zespół może odkryć i naprawić swoje słabości. Otwarta komunikacja oznacza też zaufanie, ponieważ zgadzamy się na to, iż każdy może zaprezentować swoje zdanie na forum zespołu projektowego. | ||
Skupienie (ang. Focus) | '''Skupienie (ang. Focus)''' | ||
Kierownictwo i liderzy muszą ustalić priorytety projektu, wymagania, cele i jasno przekazać je zespołowi. Oznacza, że każdy w zespole wie czym będzie się zajmować, ma przeznaczoną na to odpowiednią ilość czasu, jest w stanie się skupić na swoich zadaniach. Zespoły powinny określić dwie godziny każdego dnia roboczego w którym nie są dozwolone żadne przerwy, w tym spotkania, rozmowy telefoniczne i pokazy. | Kierownictwo i liderzy muszą ustalić priorytety projektu, wymagania, cele i jasno przekazać je zespołowi. Oznacza, że każdy w zespole wie czym będzie się zajmować, ma przeznaczoną na to odpowiednią ilość czasu, jest w stanie się skupić na swoich zadaniach. Zespoły powinny określić dwie godziny każdego dnia roboczego w którym nie są dozwolone żadne przerwy, w tym spotkania, rozmowy telefoniczne i pokazy. | ||
Ciągły dostęp zespołu do użytkowników ekspertów | '''Ciągły dostęp zespołu do użytkowników ekspertów''' | ||
Ciągły dostęp do użytkowników z wiedzą ekspercką pozwala uzyskanie szybkiej odpowiedzi w postaci informacji zwrotnej dotyczącej jakości produktu i zauważonych błędów. Użytkownicy eksperci pełnią rolę testerów, którzy dostarczają wyniki z poszczególnych iteracji. Programiści powinni często udostępniać swoje oprogramowanie, aby wykorzystać otrzymane informacje zwrotne do ulepszania swoich produktów. | Ciągły dostęp do użytkowników z wiedzą ekspercką pozwala uzyskanie szybkiej odpowiedzi w postaci informacji zwrotnej dotyczącej jakości produktu i zauważonych błędów. Użytkownicy eksperci pełnią rolę testerów, którzy dostarczają wyniki z poszczególnych iteracji. Programiści powinni często udostępniać swoje oprogramowanie, aby wykorzystać otrzymane informacje zwrotne do ulepszania swoich produktów. | ||
Środowisko techniczne (ang. Technical environment) | '''Środowisko techniczne (ang. Technical environment)''' | ||
Projekt powinien być realizowany w odpowiednim środowisku, z przeprowadzaniem automatycznych testów, częstą integracją i efektywnym zarządzaniem konfiguracją. Wiele zespołów programistycznych będzie integrować system kilka razy dziennie lub przynajmniej raz dziennie. Zespoły, które wykonują „ciągłą integrację z testami”, będą w stanie wykryć błędy na poziomie integracji w krótkim czasie | Projekt powinien być realizowany w odpowiednim środowisku, z przeprowadzaniem automatycznych testów, częstą integracją i efektywnym zarządzaniem konfiguracją. Wiele zespołów programistycznych będzie integrować system kilka razy dziennie lub przynajmniej raz dziennie. Zespoły, które wykonują „ciągłą integrację z testami”, będą w stanie wykryć błędy na poziomie integracji w krótkim czasie | ||
Linia 35: | Linia 35: | ||
W związku z powyższym wyróżnia się 7 poziomów, poniżej przedstawiono ich charakterystyki: | W związku z powyższym wyróżnia się 7 poziomów, poniżej przedstawiono ich charakterystyki: | ||
Crystal Clear: | '''Crystal Clear:''' | ||
*Małe zespoły, 1 – 6 uczestników projektu | |||
*Najlepiej sprawdza się w małych projektach | |||
*Jest zorientowany na ludzi i nie koncentruje się na procesach | |||
*Wymaga pełnej dokumentacji | |||
*Jest skoncentrowany na bezpieczeństwie projektu | |||
Crystal Yellow: | '''Crystal Yellow:''' | ||
Małe i średnie zespoły o liczności od 7 do 20 uczestników, | *Małe i średnie zespoły o liczności od 7 do 20 uczestników, | ||
*Obszary kodu oprogramowania mają określną własność, co wskazuje na pełną odpowiedzialność twórcy w razie wprowadzania modyfikacji, | |||
*Informacja zwrotna pochodzi od realnych użytkowników oprogramowania | |||
*Bezpośrednia komunikacja, która zmniejsza potrzebę dokumentacji i jednocześnie wpływa na lepsze zrozumienie zadań wykonywanych przez deweloperów, | |||
*Przeprowadzane są testy automatyczne i ustalane są plany ulepszeń, składa się to na sporządzenie listy rzeczy do poprawienia w określonym czasie. | |||
Crystal Orange: | '''Crystal Orange:''' | ||
*Średnie zespoły o liczności od 21 do 40 uczestników, | |||
*Czas trwania projektu to około 1 do 2 lat, | |||
*Przeznaczony do projektów średniej wielkości, | |||
*Używany w projektach, które mają stale rozwijającą się bazę kodu, | |||
*Wymagane jest, aby każda kolejna wersja była wydawana średnio co 3 – 4 miesiące. | |||
Crystal Red: | '''Crystal Red:''' | ||
*Średnie i duże zespoły składające się od 40 do 80 osób, | |||
*Zespoły są dzielone zgodnie z wymaganiami pracy (według umiejętności) | |||
*Występuje tradycyjny model tworzenia oprogramowania | |||
Crystal Maroon: | '''Crystal Maroon:''' | ||
*Duże zespoły składające się od 80 do 200 osób, | |||
*Średni czas trwania projektu ponad 2 lata; | |||
'''Crystal Diamond & Sapphire''' | |||
Podział można przedstawić na wykresie prezentującym strukturę Crystal | Podział można przedstawić na wykresie prezentującym strukturę Crystal | ||
Wersja z 22:48, 15 kwi 2021
Metodyka Crystal, której twórcą jest Alistar Cockburn jest jedną z metodyk zaliczanych do zwinnego zarządzania projektami w obszarze tworzenia oprogramowania komputerowego. Metodyka Crystal, ma siedem poziomów złożoności, które opierają się o wspólną podstawę tzw. „kod genetyczny”, a głównym kryterium, które odróżnia kolejne typy metodyki Crystal jest liczba osób, które są zaangażowane w realizację projektu.
Rys Historyczny
W 1991 roku Alistair Cockburn pracował w IBM i otrzymał zadanie opracowania najbardziej efektywnej metodologii tworzenia oprogramowania. W związku z tym musiał przeprowadzić wywiady i przestudiować wiele zespołów projektowych. Cockburn podkreślił znaczenie komunikacji i rozmowy: „Skoncentrowanie się na umiejętnościach, komunikacji i społeczności pozwala projektowi być bardziej efektywnym i zwinnym niż skupianie się na procesach i planach” (Highsmith 2002, str. 261). Odkrył również, że należy wybrać i dostosować strategię do grupy uczestników projektu i zadań przez nich wykonywanych.
7 zasad metodyki Crystal
A. Cockburn wymienił również cechy udanych projektów realizowanych zgodnie z Crystal - pierwsze trzy są wymagane, a kolejne cztery przenoszą zespół w strefę bezpieczeństwa, w której członkowie czują się najwygodniej i pracują najlepiej:
Częste dostarczanie użytecznego kodu (oprogramowania) (ang. Frequent delivery) Najważniejszą właściwością każdego projektu jest częste dostarczanie działającego, przetestowanego kodu do rzeczywistych użytkowników. W przypadku nie stosowania się do tej zasady istnieje wysokie ryzyko, że produkt w postaci oprogramowania może być całkowicie bezużyteczny.
Refleksyjne podkreślanie jakości procesu (ang. Reflective improvement) Cykliczne spotkania zespołu i dyskusja członków nad poprawkami i zmianami oraz wyciąganie wniosków podnosi jakość opracowywanego produktu.
Komunikacja osmotyczna (ang. Osmotic communication) Dotyczy to podkreślenia znaczenia komunikacji miedzy wszystkimi członkami zespołu znajdującymi się w jednym pomieszczeniu. Istotą nie jest wyłącznie czynny udział w dyskusji, ale także słuchanie dyskusji odbywającej się w tle, które niekoniecznie stanowi pierwszy plan danego członka zespołu, ale pozostaje w pewnej części świadome.
Osobiste bezpieczeństwo (ang. Personal safety) Poczucie bezpieczeństwa osobistego jest kluczową cechą, którą należy osiągnąć w zespole. Jest to zasada związana ze swobodą wyrażania własnego zdania na temat realizowanego projektu, nie obawiając się jakichkolwiek negatywnych konsekwencji ze strony przełożonych. Mając swobodę mówienia, zespół może odkryć i naprawić swoje słabości. Otwarta komunikacja oznacza też zaufanie, ponieważ zgadzamy się na to, iż każdy może zaprezentować swoje zdanie na forum zespołu projektowego.
Skupienie (ang. Focus) Kierownictwo i liderzy muszą ustalić priorytety projektu, wymagania, cele i jasno przekazać je zespołowi. Oznacza, że każdy w zespole wie czym będzie się zajmować, ma przeznaczoną na to odpowiednią ilość czasu, jest w stanie się skupić na swoich zadaniach. Zespoły powinny określić dwie godziny każdego dnia roboczego w którym nie są dozwolone żadne przerwy, w tym spotkania, rozmowy telefoniczne i pokazy.
Ciągły dostęp zespołu do użytkowników ekspertów Ciągły dostęp do użytkowników z wiedzą ekspercką pozwala uzyskanie szybkiej odpowiedzi w postaci informacji zwrotnej dotyczącej jakości produktu i zauważonych błędów. Użytkownicy eksperci pełnią rolę testerów, którzy dostarczają wyniki z poszczególnych iteracji. Programiści powinni często udostępniać swoje oprogramowanie, aby wykorzystać otrzymane informacje zwrotne do ulepszania swoich produktów.
Środowisko techniczne (ang. Technical environment) Projekt powinien być realizowany w odpowiednim środowisku, z przeprowadzaniem automatycznych testów, częstą integracją i efektywnym zarządzaniem konfiguracją. Wiele zespołów programistycznych będzie integrować system kilka razy dziennie lub przynajmniej raz dziennie. Zespoły, które wykonują „ciągłą integrację z testami”, będą w stanie wykryć błędy na poziomie integracji w krótkim czasie
Wszystkie powyższe zasady są w mniejszym lub większym stopniu obecne w innych metodach typu zwinnego. Crystal Clear podkreśla siłę i autonomię zespołu i na te właśnie aspekty kładzie nacisk.
Typy metodyki Crystal
Wszystkie podejścia w ramach rodziny metodologii Crystal koncentrują się na ludziach i komunikacji, ale podejścia ze względu na wielkość zespołu (ilość członków przydzielonych do realizacji projektu) różnią się od siebie krytycznością i priorytetem projektu. Podstawowym założeniem jest to, że im więcej osób jest w zespole, tym bardziej złożony jest projekt i im bardziej uporządkowany jest typ tego projektu, tym bardziej ustrukturyzowane i sztywne musi być podejście do niego. Dlatego Cockburn nazwał swoje różne podejścia od kryształów geologicznych, z twardszymi kamieniami, takimi jak diamenty, reprezentującymi bardziej ustrukturyzowane podejścia. I odwrotnie, najbardziej płynne podejście zostało nazwane Crystal Clear.
W związku z powyższym wyróżnia się 7 poziomów, poniżej przedstawiono ich charakterystyki:
Crystal Clear:
- Małe zespoły, 1 – 6 uczestników projektu
- Najlepiej sprawdza się w małych projektach
- Jest zorientowany na ludzi i nie koncentruje się na procesach
- Wymaga pełnej dokumentacji
- Jest skoncentrowany na bezpieczeństwie projektu
Crystal Yellow:
- Małe i średnie zespoły o liczności od 7 do 20 uczestników,
- Obszary kodu oprogramowania mają określną własność, co wskazuje na pełną odpowiedzialność twórcy w razie wprowadzania modyfikacji,
- Informacja zwrotna pochodzi od realnych użytkowników oprogramowania
- Bezpośrednia komunikacja, która zmniejsza potrzebę dokumentacji i jednocześnie wpływa na lepsze zrozumienie zadań wykonywanych przez deweloperów,
- Przeprowadzane są testy automatyczne i ustalane są plany ulepszeń, składa się to na sporządzenie listy rzeczy do poprawienia w określonym czasie.
Crystal Orange:
- Średnie zespoły o liczności od 21 do 40 uczestników,
- Czas trwania projektu to około 1 do 2 lat,
- Przeznaczony do projektów średniej wielkości,
- Używany w projektach, które mają stale rozwijającą się bazę kodu,
- Wymagane jest, aby każda kolejna wersja była wydawana średnio co 3 – 4 miesiące.
Crystal Red:
- Średnie i duże zespoły składające się od 40 do 80 osób,
- Zespoły są dzielone zgodnie z wymaganiami pracy (według umiejętności)
- Występuje tradycyjny model tworzenia oprogramowania
Crystal Maroon:
- Duże zespoły składające się od 80 do 200 osób,
- Średni czas trwania projektu ponad 2 lata;
Crystal Diamond & Sapphire
Podział można przedstawić na wykresie prezentującym strukturę Crystal
Zalety metodyki Crystal
- Zapewnia częste dostawy, aby móc zidentyfikować ewentualne problemy na wszystkich etapach
- Zawsze jest miejsce na ulepszenie charakterystyk, poświęcenie czasu na opracowanie oprogramowania i umożliwienie dyskusji o tym, jak ulepszyć procesy
- Umożliwia bliską komunikację i promuje interakcję i dzielenie się wiedzą między członkami zespołu
- Wymaga środowiska technicznego z automatycznymi testami i częstą integracją
- Pozwala zespołom pracować w sposób, który ich zdaniem jest najbardziej efektywny
- Ułatwia bezpośrednią komunikację między członkami zespołu, promuje przejrzystość i odpowiedzialność
- Podejście adaptacyjne pozwala zespołom dobrze reagować na potrzeby zmian.
Wady metodyki Crystal
- Występowanie różnych typów Crystal w rodzinie metodyki, oznacza, że zasady mogą się również różnić w zależności od wielkości zespołu i projektu, co czyni je niejasnymi
- Może nie działać w przypadku zespołów rozproszonych w kilku lokalizacjach ze względu na ciągłą potrzebę komunikacji i uzgadniania
- Planowanie i rozwój nie są zależne od wymagań projektu
- Brak z góry określonych planów może prowadzić do nieporozumień
- Brak dokumentacji może również prowadzić do nieporozumień