Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Wymagania biznesowe a funkcjonalne

bardzo ciekawy artykuł zatytułowany:
What’s the Difference Between Business Requirements and Functional Requirements?

konkluzja:

If you are developing ‘requirements’ using use cases, you are actually designing a system (creating a system model), not defining business requirements(!). We believe a focus on use cases with no prior business model puts your project at grave risk.

http://www.ronross.info/blog/2012/05/10/what%E2%80%99s...

Często spotykam się z myleniem (przeplataniem) wymagań biznesowych i systemowych (rozumianych jako wymagania na system= oprogramowanie).

Preferuje rozłączne traktowanie wymagań jako fazy lub etapy:
- wymagana biznesowe (nieinformatyczne)
- wymagania na oprogramowanie

a Wy?

P.S.
Poza tym polecam Rona'Rosa i jego książki :)
http://www.brsolutions.com/publications.php#books
Henryk M.

Henryk M. Project Management /
Lean Management /
Systems Engineering

Temat: Wymagania biznesowe a funkcjonalne

Jarek Żeliński:

Często spotykam się z myleniem (przeplataniem) wymagań biznesowych i systemowych (rozumianych jako wymagania na system= oprogramowanie).

Preferuje rozłączne traktowanie wymagań jako fazy lub etapy:
- wymagana biznesowe (nieinformatyczne)
- wymagania na oprogramowanie

a Wy?

Jarku,

To, co piszesz, wydaje się oczywiste, ale nie jest :o)
Z mojego doświadczenia wynika, że zamawiający oczekuje "systemu (IT), który zaspokoi jego potrzeby i rozwiąże problemy...", przy czym zwykle określa je (wymagania) na poziomie bardzo ogólnym, np. zorganizowanie (proces) i przyśpieszenie sprzedaży, wdrożenie systemu pomiaru efektów...

Wynika to z (błędnych) przekonań, że:
- dostawca rozwiązań IT sam wie dobrze, co należy wdrożyć,
- wdrażane systemy IT mają tak bogaty zestaw funkcjonalności, że "wszystko tam już jest", tylko to poukładać i gotowe.

Napisałem wyżej "zamawiający", ponieważ - i tu powstaje kolejny problem - zamawiający często nie jest tym, który płaci za wdrożone rozwiązanie, a także (często) sam nie używa rozwiązań, które zamawia. W pewnym sensie jest mu wszystko jedno, co zamawia.

Z pewnością pracujesz z użytkownikami końcowymi systemów, które projektujesz, ale ich myślenie jest naznaczone "wymaganiami" zamawiających (przełożonych).

Ja polecę książki Oliviera Sacksa, neurologa. Nie pisze o projektowaniu i wdrażaniu systemów IT. Podoba mi się jego podejście do analizy przypadku, jakim jest uraz neurologiczny. Otóż uważa on, że opisywanie przypadków medycznych (neurologicznych) suchym, fachowym językiem nie oddaje - tu moja parafraza - "potrzeb i oczekiwań klienta". Propaguje on opowiadanie historii, lepiej obrazujących stan rzeczy(wisty) i ból, cierpienie, a także oczekiwania, także te niewyartykułowane, osoby zmagającej się z dolegliwościami.

Może na drodze "opowiadania historii" i szukania sposobu na jej "szczęśliwe zakończenie" może być lepszym sposobem od opisywania przypadków użycia, które tylko rozbijają i zaciemniają obraz całości?

Pozdrawiam
Bartosz Andrzejewski

Bartosz Andrzejewski Analityk systemowy i
biznesowy, REQB
CPRE, IPMA. Ekspert
...

Temat: Wymagania biznesowe a funkcjonalne


Często spotykam się z myleniem (przeplataniem) wymagań biznesowych i systemowych (rozumianych jako wymagania na system= oprogramowanie).

Preferuje rozłączne traktowanie wymagań jako fazy lub etapy:
- wymagana biznesowe (nieinformatyczne)
- wymagania na oprogramowanie

a Wy?

My też :-)

Oczywiście, że fazy. Oczywiście, że etapy. Oczywiście, że w tej właśnie kolejności. Z tym, że te drugie muszą być śladowalne* wstecz do tych pierwszych i jasno wynikać z tychże. Te pierwsze zaś wywiedzione zostać powinny z procesów, z założeń, z ograniczeń tudzież z reguł biznesowych. Tako rzecze Captain Obvious.

