Po wygłoszeniu zaplanowanych wykładów zaproszono uczestników konferencji do wymiany doświadczeń. W roli ekspertów wystąpili: Stephen Withall, Marek Ujejski (Polskie Towarzystwo Informatyczne), Anita Walkowiak (AION). Dyskusję moderował Artur Kasprzyk (AION).
W trakcie dyskusji pojawiły się następujące pytania:
Czy analityk biznesowy może dobrze wykonywać swoją pracę bez uprzedniej praktyki programistycznej?
Opinie większości osób były zgodne – praktyka programistyczna nie jest wymagana. Aczkolwiek pojawiły się opinie, iż dobrze byłoby, gdyby analityk znał konsekwencje podejmowanych przez siebie decyzji. W przeciwnym bowiem razie bardzo łatwo jest doprowadzić do sytuacji, w której poprawnie określone oczekiwania trudno jest zrealizować i z tego powodu wymagać mogą zmiany już zatwierdzonych decyzji.
Korzystanie z szablonów niewątpliwie ułatwia oraz przyspiesza pracę. Wprowadza pewną automatyzację, co prowadzi do rutyny. Jak używać wzorców/szablonów, aby nie stracić własnej kreatywności? Czy wzorce są na tyle niebezpieczne, że za innowacje powinien być odpowiedzialny zespół, który z nich nie korzysta?
Jako pierwszy głos w dyskusji zabrał Stephen Withall. Stwierdził, iż jego dotychczasowe doświadczenia ze stosowania wzorcowych rozwiązań wskazują na szybsze dochodzenie do poprawnych konstrukcji niźli w przypadku opracowywania docelowych rozwiązań od podstaw. Jednocześnie nie zachodzi przy tym ryzyko utraty innowacyjności czy kreatywności. W trakcie dalszej dyskusji nawiązano także do praktyk stosowania wzorców projektowych. Także i w tym przypadku podkreślono, iż stosowanie opracowanych szablonów nie wpływa negatywnie na kreatywność, podczas gdy pozytywny wpływ objawia się nie tylko szybszym tempem prac, ale także obserwuje się poprawę jej jakości oraz tendencję do poszukiwania przez członków zespołów kolejnych, ogólnych rozwiązań dla często występujących problemów.
Jakie zmiany w pracy analityka niesie wprowadzenie MDA?
Model-Driven Architecture zakłada, iż przygotowywane modele, na których mają być wykonane przekształcenia, są jednoznaczne i precyzyjne. Ta cecha narzuca określone wymagania odnośnie pracy analityka, jego wiedzy oraz wykorzystywanych technik analitycznych. Realizowane przez niego działania powinny skutkować powstaniem modeli spełniających powyższe kryteria. Co otrzymujemy w zamian? Przede wszystkim skrócenie procesu produkcyjnego, mniejszą błędorodność prac (wyższą jakość produktu), możliwość szybszej reakcji na zmiany.
Poddano jednak w wątpliwość, czy wprowadzenie MDA do procesu wytwórczego nie spowoduje, iż programiści będą zmuszeni do zarządzania kodem napisanym przez „maszynę” i czy nie okaże się, iż kod ten będzie nieefektywny z punktu widzenia aplikacji. Anita Walkowiak, od kilku lat wykorzystująca MDA w projektach, odpowiedziała, iż kod „wygenerowany” przez maszynę jest tylko i wyłącznie takim kodem, jaki chcemy, aby był wygenerowany. W związku z tym, nie ma potrzeby go poprawiać (jeśli wygenerowany kod nie odpowiada potrzebom, wówczas należy zmodyfikować transformacje, bądź zarzucić pomysł generowania kodu dla danego obszaru). Należy natomiast go uzupełnić o te aspekty, które nie są poddane transformacjom.
Jestem przedstawicielem firmy produkującej oprogramowanie. Podpisujemy umowę z ogólnym załącznikiem funkcjonalnym i tworzymy specyfikację wymagań podczas realizacji projektu (stosując wewnętrzne wzorce). Jak w praktyce dokonywać odbioru systemu przez klienta? Zaznaczam, że czasem występują rozbieżności w interpretacji między dostawą i odbiorcą załącznika funkcjonalnego do umowy.
Pytanie wywołało żywiołową reakcję, gdyż z problemami tego typu stykają się praktycznie wszystkie zespoły realizujące projekty informatyczne. Pierwsza z udzielonych odpowiedzi brzmiała „Nie ma szans na sprawną realizację projektu, jeśli wymagania nie są jasno i precyzyjnie określone. Niespójności i brak precyzji zawsze się mszczą”. Jednakże, szybko podano kontr odpowiedź – „Skoro nie należy podchodzić do realizacji projektów w przypadku niepoprawnie wyspecyfikowanych wymagań, a życie pokazuje, że taka jest zdecydowana większość specyfikacji, to czy przypadkiem nie doprowadzimy do paraliżu na styku klient-wykonawca?”.
W dalszej części dyskusji podano propozycje rozdzielenia prac nad realizacją projektu informatycznego na dwa etapy: analizę oraz realizację systemu zgodnie z dostarczonymi wynikami analizy. Dzięki temu łatwiej będzie szacować poszczególne etapy prac (w trakcie analizy dowiadujemy się, co system rzeczywiście powinien robić, co stanowi dobry punkt wyjściowy do szacowania prac związanych z realizacją wymagań), a przede wszystkim każdy z etapów będzie realizowany z wykorzystaniem wystarczająco precyzyjnych informacji początkowych.
Pan Marek Ujejski zwrócił jednakże uwagę na formalny problem występujący w przypadku realizacji projektów zgodnych z ustawą o zamówieniach publicznych. Otóż, przy tego typu postępowaniu, praktykuje się, iż firma realizująca jeden z etapów prac, jest automatycznie wykluczana z ubiegania się o realizację kolejnego etapu, co może stanowić problem.
Czy pominięcie use case [przyp. aut. przy opisywaniu zasad funkcjonowania organizacji] nie spowoduje zwiększenia luki istniejącej pomiędzy specyfikacją wymagań a specyfikacją projektu.
Pytanie nawiązywało bezpośrednio do wykładów omawiających podejście firmy AION do specyfikacji oczekiwań biznesu wobec rozwiązań informatycznych. Prowadzący panel dyskusyjny, pan Artur Kasprzyk zwrócił uwagę na fakt, iż pojęcie przypadku użycia zostało wprowadzone jako pomysł na podział całej funkcjonalności na mniejsze składowe, dające określony rezultat aktualnemu użytkownikowi systemu. Z punktu widzenia określania oczekiwań uczestników procesów biznesowych, koncepcja przypadku użycia jest zbyt obszerna, gdyż nie pozwala na jawne wskazanie oczekiwań, które stworzą wspomnianą wartość dla użytkownika, a które są istotne z punktu widzenia kroków w procesie biznesowym. Oznacza to, iż z jednej strony, nie powstaje luka pomiędzy specyfikacją wymagań, a specyfikacja projektu; co więcej uzyskuje się płynne przejście pomiędzy wymaganiami projektu (wartościowanymi przez reprezentantów biznesu) a oczekiwaniami przyszłych użytkowników, którzy zatwierdzą określony sposób realizacji wymagań biznesowych, ujęty przypadkami użycia.
Czy istnieją wzorce kontroli jakości wymagań ?
Pytanie wywołało lawinę komentarzy oraz zainicjowało dyskusję na temat praktycznych możliwości weryfikacji specyfikowanych oraz otrzymywanych oczekiwań. Uczestnicy dyskusji stwierdzili, powołując się także na omawianą przez Suzanne Robertson metodykę Volere, iż systematyczne podejście do specyfikowania wymagań umożliwia weryfikację jakości każdego z poszczególnych wymagań oraz grupy wymagań ściśle ze sobą powiązanych. Problemem staje się natomiast weryfikacja kompletności i spójności wszystkich wymagań zebranych w trakcie prac nad systemem. Symptomatyczne były kolejne wypowiedzi osób uczestniczących w dyskusji, zaczynające się od „Wprawdzie nie mam pomysłu na rozwiązanie problemu, ale ponad to, co powiedziano niska jakość wymagań powoduje jeszcze…”. Dyskusję, a tym samym konferencję zakończono stwierdzeniem, iż problem jest, skutki jego występowania są dotkliwe i w związku z tym warto dalej pracować nad skuteczniejszymi metodami zarządzania wymaganiami.