pobrania tutaj [PDF 500kB]

Transkrypt

pobrania tutaj [PDF 500kB]
Wspieranie powstania SPECYFIKACJI ISTOTNYCH
WARUNKÓW ZAMÓWIENIA (SIWZ) na wdrożenie i utrzymanie
systemu „Śląska Karta Usług Publicznych”.
CASE STUDY
CEL PROJEKTU
Projekt Śląskiej Karty Usług Publicznych ma na celu wdrożenie
informatycznego systemu ułatwiającego mieszkańcom Aglomeracji
śląskiej podróżowanie, parkowanie, kontakt z administracją,
dokonywanie mikropłatności i dziesiątek innych czynności dzięki
jednej, elektronicznej karcie. Ten projekt to coś więcej niż city card, to
zupełnie nowy standard współpracy między gminami i miastami
regionu. To ułatwienie dla mieszkańców Silesii.
Główną ideą przedsięwzięcia jest zbudowanie zintegrowanego
systemu pobierania i rozliczania płatności bezgotówkowych za usługi świadczone przez instytucje
samorządowe wraz z systemem informacji, pozwalającym na pozyskiwanie danych o popycie na
poszczególne usługi oraz relacjach między nimi zachodzących. Projekt związany będzie
z wprowadzeniem systemu płatności elektronicznych w jednostkach sektora publicznego.
Realizacja Projektu pozwoli na szeroką promocję społeczeństwa informacyjnego poprzez
upowszechnienie płatności bezgotówkowych. Projekt prowadzi i zarządza KZK GOP zwany
w dalszej części Zleceniodawcą
, który w trosce o najwyższą jakość nowego systemu
zaprosił nas do współpracy przy budowaniu SIWZ (Specyfikacja Istotnych Warunków
Zamówienia), a więc, mówiąc językiem informatyków - specyfikacji wymagań. Głównym celem
dokumentu jest wsparcie dla wyłonienia w drodze przetargu Wykonawcy systemu.
Ten współfinansowany z Europejskiego Funduszu Rozwoju Regionalnego projekt w ramach
Regionalnego Programu Operacyjnego Województwa Śląskiego warty jest 130 milionów złotych.
Potrzebuje on możliwie najlepszej specyfikacji, aby w możliwie najkrótszym czasie powstał
możliwie najlepszy produkt.
Należy zaznaczyć, że olbrzymia część specyfikacji została napisana już przez pracowników KZK
GOP, przed naszym zaangażowaniem. Nasza rola polegała na wbudowaniu jakości
oprogramowania i zwróceniu uwagi na błędy czy brak zapisów w SIWZ.
KORZYŚCI
Śląska Karta Usług Publicznych, jako elektroniczny instrument płatniczy, będzie pozwalała na
dokonywanie elektronicznych płatności za usługi publiczne. Karta będzie mogła służyć jako
identyfikator mieszkańca, w zakresie zgodnym z przepisami dotyczącymi ochrony danych
osobowych. Przewiduje się również użycie ŚKUP-u w roli nośnika certyfikatu podpisu
elektronicznego. Dedykowana aplikacja pozwoli na zbieranie danych niezbędnych do sprawnego
zarządzania instytucjami publicznymi, zaangażowanymi w funkcjonowanie systemu. Integralną
częścią Projektu będzie Portal Klienta – elektroniczna platforma udostępniająca i integrująca
usługi publiczne świadczone drogą online. Integracja usług publicznych polegać będzie na
umożliwieniu użytkownikowi systemu skorzystania z oferty instytucji akceptujących kartę ŚKUP
z poziomu Portalu Klienta, bez konieczności wielokrotnego logowania się na różnych stronach
internetowych. Schemat działania systemu prezentuje poniższy rysunek.
ZADANIA:
Zadaniem było zdefiniowanie SPECYFIKACJI ISTOTNYCH WARUNKÓW ZAMÓWIENIA
(SIWZ) w taki sposób, aby jednocześnie ułatwić wytwórcy wytworzenie wysokiej jakości produktu
oraz z drugiej strony wspomóc zleceniodawców (KZK GOP) w łatwym jej odbiorze, w oparciu
o charakterystyki jakościowe produktu. Ważne było, aby przygotować w możliwie krótkim czasie
specyfikację zamówienia publicznego na dostawę, wdrożenie i utrzymanie systemu „Śląska Karta
Usług Publicznych”, która będzie najwyższej jakości.
METODA:
Ze względu na język naturalny stworzenia specyfikacji postawiono na kluczowe obszary
specyfikacji SIWZ z uwzględnieniem tych wskazanych przez Urząd Zamówień Publicznych
w dokumencie „Udzielanie zamówień publicznych na systemy informatyczne” (2009 rok).
Działania opierały się na serii rozmów z autorami specyfikacji i na wymianie komentarzy na
poziomie rewidowanego dokumentu.
W drodze prac udało się opracować dokument z uwzględnieniem poniższych (kluczowych)
aspektów jakości zarówno samego dokumentu, jak i systemu.
1) Uproszczenie i wyeliminowanie błędów specyfikacji
o Podstawową częścią prac było wyeliminowanie nieprecyzyjnych sformułowań, które
mogły wskazywać, że dane wymaganie jest niewymagane i stanowi jedynie możliwe
usprawnienie. Słowa „powinno”, „jest pożądane” zostały zarekomendowane do
usunięcia.
o Specyfikacja pokrywa szeroki wachlarz zagadnień, od budowy prostych urządzeń
elektronicznych, po aspekty związane z zarządzaniem ruchem w komunikacji
miejskiej. Ważne jest, aby również osoby nie mające doświadczenia w takich
obszarach były w stanie odpowiednio interpretować zapisy. Kluczowe okazało się
wyeliminowanie trudnych do zrozumienia sformułowań technicznych i zastąpienie ich
dużo prostszym językiem potencjalnego użytkownika. Okazało się, że można
o zagadnieniach mocno domenowych pisać przy pomocy tekstu rozumianego
również przez laików.
o W specyfikacji, która zawiera ponad 300 stron i tworzona jest przez wielu autorów,
bardzo trudno znaleźć zapisy sprzeczne. Dzięki prostemu mechanizmowi
wyszukiwania udało się połączyć obszary opisujące te same funkcje systemu, ale przy
pomocy niespójnych zapisów. Ważne jest, aby sami definiujący wymagania mieli
świadomość ważności spójności zapisów.
o Czy zdefiniowany zakres projektu jest wystarczający? Poprzez zadawanie pytań
można znaleźć odpowiedzi. Poważny problem, jaki został zdefiniowany, to to czy
ilość kart określonych jako aktywne w systemie spełni zapotrzebowanie odbiorców.
Rolą pytającego nie jest odpowiedzieć na pytanie, a zasiać niepewność co do zapisów.
Niepewność może pomóc autorom zdefiniować tak podstawowe parametr, jak
skalowalność w projekcie.
o Czy to zdanie jest rzeczywiście wymaganiem? Ze specyfikacji należy wyeliminować
zapisy, które nie są wymaganiami na wytworzenie systemu, a jedynie mało
precyzyjnym opisem lub też opinią na dany temat. Takie zdania wplecione w kontekst
SIWZ powodują więcej pytań niż przynoszą odpowiedzi.
o W wielu wypadkach instytucja zlecająca może zdefiniować wymagania niemożliwe do
implementacji. Rolą konsultanta będzie znalezienie takich zapisów i zasugerowanie
ich wyeliminowania. Chodzi nie tylko o klarowność samej specyfikacji, ale również
o zredukowanie możliwości podważania przez firmy uczestniczące w przetargu
jakości dokumentu. Takie działania z jednej strony dają firmom dłuższy czas na
przygotowanie oferty, a z drugiej - mogą znacząco wydłużyć czas potrzebny na
wyłonienie Wykonawcy.
2) Precyzyjne zapisy dla wymagań niefunkcjonalnych
o W systemie o takie złożoności, gdzie komunikują się dziesiątki różnych urządzeń
a wszystkie dane zapisywane są i sczytywane ze wspólnej bazy danych, kluczowe stają
się charakterystyki niefunkcjonalne. Czy da się zdefiniować czasy zapytań
i odpowiedzi dla każdego urządzenia? Mało prawdopodobne. Jak w takim razie
poradzić sobie z zapewnieniem jakości i wbudowaniem testowalności w specyfikację?
Należy przyjąć perspektywę wysokopoziomową i definiować czasy na poziomie
końcowych użytkowników. Na końcu liczy się jak szybko użytkownik otrzyma od
systemu odpowiedź na swoje, dowolne zapytanie.
o System przechowujący nie tylko dane użytkowników, ale będącego jednocześnie
systemem para bankowym ma duże potrzeby wbudowanego bezpieczeństwa.
Wymagania na bezpieczeństwo wymagają precyzyjnych i jednoznacznych zapisów.
Nie można sobie pozwolić na niedoprecyzowania metody kryptograficznej czy
metody kodowania komunikatów.
o Znalezienie uniwersalnej metody definiowania parametrów niefunkcjonalnych bez
podawania szczegółowych informacji okazało się możliwe dzięki normie ISO 9126
(“Software engineering — Product quality”). Opisane tam charakterystyki
oprogramowania oraz miary umożliwiły w sposób pełny pokryć charakterystykę
niefunkcjonalną oprogramowania.
o Zdefiniowanie wytycznych na PIN wydaje się być oczywiste jeśli nie przeanalizujemy
systemów bankowych i problemów jakie napotykają instytucje kiedy PIN musi być
opisany:
 Jak długi ma być PIN (4 czy może 6 znaków)?
 Czy PIN może zawierać „0000”, „1111” lub „1234”?
 W jaki sposób PIN ma być przekazany użytkownikowi?
 W jaki sposób PIN będzie podawany i jak często będzie to wymagane?