Co poniektórzy (kategoryzacja według Global Association for Software Quality) rozdzielają wymagania na trzy kategorie:
- customer requirements
- solution/system requirements
- product/component requirements

Te trzy poziomy dają się trochę lepiej zmapować do wierszy w siatce Zachmana, niż kategoryzacja dwustopniowa. Przedmiotem zainteresowania analityka w Siatce jest aż 21 z 36 obszarów (wg K. Hass, D. Wesselsa i K. Brennana), więc każdy przy odrobinie dobrej woli znajdzie w niej miejsce, gdzie to upchnąć :-)
Ale sam osobiście preferuję pracę na dwustopniowej, bo nikt nie da budżetu, żeby robić trzy "przebiegi". Kto się zajmuje analizą to wie, że ten zawód dopiero buduje swoje znaczenie, a w większości przypadków "analityk to strata pieniędzy, programiści wszystko zrobią" (w tym właśnie sęk, że "wszystko"). W większości moich projektów byłby to zresztą przerost formy nad treścią (nie współbuduję Airbusa).

Idąc za moją mentorką Suzanne Robertson — całkowicie się zgadzam, że wymagania mają być rozłączne od implementacji. Nawet już na poziomie wymagań na oprogramowanie. Na tym bazuję w pracy i ilekroć uległem pokusie "sprofilowania" wymagania pod konkretną implementację — z reguły tego żałowałem. Test case'y są wtedy dużo mniej elastyczne, itepe.
Nie zawsze się tak da zrobić, bo wymaganie może dotyczyć właśnie szczegółu implementacyjnego (jest to wtedy element projektu), ale wtedy zawsze powinno ono wynikać z CZEGOŚ NADRZĘDNEGO (najlepiej dokumentu). U mnie w firmie stosuje się wymagania dot. reguł stosowania kolorów i kontrolek (kiedy lista, kiedy radiobutton) i jest do tego specjalna księga napisana przez speców od Corporate Identity i usability. No, ale wtedy jest do czego śladować* wstecz takie wymagania.

UML i przypadki użycia bardziej służą do modelowania ROZWIĄZANIA, a nie PROBLEMU — a wiec wymagań na oprogramowanie, a nie biznesowych. PROBLEM jest na tle biznesowym i może przecież nie mieć z żadnym software'm nic wspólnego. PROBLEM może być opisany scenariuszem biznesowym, zamodelowany w BPMN itp. ale wciąż musimy zamodelować i _zrozumieć_ PROBLEM, aby przejść do głowienia się nad ROZWIĄZANIEM. Robertsonowie dzielą to na BUC (Business Use Case) i PUC (Product Use Case). PUC jest wynikiem rozkminienia BUC-a.
Osobiście unikam tych nazw. U mnie "przypadek użycia" zawsze dotyczy ROZWIĄZANIA (czyli de facto systemu informatycznego). Zamiast BUC-a wolę "scenariusz biznesowy" albo cokolwiek innego, ale wpychanie do biznesu terminu rodem z IT (a za taki uważam "przypadek użycia") jest IMO pozbawione sensu.
Tu zgadzam sie ze wspomnianym przez Henryka Oliverem Sachsem, że nie należy pchać slangu lekarskiego do uszu pacjenta.
My, analitycy, powinniśmy znać i rozumieć slang biznesu/klienta, bo mu służymy i on nam płaci. Ale biznes/klient naszego nie musi. Choć nie powiem, miło mi było, kiedy główna księgowa rozrysowała mi kiedyś diagram klas wraz z kardynalnościami. Ale to już zupełnie inna historia.

* Nienawidzę tego słowa

Rozpisałem się jak nigdy, popisałem same oczywiste rzeczy, ale jak życie pokazuje oczywiste one są tylko na papierze. Kto z Was nie spotkał się z klientem biznesowym, który od samego początku ma w głowie gotowy projekt systemu i przy próbie analizy o co chodzi broni go jak Częstochowy? Że to tak właśnie ma być w tym sofcie, bo on to tak wymyślił, bo on jest dyrektorem, a ci ludzie z produkcji to się guzik znają i nie ma co z nimi gadać o problemach, bo on wszystko wie i już zaprojektował, jak to powinno wyglądać?
Czy tylko ja mam "szczęście" do takich ludzi?

