gdzie ten diabeł?

Całkiem interesujący i generalnie słuszny punkt widzenia analityka systemowego:

W praktyce dokument analityczny charakteryzuje wszystkie procesy, których obsługa jest przewidziana w systemie, na dość dużym poziomie ogólności; wynika to z faktu, że ani nie ma czasu na wchodzenia w mało istotne - z punktu widzenia biznesu - detale oraz - co może ważniejsze - nikt nie jest w stanie nigdy tak przewidzieć wszystkich rzeczy, które zajść mogą, jak i określić wszelkich funkcji, które użytkownikowi mogą okazać się przydatne. W zasadzie więc dokument analizy jest ledwie szkicem tego, co będzie w systemie zaimplementowane.

Chyba większość praktycznych analityków jak i projektantów systemów informatycznych zgodzi się z powyższym bez szczególnych oporów. Przynajmniej jeśli mowa o zakresie funkcjonalnym systemu... Teoretycy uprą się przy opisaniu funkcjonalności w „ścisły, klarowny i nie pozostawiający miejsca na rozbieżne interpretacje sposób”, ale mniejsza o nich. Spójrzmy na sprawę realnie.

W dalszej części zacytowanego tekstu czytamy:

Jeśli dodamy do tego prototypy [...], uregulowania prawne, listę dokumentów wejściowych i wyjściowych oraz ERD, to możemy powiedzieć, że mamy opisane około 50% funkcjonalności. Reszta [...] regulowana jest przez życie i bieżące potrzeby.

tamże

Jak rozumiem opisane „wystarczająco dobrze”, a nie przesadnie...

szczegół

Rozmowa na temat modelu klas zidentyfikowanych w procesie analizy pewnego systemu jaką kilka dni temu przeprowadziłem z naszym analitykiem:

— na ile ten model klas jest wiążący? np. jeśli napisałaś „Pełna nazwa / Imię Tekstowy(172)” to serio znaczy, że ma być zaprojektowane na 172 znaki?

— model nie jest wiążący, bo to są klasy analityczne, natomiast tam, gdzie jest podana długość znaków, tam ma być zachowana - ma to różne przyczyny, czasem chęć ograniczenia twórczości, czasem wymóg z powodu zarządzeń wewnętrznych itd.

— to 172 to taka ciekawostka w sumie ;-) magic number?

— już nie pamiętam, dlaczego tyle, zdaje się, że sprawdzili to trochę empirycznie na przykładach podmiotów, które mają aktualnie w bazie, a może chcieli mieć tak jak w starym systemie. zgodziłam się, skoro im zależało, a ja nie widziałam w tym nic groźnego dla nas, a w końcu od czasu do czasu musiałam im ustępować i przychylać się do ich zdania

— trochę mnie to zdziwiło - liczba nie okrągła ani dla człowieka ani dla maszyny...

— z pewnością jakiejś okrągłości się tam dopatrzyli, pewnie patrzą dalej (albo bliżej) niż my maluczcy

Dyskutowany dokument analizy powstawał w bólach przez około pół roku, nie mam więc śmiałości polemizować z jego treścią. Jeżeli zawiera takie szczegóły jak „długość pola = 172” to widocznie zostało tu uznane za istotne. „Im zależało”. Zatem wychodzi na to, że nawet jeśli faktycznie opis funkcjonalności jest „rozsądnie uogólniony”, to projekt techniczny i tak musi zawierać kilka zupełnie irracjonalnych szczegółów... :-/ Największy diabeł tkwi w tym, co zostało w cytowanym na wstępie tekście ujęte rozbrajająco prostym „oraz ERD”.

A nawiasem mówiąc — wydaje mi się co najmniej interesujące, że to właśnie funkcjonalność, a nie szczegóły techniczne są tym, co potrafi zrozumieć/docenić analityk jak i decydent szczebla dowolnego zarówno po stronie klienta jak i wykonawcy systemu...

Komentarze

#1 | 2005.07.28 23:59 | mmazur

