Z racji tego, że publikacja odnośnie zwinnego podejścia w zakresie modelowania procesów biznesowych (WMB) –pisałem o tym kilka dni temu w tekście pt “Krajowa Konferencja Inżynierii Oprogramowania“- ukazała się w limitowanej edycji 150 egzemplarzy pozwalam sobie na publikację skanu tego tekstu.
![]()
![]()
![]()
![]()
![]()
![]()
- Luty 2010
- Styczeń 2010
- Grudzień 2009
- Listopad 2009
- Październik 2009
- Wrzesień 2009
- Sierpień 2009
- Lipiec 2009
- Czerwiec 2009
- Maj 2009
- Kwiecień 2009
- Marzec 2009
- Luty 2009
- Styczeń 2009
- Grudzień 2008
- Listopad 2008
- Październik 2008
- Wrzesień 2008
- Sierpień 2008
- Lipiec 2008
- Czerwiec 2008
- Maj 2008
- Kwiecień 2008
- Marzec 2008
- Luty 2008
- Styczeń 2008
- Listopad 2007
- Październik 2007
- Wrzesień 2007
- Lipiec 2007
- Kwiecień 2007

KKIO 2009 – tekst
napisane przez Michał Wolski | w kategorii o inżynierii oprogramowania, teksty, zwinne modelowanie poniedziałek 28 wrz 2009Pisanie user story i scenariuszy przypadków użycia
napisane przez Michał Wolski | w kategorii SCRUM, agile, zwinne modelowanie czwartek 3 wrz 2009User story to opis celów zorientowanych na użytkownika, jakie jedna lub więcej osób osiągnie za pomocą Twojego produktu. User stories używa się do osiągnięcia celu zawsze wtedy, kiedy jest osoba obsługująca interfejs . User story pisze się w formacie
Jako [osoba odgrywająca daną rolę] chcę [wykonać jakąś czynność] aby [osiągnąć jakiś cel].
W ten sam sposób można pisać scenariusze przypadków użycia, przy których należy uwzględnić, że scenariusz może obejmować kilka user story. Takie podejście pozwala także na zastosowanie modelowania w języku UML w SCRUM i tym samym wpisuje sie w nurt agile modeling – zwinnego modelowania.
Wielkość i długość iteracji
napisane przez Michał Wolski | w kategorii agile, metodyki, o inżynierii oprogramowania, zwinne modelowanie poniedziałek 31 sie 2009Długość iteracji i jej wielkości pod względem zasobów musi być skorelowana z celami i pracą, które ma być wykonana. Moje wytyczne:
Wielkość zespołu – większe zespoły wprowadzają większe koszty stałe i tym samym prowadzą do dłuższej iteracji. Następujące wytyczne zapewniają przydatny punkt wyjścia:
- 2 – 15 osób: iteracja 2-4 tygodniowa
- 16 – 30 osób: iteracja 4-6 tygodniowa
- 31 – 50 osób: iteracja 6-8 tygodniowa.
Cele iteracji – niektóre cele wymagają więcej czasu na ukończenie niż inne
Wielkość kosztów stałych – im więcej sprawozdawczości oraz innych przeciążeń administracyjnych, które są nakładane na zespół, tym dłuższe będą musiały być iteracje
Podział zespołu – im bardziej podzielony zespół, tym trudniejsza komunikacja oraz tym więcej czasu zajmie uzgodnienie decyzji prowadzących do zwiększonego poziomu planowania i dokumentowania oraz dłuższych iteracji
Dostępność zasobów – Im mniej czasu, który członkowie zespołu mają przeznaczyć na projekt, tym więcej czasu upłynie na iteracje
Formalność projektu – niektóre projekty mają bardziej surowe wymogi odnośnie przeglądów formalnych i dokumentacji projektowej, wymagając więcej czasu na te czynności
Wspólne słownictwo
napisane przez Michał Wolski | w kategorii zarządzanie wymaganiami, zwinne modelowanie środa 19 sie 2009
W trakcie szkicowania procesów biznesowych należy zdefiniować wspólne słownictwo, przy użyciu najpopularniejszych terminów i wyrażeń w zakresie problemu. Następnie należy konsekwentnie wykorzystywać wspólne słownictwo we wszystkich tekstowych opisach biznesu. W ten sposób, utrzymują Państwo spójne opisy tekstowe i unika się nieporozumień wśród członków projektu dot. stosowania i znaczenia terminów. Słownictwo powinno mieć formę słownika.
Aby znaleźć wspólne terminy w zakresie problemu, należy uwzględnić terminy stosowane w trakcie rozmowy, o co chodzi w biznesie. Warto skupić się na terminach opisujących następujące koncepcje:
- Obiekty biznesowe reprezentujące koncepcje stosowane w codziennej pracy organizacji. W wielu przypadkach, już istnieje wykaz tego rodzaju koncepcji.
- Obiekty świata rzeczywistego, których istnienia przedsiębiorstwo musi być świadome. Te obiekty występują w naturalny sposób i obejmują takie rzeczy jak: samochód, psa, butelkę, samolot, pasażera, rezerwację, bądź fakturę.
Każdym termin jest na ogół opisywany jako rzeczownik wraz z definicją. Terminy powinny być podane w liczbie pojedynczej, "zamówienie" oraz "zadanie", a nie "zamówienia" czy "zadania".
I na koniec oczywiste i najważniejsze: wszystkie zainteresowane strony powinny porozumieć się co do zdefiniowania terminów.
Modelowanie aplikacji biznesowych – wybór modeli
napisane przez Michał Wolski | w kategorii modelowanie biznesowe, zwinne modelowanie poniedziałek 17 sie 2009Aby przewidzieć wymogi dla aplikacji biznesowej można rozważyć stworzenie następujących modeli:
- Schemat proceduralny interfejsu użytkownika. Dostarcza on przeglądu ekranów i raportów oraz to, jak w jaki sposób są one wzajemnie powiązane. Na chwilę obecną potrzebujesz jedynie głównych ekranów i raportów.
- Diagram WPA (Wysokiego Poziomu Abstrakcji). Diagram procesu wysokiego poziomy, plus kilka diagramów dających podgląd kilku krytycznych procesów, są zazwyczaj potrzebne do zrozumienia przepływu biznesowego.
- Diagramy przypadków użycia. Zamiast diagramów procesu wysokiego poziomu (WPA) możesz zrobić diagram przypadków użycia wysokiego poziomu. Jest to kwestia tego preferencji, ja prawdopodobnie nie robiłbym tego diagramu, gdyż WPA jest dla mnie wystarczający.
- Diagram klas. Wskazuje na nim ważne dane, które są przetwarzane w organizacji.
- Diagram procesu. Czyli popularny diagram aktywności. Warto na nim zamieścić obiekty.
- Definicje słownikowe. Być może będziesz chciał zacząć od zidentyfikowania kluczowych terminów biznesowych. Widziałem zbyt wiele zespołów uziemionych przez „paraliż analizy” ponieważ próbowali zdefiniować dokładną terminologię przed przejściem do następnych etapów. Nie wpadnij w tę pułapkę.
Podane punkty stanowią składową wielu aplikacji biznesowych, ale w zależności od specyfiki biznesu i procesu niektóre z nich mogą być opcjonalne.
SCRUM a SCRUM z modelowaniem – koszty
napisane przez Michał Wolski | w kategorii SCRUM, agile, zwinne modelowanie czwartek 9 lip 2009Moim zdaniem wszystkie metodyki zwinne mają tą zaletę, że są tańsze od tradycyjnego “ciężkiego” podejścia choćby dlatego, że nie traci się czasu na modelowanie. Jest tylko jedno ale. A mianowicie klient musi dokładnie wiedzieć czego chce. Co w sytuacji gdy klient jest grymaśny, zmienia wymagania lub tylko je odrobinę modyfikuje bo jak widzi gotowy produkt to zaczyna rozumieć błędy w swoich wymaganiach, zaczyna rozumieć swój biznes? W takiej sytuacji modelowanie staje się nieodzowne. Budując model klient może zrozumieć i zobaczyć jak będzie działał system i zweryfikować czy jest to to o co dokładnie mu chodziło. Co więcej mając model wytwórcy także lepiej go rozumieją. Pozostaje pytanie: Co z kosztami?
Wbrew pozorom koszty modelowania nie są wysokie i zwracają się z nawiązką.
Skąd te wyniki wyjaśnia to poniższa tabela, w której cyfry stanowią jednostki czasu, którym możemy przypisać dowolną wartość: tydzień, miesiąc.
|
Działanie |
SCRUM z modelowaniem |
SCRUM |
|
Wymagania |
1 |
1 |
|
Modelowanie |
3 |
0 |
|
Kodowanie |
9 |
10 |
|
Poprawianie kodu |
1 |
6 |
|
Testowanie |
1 |
3 |
|
Suma |
15 |
20 |
Otóż ponosi się co prawda koszty modelowania, ale w związku z tym, że zatwierdzony model pomaga lepiej zrozumieć projektowany system i klientowi, i wykonawcy systemu to jest mniej poprawek kodu i mniej testowania bo testy mogą być wcześniej zaplanowane. Natomiast permanentne zmiany w aplikacji celem dostosowania ich do wymagań klienta, w sytuacji gdy gotowy produkt rozmija się mniej lub bardziej z rzeczywistymi potrzebami klienta to dodatkowe koszty. Ponadto gdy nie ma modelu programista musi wszystko wymyślić sam a tym samym może się okazać, że gdy popełni błąd w rozumowaniu to prawienie błędu pociąga za sobą dodatkowe koszty. Mając model można błędy wychwycić wcześniej.
Szacuję, że przy większych projektach oszczędności czasu a tym samym pieniędzy, z tytułu modelowania, sięgają od 20 do 30 procent.
Na koniec należy pamiętać, że podane cyfry to tylko przykład i w każdym projekcie poszczególne fazy mogą wyglądać inaczej a co za tym idzie oszczędności mogą być mniejsze lub większe.
Wartość modelowania
napisane przez Michał Wolski | w kategorii agile, o inżynierii oprogramowania, zwinne modelowanie wtorek 7 lip 2009
Budowanie modeli ma ogromną wartość. Zastanawia mnie dlaczego budując dom wymagana jest dokumentacja projektowa a do budowy systemu informatycznego to sprawa opcjonalna. Dokumentacja nie zawsze jest wykonywana a jej potrzeba wynika bardziej ze świadomości zamawiającego produkt niż z wymogów prawa. Ciekawe jest to, że koszt budowy domu jest wielokrotnie niższy niż niejednego systemu informatycznego. Co więcej gdy chcemy coś dobudować do naszego domku musimy mieć gotowy plan rozbudowy i kilka zezwoleń od władz. W systemach informatycznych niejednokrotnie zmiany są nanoszone ad hoc – zwłaszcza w metodykach Agile. A przecież budowa zwinnego modelu nie jest droga a daje sporo korzyści bo pozwala na lepsze zdefiniowanie wymagań. Budowa modeli pozwala na:
- odkrycie wymogów, które w przeciwnym przypadku pozostałyby nieodkryte
- wyłapanie prawidłowych wymogów
- efektywne przekazywanie informacji dotyczące wymogów
- wyznaczenie priorytetowych wymogów
Innymi słowy niezależnie od tego czy budujemy nowy system czy też rozbudowujemy stary mając model jesteśmy wstanie lepiej zarządzać wymaganiami a tym samym całym przedsięwzięciem, gdyż unikamy większej ilości przypadkowych czynności, które mogłyby doprowadzić do porażki.
Specyfikacja oparta na scenariuszu
napisane przez Michał Wolski | w kategorii o inżynierii oprogramowania, zwinne modelowanie czwartek 2 lip 2009Zwinne modelowanie polega miedzy innymi na tym, że budowana dokumentacja do projektu nie jest nadwymiarowa. Innymi słowy jest jej tyle ile potrzeba i nie mniej ani nie więcej. Jak na tym zapanować. Ja osobiście lubię stosować scenariusze (w SCRUM opowiadania klienta), które pozwalają mi na zbudowanie zwinnych przypadków użycia. Natomiast przypadki użycia pomagają mi efektywnie:
- planować iteracje
- szacować złożoność projektu
- komunikować się z klientem
- weryfikować wymagania klienta
- planować testy
- lepiej integrować systemy
Czym jest więc przypadek użycia? W moim rozumieniu przypadek użycia to agregat scenariuszy dostarczający konkretnych wartości. Dlatego też w moich modelach scenariusze odgrywają ważną rolę, a modele opierają się o przypadki użycia.
Zwinne modelowanie w SCRUM
napisane przez Michał Wolski | w kategorii SCRUM, agile, metodyki, zwinne modelowanie poniedziałek 22 cze 2009Scrum to jedna ze zwinnych metodyk w nurcie Agile, stosowaną w procesie wytwórczym oprogramowania. SCRUM jest ukierunkowany na budowę gotowego kodu. Powstaje jednak pytanie co zrobić, gdy potrzebny jest model, lub specyfikacja projektu?
Jest na to sposób. Można budować modele zgodnie z metodyką SCRUM. Na stronie: Modelowanie w SCRUM opisałem zarys SCRUM wraz z kilkoma wskazówkami wykorzystania języka UML w tej metodyce.
Zarys Scrum
napisane przez Michał Wolski | w kategorii SCRUM, agile, ogólne, zwinne modelowanie niedziela 21 cze 2009Zasadnicze cechy SCRUM, w bardzo dużym uproszczeniu, to:
- iteracyjnie przyrosty wartości
- samoorganizujące się zespoły
- klient, bądź Właściciel Produktu, który dostarcza zespołowi listę pożądanych cech
W przypadku Scrum projekt postępuje seriami miesięcznych iteracji, które zwane są sprintami.
Scrum pasuje idealnie do projektów z szybko zmieniającymi się lub pojawiającymi się wymogami Praca, która ma być wykonana w projekcie Scrum, jest wymieniona w Product Backlog, stanowiącym listę wszystkich pożądanych zmian w produkcie. Na początku każdego sprintu odbywa się Spotkanie dot. Planowania Sprintu, podczas którego Właściciel Produktu ustala hierarchię Product Backloga a Zespół Scrum wybiera zadania, które może wykonać podczas nadchodzącego Sprintu. Te zadania są następnie przenoszone z Product Backloga do Sprint Backloga.
Każdego dnia sprintu odbywają się krótkie spotkania zwane Codziennymi Scrumami, które pomagają zespołowi terminowo wykonać pracę.
Na końcu każdego sprintu, podczas Spotkania Przeglądowego Sprintu, Zespół przedstawia dokonaną funkcjonalność.
Spis treści
Role:
Czynności:
- Codzienny Scrum (Daily Scrum)
- Hierarchizacja Zaległości Produktu (Prioritizing the Backlog)
- Planowanie Sprintu (Sprint Planning Meeting)
- Planowanie wypuszczenia (Release Planning)
- Spotkanie Przeglądowe Sprintu (Sprint Review Meeting)
- Sprint Retrospektywny (Sprint Retrospective)
- Szacowanie zaległości produktu (Estimating the Product Backlog)
Artefakty:
- Potencjalnie Wykonalny Przyrost Produktu (Potentially Shippable Product Incremement)
- Tablica Zadań (Task Board)
- Wykres Wygaszania Sprintu (Sprint Burndown Chart)
- Wykres Wygaszania Wypuszczenia (Release Burndown Chart)
- Zaległości iteracji (Sprint Backlog)
- Zaległości produktu (Product Backlog)
Rola: Właściciel produktu (Product Owner)
napisane przez Michał Wolski | w kategorii SCRUM, agile, ogólne, zwinne modelowanie niedziela 21 cze 2009Właściciel Produktu (ang. Product Owner) reprezentuje interesy wszystkich interesariuszy, określa cechy produktu i ustala hierarchię Product Backloga – zaległości produktu.
Właściciel Produktu ma następujące obowiązki:
- Określa cechy produktu;
- Podejmuje decyzje co do daty i zawartości;
- Jest odpowiedzialny za rentowność produktu (ROI);
- Ustala hierarchię cech wg wartości rynkowej;
- Koryguje cechy i priorytety co 30 dni, jeśli to konieczne;
- Akceptuje lub odrzuca efekty pracy.
Właściciel Produktu jest odpowiedzialny za pierwszy z trzech rytuałów Scrum: Planowanie Sprintu
Zespół Scrum przygląda sie zhierarchizowanemu Product Backlogowi, oddziela pozycje o największym priorytecie i zobowiązuje się je wykonać podczas sprintu. Pozycje te stają się Sprint Backlogiem.
W zamian za zobowiązanie Zespołu Scrum do wykonania wybranych zadań, Właściciel Produktu zobowiązuje się, że nie będzie obarczać zespołu nowymi wymogami w trakcie sprintu. Wymogi mogą być zmienione, ale tylko poza sprintem. Po tym jak zespół rozpocznie sprint, będzie ona maniakalnie skoncentrowana na celu sprintu.
Modelowanie:
W zwinnym modelowaniu Właściciel Produktu to osoba, która przekazuje wymagania do zamodelowania, odbiera modele – klient, lub osoba z danej organizacji, która zamawia dany produkt.
Spis treści
Role:
Czynności:
- Codzienny Scrum (Daily Scrum)
- Hierarchizacja Zaległości Produktu (Prioritizing the Backlog)
- Planowanie Sprintu (Sprint Planning Meeting)
- Planowanie wypuszczenia (Release Planning)
- Spotkanie Przeglądowe Sprintu (Sprint Review Meeting)
- Sprint Retrospektywny (Sprint Retrospective)
- Szacowanie zaległości produktu (Estimating the Product Backlog)
Artefakty:
- Potencjalnie Wykonalny Przyrost Produktu (Potentially Shippable Product Incremement)
- Tablica Zadań (Task Board)
- Wykres Wygaszania Sprintu (Sprint Burndown Chart)
- Wykres Wygaszania Wypuszczenia (Release Burndown Chart)
- Zaległości iteracji (Sprint Backlog)
- Zaległości produktu (Product Backlog)
Rola: Mistrz Scrum (Scrum Master)
napisane przez Michał Wolski | w kategorii SCRUM, agile, ogólne, zwinne modelowanie niedziela 21 cze 2009Mistrz Scrum (ang. Scrum Master) odpowiada za zapewnienie tego, aby Zespół Scrum żył wartościami i praktykami Scrum czyli innymi słowy on nadzoruje sposób wykorzystania metodyki. Mistrz Scrum chroni zespół poprzez zapewnienie tego, że nie podejmą oni zbyt wielkich zobowiązań w stosunku do tego, co mogą osiągnąć podczas sprintu. Mistrz Scrum ułatwia Codzienny Scrum i staje się odpowiedzialny za usuwanie przeszkód, o których to informuje zespół w trakcie tych spotkań.
Mistrz Scrum:
- Reprezentuje zarządzanie nad projektem (współdziałanie);
- Jest odpowiedzialny za wprowadzanie w życie wartości i praktyk Scrum;
- Prowadzi spotkania Codziennego Scruma;
- Usuwa utrudnienia;
- Chroni zespół przed zewnętrznymi zakłóceniami;
- Zapewnia, że zespół jest w pełni funkcjonalny i produktywny;
Ponadto Mistrz Scrum nie jest kierownikiem projektu, ale mediującym liderem zespołu i kierownikiem procesu Scrum. Jego głównym zadaniem jest monitorowanie zadań sprintu, aby zapewnić jego powodzenie. W tym celu musi regularnie fizycznie spotykać się z pozostałymi członkami zespołu. Należy pamiętać, że Mistrz Scrum nie tworzy/przypisuje zadań dla zespołu (robi to sam zespół).
Modelowanie:
Mistrz Scrum w zwinnym modelowaniu to kierownik projektu, który poza nadzorowaniem prac nad modelem może zajmować się szacowaniem ryzyka przedsięwzięcia.
Spis treści
Role:
Czynności:
- Codzienny Scrum (Daily Scrum)
- Hierarchizacja Zaległości Produktu (Prioritizing the Backlog)
- Planowanie Sprintu (Sprint Planning Meeting)
- Planowanie wypuszczenia (Release Planning)
- Spotkanie Przeglądowe Sprintu (Sprint Review Meeting)
- Sprint Retrospektywny (Sprint Retrospective)
- Szacowanie zaległości produktu (Estimating the Product Backlog)
Artefakty:
- Potencjalnie Wykonalny Przyrost Produktu (Potentially Shippable Product Incremement)
- Tablica Zadań (Task Board)
- Wykres Wygaszania Sprintu (Sprint Burndown Chart)
- Wykres Wygaszania Wypuszczenia (Release Burndown Chart)
- Zaległości iteracji (Sprint Backlog)
- Zaległości produktu (Product Backlog)