Pozdrawiam.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Wymagania biznesowe a funkcjonalne

Co poniektórzy (kategoryzacja według Global Association for Software Quality) rozdzielają wymagania na trzy kategorie:
- customer requirements
- solution/system requirements
- product/component requirements


osobiście stosuje:
- definiuje system i jego granice (analizowanym systemem jest cała firma czy planowane do wdrożenie oprogramowanie, czy .. co innego?)
- mają definicje co w danym projekcie jest Systemem definiuje otoczenie systemu, wymagania wobec systemu i ograniczenia tych wymagań

to jest "metoda" z ogólnej teorii systemów i zostało mi to jeszcze z wojska :)

Idąc za moją mentorką Suzanne Robertson — całkowicie się zgadzam, że wymagania mają być rozłączne od implementacji.

to powinno być oczywiste: wybór rozwiązania może miejsce po zdefiniowaniu wymagań na to rozwiązanie

UML i przypadki użycia bardziej służą do modelowania ROZWIĄZANIA,

taka jest semantyka tego pojęcia w UML... notorycznie łamana w projektach które obserwuję..., nawet w "zacnych książkach".
popisałem same oczywiste rzeczy, ale jak życie pokazuje oczywiste one są tylko na papierze.

:)

Kto z Was nie spotkał się z klientem biznesowym, który od samego początku ma w głowie gotowy projekt systemu i przy próbie analizy o co chodzi broni go jak Częstochowy? Że to tak właśnie ma być w tym sofcie, bo on to tak wymyślił, bo on jest dyrektorem, a ci ludzie z produkcji to się guzik znają i nie ma co z nimi gadać o problemach, bo on wszystko wie i już zaprojektował, jak to powinno wyglądać?
Czy tylko ja mam "szczęście" do takich ludzi?

nie tylko Ty :), w takich sytuacjach wprowadzam zawsze do modelu procesów "linie podziały" na zarządczy model procesów biznesowych i wykonawczy, na tym drugim wyżywa się taki spryciarz jak powyżej (zignorowanie go może położyć projekt) a ja panuje nad tym co jest już implementacją (jej próbą) a co jest faktycznym biznesowym procesem (czyli nie jak a co się robi). Ale to nie ułatwia pracy ;)
Bartosz Andrzejewski

Bartosz Andrzejewski Analityk systemowy i
biznesowy, REQB
CPRE, IPMA. Ekspert
...

Temat: Wymagania biznesowe a funkcjonalne

osobiście stosuje:
- definiuje system i jego granice (analizowanym systemem jest cała firma czy planowane do wdrożenie oprogramowanie, czy .. co innego?)
- mają definicje co w danym projekcie jest Systemem definiuje otoczenie systemu, wymagania wobec systemu i ograniczenia tych wymagań
Ja definiuję granice systemu (system boundary) jako zbiór przypadków użycia wraz z powiązanymi aktorami. Po czym obrysowuję prostokątem :-) Zgodnie z logiką opisaną przez Robertsonów w "Mastering the Requirements Process. Second Edition".

Czyli jak popatrzeć życzliwym okiem, metoda proponowana przez Robertsonów jest to pewien obszar teorii systemów przykrojony do systemów informatycznych. Jestem z wykształcenia ekonomistą, nie cybernetykiem i patrzę przez pryzmat "Co by tu z zakresu wywalić, żeby było TYLKO to, co NAPRAWDĘ potrzebne?". Tu kłania się również zasada KISS :-)
A skoro jestem ekonomistą, to i procesowcem, więc podejście od strony UC mi odpowiada, zresztą przy dużej liczbie i złożoności interakcji użytkownik-komputer jest IMO najwygodniejsze :-)

Zasada Pareto: Brać na warsztat tylko to 20% ficzerów*, które rozwiązują 80% problemów. Pozostałe 20% problemów jest mało palących i może sobie być. Z reguły. Nie zawsze.

Ograniczenia zewnętrzne, fakty, założenia i reguły biznesowe wpływające na system jak najbardziej biorę pod uwagę (hej, staram się brać!)

*Nienawidzę tego słowa

Idąc za moją mentorką Suzanne Robertson — całkowicie się zgadzam, że wymagania mają być rozłączne od implementacji.

to powinno być oczywiste: wybór rozwiązania może miejsce po zdefiniowaniu wymagań na to rozwiązanie
"Powinno" jest bardzo właściwym słowem :-)