Skoro istnieje podział na praktycznych i teoretycznych projektantów, to wniosek z przedostatniego akapitu powinien zostać chyba jakoś zgrabnie i chwytliwie sformułowany, żeby łatwo wpadał w ucho i mógł zrobić karierę sam z siebie. Coś analogicznego do "przedwczesna optymalizacja to źródło wszelkiego zła". Hmmm. "Projekt powinien zahaczać o szczegóły tylko w konkretnych, uzasadnionych przypadkach"?

Inną sprawą jest umiejętność odróżniania miłych ogółów od nadmiarowych szczegółów. Acz tego chyba nigdzie nie uczą, trzeba samemu na podstawie zebranych doświadczeń.

#2 | 2005.07.29 08:04 | MiMaS

Projekt powinien zahaczać o szczegóły tylko w konkretnych, uzasadnionych przypadkach

Oj, nie, nie, nie.... wręcz przeciwnie!

To analiza powinna (IMHO) ograniczać szczegóły nie wnoszące nic do sprawy. Natomiast projekt (techniczny) jak najbardziej powinien być szczegółami wypełniony po brzegi. I to nawet jeśli miałaby to być jakaś metoda z rodziny agile.

Chodziło mi raczej o to, że diabeł tkwi w szczegółach przemyconych w analizie mimochodem, i że w takiej sytuacji unikanie tego diabła w opisie funkcjonalności i tak mija się z celem. „Uogólniony opis funkcjonalności” służy jedynie do poprawy samopoczucie kierownictwa i samego analityka, a projektanta i tak dobija się z drugiej strony....

#3 | 2005.08.05 17:22 | Łukasz Grabuń

A nawiasem mówiąc — wydaje mi się co najmniej interesujące, że to właśnie funkcjonalność, a nie szczegóły techniczne są tym, co potrafi zrozumieć/docenić analityk jak i decydent szczebla dowolnego zarówno po stronie klienta jak i wykonawcy systemu...

Bo któż by sobie głowę technikaliami zawracał?

Na poważnie: przy zachowaniu ostrożności oraz po nadaniu elastyczności systemu wysokiego priorytetu podczas fazy projektowania szczegóły techniczne nie są istotne, gdyż - jeśli nie dojdzie do poważnej katastrofy, rzędu "zmiana platformy", powiedzmy - wykonawca będzie w stanie dostarczyć klientowi wszystko, czego ten sobie zażyczy. Niskim nakładem kosztów, dodajmy.

#4 | 2005.08.08 08:02 | MiMaS

Fakt, że „wykonawca będzie w stanie dostarczyć klientowi wszystko” nie usprawiedliwia (w moich oczach, rozumiem, że z Twojej perspektywy wygląda to zupełnie inaczej) narzucania na projektanta irracjonalnych ograniczeń...

#5 | 2005.08.11 17:43 | Łukasz Grabuń

@Mimas: co to jest irracjonalne ograniczenie (chyba nie ograniczenie długości pola do 172 znaków)?

Swoją drogą: pisząć ERD miałem na myśli schemat encji; dodawanie do niego atrybutów jest czasem, z braku lepszego słowa, niepotrzebne. Nie wspominając już o ich dokładnym opisywaniu.

#6 | 2005.08.12 07:54 | MiMaS

Jak dla mnie 172 znaki na nazwę czegokolwiek jest długością całkowicie irracjonalną — co to za liczba w ogóle? ;-)

Ale poważnie(j), chodzi mi generalnie o wtykanie w analizę szczegółów na zupełnie innym poziomie „rozdzielczości”. Nie ma sensu uogólniać jednego elementu analizy równocześnie precyzując do bólu inne jej fragmenty. Taka analiza jest .... niesymetryczna.

miałem na myśli schemat encji; dodawanie do niego atrybutów jest czasem, z braku lepszego słowa, niepotrzebne.

No bez przesady... Nie popadajmy w drugą skrajność ;-)

 

Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.