Z pozoru podstawowe zagadnienie bezpieczeństwa staje się tematem, który rozpisany
musi być na wielu stronach dokumentu zamówienia.
o System musi być jednocześnie funkcjonalny, bezpieczny i łatwy w użyciu. Chociaż te
charakterystyki w wielu wypadkach się wykluczają Zlecający przy pomocy konsultanta
podjął wysiłek znalezienie złotego środka. Zapisy SIWZ gwarantują, że system będzie
użyteczny i używalny.
o W wielu przypadkach przyszło nam analizować nie tylko system informatyczny, ale
również aspekty sprzętowe. Skomentowanie takich elementów jak klawiatury
w automatach pozwoliły autorom specyfikacji przyjąć perspektywę użytkownika
i zastanowić się jak poszczególne elementy systemu będą używane.
3) Zdefiniowanie użytkowników systemu
o Zakłada się, że użytkownikami systemu są mieszkańcy aglomeracji śląskiej, ale nie
możemy zapomnieć o setkach pracowników instytucji czy pracowników Zakładów
Komunikacji Miejskiej, którzy w swojej codziennej pracy będą musieli zagwarantować
płynną i bezawaryjną pracę systemu. Każdy element systemu wymaga szczegółów
opisujących zakres szkoleń dla użytkowników systemu od strony zaplecza (back
Office). Muszą one zagwarantować, że obsługa systemu będzie w stanie używać
system płynnie i z pełnym zrozumieniem ich funkcji.
o Dostępność dla osób niepełnosprawnych jest tematem trudnym i w wielu
przypadkach niemożliwym do zrealizowania. Konstytucja gwarantuje każdemu
obywatelowi równe traktowanie bez względu na kolor skóry, wyznanie czy właśnie
niepełnosprawność. Trudno zagwarantować, że system będzie w stanie wspierać
każdego użytkownika bez względu na typ niepełnosprawności. Dzięki specjalnym
zapisom specyfikacja wymusza ułatwienia dla osób z ograniczonym postrzeganiem
czy z niepełnosprawnością ruchową, ale nie jest w stanie opisać każdej sytuacji
i każdego typu niepełnosprawności.
o Kluczem do kontroli przepływu sterowania i zarządzania aplikacją są poziomy
autoryzacji. Wiadomo, że nie każdy użytkownik może wykonać każdą operację.
Ważne jest więc, by świadomie przyznawać prawa użytkownikom, czym gwarantuje
się z jednej strony łatwość użycia systemu, a z drugiej bezpieczeństwo
przechowywanych danych.
4) System w fazie testowania
o Trudno jest zdefiniować, czy i kiedy firma wytwarzająca oprogramowanie ma
kompetencje w danym obszarze informatycznym. Jedyną możliwością weryfikacji jest
z punktu widzenia Zlecającego zdefiniowanie wiedzy i wymaganych certyfikatów
Wykonawcy w zakresie testów oprogramowania. Wiedzy nie da się sprawdzić w
przetargu, certyfikaty tak. Pomimo tego, że staramy się nie promować wiedzy
teoretycznej, to wymuszenie posiadania kompetencji na poziomie certyfikatów wydaje
się być wymagane.
o Użytkownicy systemu wielokrotnie zaskoczą nas swoimi działaniami. Wykonają
czynności, jakich nie bylibyśmy w stanie przewidzieć i doprowadzą system do stanu,
w jakim nigdy nie powinien się znaleźć. Ograniczeniem dla tego poważnego ryzyka
jest odpowiednie zdefiniowanie negatywnych scenariuszy użycia aplikacji. Nie
jesteśmy w stanie wyeliminować wszystkich błędów, ale możemy wyeliminować te,
które wydają się być najbardziej prawdopodobne do znalezienia już w fazie
użytkowania oprogramowania.
o System ma wbudowane procesy wykonywane w punktach obsługi klienta (POK)
i pasażera (POP). Są to gotowe scenariusze testowe na poziomie przypadku
rzeczywistego użycia aplikacji. Te bardzo wartościowe informacje ułatwiają
zrozumienie, jak aplikacja będzie użytkowana na różnych poziomach jej obsługi,
i mogą być podstawą do przypadków testowych
5) System w fazie utrzymania
o W którym momencie i w jakich okolicznościach system może zostać przekazany
Zlecającemu do odbioru i kiedy można uznać, że jest gotowy? Zapisy te są o tyle
ważne, że przed wdrożeniem aplikacja musi ona zostać dobrze przetestowana.
Oznacza to, że kluczową rzeczą są zapisy specyfikujące zarówno procedurę odbioru
jak i kryteria, które muszą zostać spełnione aby system został uznany za gotowy do
wdrożenia. Kryteria te zostały bardzo precyzyjnie opisane na poziomie zamówienia
i charakterystyk jakie oprogramowanie musi spełnić.
o Kluczowy dla tego obszaru wydaje się czas, kiedy nastąpi przekazanie systemu po jego
wstępnej fazie utrzymania. Czy Zlecający zagwarantował sobie w zapisach specyfikacji
odbiór na tyle szczegółowo, że pełny know how zostanie do niego przekazany? Nie
mówimy tu jedynie o kodzie źródłowym, dokumentacji czy architekturze. Mówimy
o ludziach, którzy będą w stanie samodzielnie zarządzać system po przekazaniu.
Proste zapisy w umowie dotyczące miar mają sprawić, że Wytwórca oprogramowania
przeszkoli pracowników Zlecającego (lub inne wskazane przez niego osoby) na
okoliczność wszelkich działań utrzymaniowych.
o Pod znakiem zapytania postawiono audytowalność systemu. Czy odbiorca po
przekazaniu oprogramowania będzie miał łatwość samodzielnego utrzymania kodu?
Niepoprawne zapisy umowy mogą doprowadzić do patologicznej sytuacji, w której
jedynie autorzy oprogramowania będą w stanie go aktualizować i korygować,
uzależniając w ten sposób Zlecającego od siebie.
o Z dużym prawdopodobieństwem można założyć, że system będzie pod ciągłym
atakiem osób pragnących w niepowołany sposób uzyskać dostęp do danych
użytkowników lub do środków zgromadzonych na ich kontach. Nie możemy jednak
założyć, że ataki będą jedynie z zewnątrz. Czy system zabezpieczony jest przed
nadużyciami? Czy dobrze zdefiniowano potencjalne niebezpieczeństwa płynące ze
strony nieuczciwych pracowników obsługujących system?
o Nie można zapomnieć o prostych czynnościach w fazie samego funkcjonowania
oprogramowania. Jest naturalne, że oprogramowanie musi być zabezpieczone przy
pomocy zapasowego Centrum Przetwarzania Danych (patrz poniższy rysunek). Czy
jednak częstotliwość synchronizacji jest wystarczająca? Tu po raz kolejny konsultant
badający wymagania ma za zadanie sformułować pytanie, na które odpowiedź musi
znaleźć autor SWIZ.
o Systemy o dużej liczbie komunikujących się komponentów muszą mieć zdefiniowane
wytyczne na wymianę danych między elementami systemu. Mówimy przede
wszystkim o wspólnym formacie danych, plików, protokołów. Zadaniem konsultanta
było określenie, czy każdy moduł będzie w stanie komunikować się z innym, bez
potrzeby dodatkowych urządzeń tłumaczących czy konwertujących.
o System musi zostać okresowo wyłączony. Czy zlecający przewidział taką potrzebę?
Nie istnieje oprogramowanie niezawodne w 100% i nie ma oprogramowania, które
nie musi podlegać w krótszym, czy też dłuższym okresie czasu, zmianom. Kluczową
sprawą jest więc zdefiniowanie, kiedy, jak i w jaki sposób system będzie wyłączany.
To czy będzie to 2:00 w nocy czy też 15:00 i czy system będzie witał użytkowników
komunikatem o czasowej niedostępności, czy może czarnym ekranem, ma znaczenie.
o Aplikacja zostanie dostarczona przez wykonawcę z błędami, co wynika z praktyki
wytwarzania oprogramowania. Wiedząc, że pojawią się błędy w oprogramowaniu,
należy precyzyjnie zdefiniować jak będą one do Wykonawcy przekazywane i,
w zależności od poziomu krytyczności, jak szybko będą poprawione. Dalszym
aspektem jest to, czy błąd będzie podstawą do odrzucenia całości systemu, czy może
wystarczy wgranie zwykłej poprawki do już zainstalowanej wersji testowej.
REZULTAT
Specyfikacja Istotnych Warunków Zamówienia jest nie tylko specyfikacją wymagań, ale również
dokumentem opisującym współpracę między Wykonawcą i Zlecającym. Ufając, że każdej ze stron
zależy na przygotowaniu możliwie najlepszego rozwiązania, wiarę należy poprzeć dobrze zawartą
umową.
W rezultacie prac powstała specyfikacja, która pozwoli Wykonawcy na przygotowanie wysokiej
klasy oprogramowania, a Zlecającemu - na świadomość kontroli nad jakością produktu.
Dziękując za możliwość współtworzenia Specyfikacji Istotnych Warunków Zamówienia, życzymy
obu stronom zakończenia całego projektu sukcesem.
O autorach
testerzy.pl i wymagania.net to marki należące do firmy 21CN.
wymagania.net świadczą usługi konsultingowe w zakresie procesu identyfikacji
i dokumentowania wymagań, analizy biznesowej, analizy systemowej oraz wyboru narzędzi.
Oferta wymagania.net obejmuje usługi szkoleniowe z zakresu zarządzania wymaganiami, audyt
procesu analizy biznesowej/systemowej oraz coaching.
testerzy.pl działają w obszarze definiowania, oceny i usprawnienia procesu testowego,
automatyzacji, zarządzania ryzykiem, wyboru właściwych narzędzi i wdrożenia ich do organizacji.
W ofercie testerzy.pl znajdują się usługi szkoleniowe z zakresu testowania.
21CN Radosław Smilgin
ul. Sokolska 33/173
40-086 Katowice
kom. 503 074 389; 798 793 289
NIP 583-276-92-97
REGON 241132628
W PRZYGOTOWANIU CASE STUDY UŻYTO:
•
•
•
•
•
•
•
•
•
Materiały ze strony: http://kzkgop.org/skup/
SIWZ dostępny na stronie: http://bip.kzkgop.pl/siwz/2010/skup/siwz__.pdf
Załączniki do SIWZ: http://bip.kzkgop.pl/siwz/2010/skup/zalaczniki_skup.zip
Rekomendacje udzielania zamówień publicznych na systemy informatyczne, Urząd
Zamówień
Publicznych
2009r;
plik:
Rekomendacje_UZP
ws._zamowień_na_systemy_informatyczne.pdf – wersja papierowa i elektroniczna
ISO/IEC 9126 – Analiza modelu jakości produktów programowych – Andrzej
Kobyliński; plik: analiza_ISO9126.pdf – wersja elektroniczna
Systemy komputerowe – Funkcjonalność; Rafał Bartoszewicz, Krzysztof Diduch, Kinga
Frączyk, Joanna Mrożek, Artur Pęczak; Politechnika Wrocławska - Wrocław 2007; plik:
Systemy komputerowe funkcjonalnosc.pdf – wersja elektroniczna
Słownik wyrażeń związanych z testowaniem; plik: slownik-terminow-testowych-2-0-ver-099.pdf – wersja elektroniczna
Standard for Software Component Testing; 27 April 2001; plik: Component Testing.pdf –
wersja elektroniczna
Materiał prasowy:
http://katowice.gazeta.pl/katowice/1,35063,8575872,Ten_projekt_ulatwi_zycie_mieszkan
com_calej_aglomeracji.html

Podobne dokumenty