UML i przypadki użycia bardziej służą do modelowania ROZWIĄZANIA,

taka jest semantyka tego pojęcia w UML... notorycznie łamana w projektach które obserwuję..., nawet w "zacnych książkach".
Podaj tytuły jak możesz, żebyśmy wiedzieli, czego unikać :-)

Czy tylko ja mam "szczęście" do takich ludzi?

nie tylko Ty :), w takich sytuacjach wprowadzam zawsze do modelu procesów "linie podziały" na zarządczy model procesów biznesowych i wykonawczy, na tym drugim wyżywa się taki spryciarz jak powyżej (zignorowanie go może położyć projekt) a ja panuje nad tym co jest już implementacją (jej próbą) a co jest faktycznym biznesowym procesem (czyli nie jak a co się robi). Ale to nie ułatwia pracy ;)

To jest temat-rzeka godzien osobnego wątku :-)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Wymagania biznesowe a funkcjonalne

Ja definiuję granice systemu (system boundary) jako zbiór przypadków użycia wraz z powiązanymi aktorami. Po czym obrysowuję prostokątem :-) Zgodnie z logiką opisaną przez Robertsonów w "Mastering the Requirements Process. Second Edition".


osobiście hołduję definicji UML: jeżeli System to oprogramowanie to Aktor nie jest elementem systemu, jest jego użytkownikiem (byt poza systemowy). Jeżeli System to Cała Firma, Aktor jest elementem Systemu.
"Co by tu z zakresu wywalić, żeby było TYLKO to, co NAPRAWDĘ potrzebne?".

analiza zakresu projektu (co będzie w tym Systemie) to odrębny etap :)
UML i przypadki użycia bardziej służą do modelowania ROZWIĄZANIA,

taka jest semantyka tego pojęcia w UML... notorycznie łamana w projektach które obserwuję..., nawet w "zacnych książkach".
Podaj tytuły jak możesz, żebyśmy wiedzieli, czego unikać :-)

w moich oczach np. Alistair Cockbourn posługuje się pojęciem "Przypadek Użycia" ale to nijak się ma do definicji PU z UML, na szczęście dla niego on chyba tez skrótu UML nie używa (a nawet lekko drwi z tych bąbelków)...ale na nieszczęście używa nazwy Przypadek Użycia i ludzie kojarzą to z UML.Jarek Żeliński edytował(a) ten post dnia 11.05.12 o godzinie 14:23
Bartosz Andrzejewski

Bartosz Andrzejewski Analityk systemowy i
biznesowy, REQB
CPRE, IPMA. Ekspert
...

Temat: Wymagania biznesowe a funkcjonalne

Jarek Żeliński:
Ja definiuję granice systemu (system boundary) jako zbiór przypadków użycia wraz z powiązanymi aktorami. Po czym obrysowuję prostokątem :-) Zgodnie z logiką opisaną przez Robertsonów w "Mastering the Requirements Process. Second Edition".


osobiście hołduję definicji UML: jeżeli System to oprogramowanie to Aktor nie jest elementem systemu, jest jego użytkownikiem (byt poza systemowy). Jeżeli System to Cała Firma, Aktor jest elementem Systemu.
Nieprecyzyjnie się wyraziłem. Symbole aktorów są na tym diagramie POZA w/w prostokątem, bąbelki wewnątrz prostokąta :-)

Bardzo doceniam Twój sposób dyskusji — bez śladu morałów typu "robisz źle", choć po przeczytaniu swojego tekstu widzę, że można wyczytać tam jednoznacznie, że wtykam aktorów do ramki, co jest błędem, bo przecież aktorzy nie są przetwarzani przez system.

Poczekajmy na cenne głosy innych — mam nadzieję, że w równie kulturalnej manierze.Bartosz Andrzejewski edytował(a) ten post dnia 11.05.12 o godzinie 14:41
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Wymagania biznesowe a funkcjonalne

Bartosz Andrzejewski:
Bardzo doceniam Twój sposób dyskusji — bez śladu morałów typu "robisz źle", choć po przeczytaniu swojego tekstu widzę, że można wyczytać tam jednoznacznie, że wtykam aktorów do ramki, co jest błędem, bo przecież aktorzy nie są przetwarzani przez system.
Trochę filozoficzna dyskusja, bo aktora(użytkownika) w systemie reprezentujemy (zwykle) poprzez uwierzytelnienie i autoryzację. Więc moim zdaniem to nie do końca chodzi o to, czy przetwarzamy przez system czy nie - przynajmniej dane o nim.
Warto pamiętać, że aktor może reprezentować także inny system i może być nie tylko korzystającym z przypadku użycia, także przypadek użycia może zależeć od aktora (który wtedy zwykle reprezentuje jakiś system). To daje duże możliwości obrazowania interakcji z systemem na diagramach PU.
Przykład:

Obrazek


Poczekajmy na cenne głosy innych — mam nadzieję, że w równie kulturalnej manierze.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Wymagania biznesowe a funkcjonalne

Mateusz Kurleto:
Trochę filozoficzna dyskusja, bo aktora(użytkownika) w systemie reprezentujemy (zwykle) poprzez uwierzytelnienie i autoryzację.

uwierzytelnienie to realizacja wymagania poza-funkcjonalnego (ograniczenia): system powinien pozwalać na identyfikacje użytkownika, nic nie stoi na przeszkodzie by ludzie deklarowali swoje imię i nazwisko podczas pracy z Systemem, może to być jednak ryzykowne... ;), po drugie wiele systemów WWW ma aktora (np. użytkownik mojego bloga) i nie autoryzują się...

Więc moim zdaniem to nie do końca chodzi o to, czy przetwarzamy przez system czy nie - przynajmniej dane o nim.

System przetwarza informacje o mnie a nie "mnie", ja jestem poza systemem,

Warto pamiętać, że aktor może reprezentować także inny system i może być nie tylko korzystającym z przypadku użycia,

owszem, Aktorem Systemu jest "każdy zewnętrzny byt żądający usługi od Systemu".
także przypadek użycia może zależeć od aktora (który wtedy zwykle reprezentuje jakiś system). To daje duże możliwości obrazowania interakcji z systemem na diagramach PU.
Przykład:

Obrazek

tu ukryto fakt, istnienia interfejsu do PayPal, w zasadzie PayPal to nie aktor systemu (PayPal nie inicjuje tego dialogu) tylko zewnętrzny podsystem obsługi płatności (klasyczny outsourcing algo jak kto woli chmura).

Zresztą asocjacja wskazuje na aktora, użycie (linia przerywana z grotem) wskazuje na "aktora" ale nie "tego Systemu"...Jarek Żeliński edytował(a) ten post dnia 11.05.12 o godzinie 18:27
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Wymagania biznesowe a funkcjonalne

Jarek Żeliński:
tu ukryto fakt, istnienia interfejsu do PayPal, w zasadzie PayPal to nie aktor systemu (PayPal nie inicjuje tego dialogu) tylko zewnętrzny podsystem obsługi płatności (klasyczny outsourcing algo jak kto woli chmura).
Bo i nie w tym miejscu ten interfejs występuje.

Zresztą asocjacja wskazuje na aktora, użycie (linia przerywana z grotem) wskazuje na "aktora" ale nie "tego Systemu"...
To nie jest use, a depends jeśli dobrze pamiętam, zatem słusznie pokazujemy, że przebieg scenariusza użycia Zapłata jest zależny od Paypala a więc zmiany w Paypalu będą implikowały zmiany w obsłudze przypadku użycia Zapłata.
Diagram przypadków użycia rozumiem jako model przedstawiający możliwe interakcje z systemem i zależności między nimi a innymi aktorami. Zatem w pewnym sensie jest to kontekst systemu. W związku z czym mozliwość użycia w ten sposób relacji "zależność" jest dla mnie niezwykle użyteczna.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Wymagania biznesowe a funkcjonalne

po bożemu:
- aktor to zewnętrzny (jest poza Systemem) byt inicjujący z Systemem interakcję (wtedy jest połączony asocjacją z UC w obrębie Systemu), PayPal interakcji nie inicjuje ale jest "używany" i słusznie został połączony relacją użycia, diagram jest OK,
- diagram Use Case nie obrazuje żadnych scenariuszy... (scenariusz przypadku użycia to inny dokument)Jarek Żeliński edytował(a) ten post dnia 12.05.12 o godzinie 10:13

Następna dyskusja:

Procesy biznesowe w sektora...




Wyślij zaproszenie do