Uploaded by magdalena95p

ZPI projekt mgr sn grupa A OPIS

advertisement
Zarządzanie projektami informatycznymi I
Projekt: Wdrożenie systemu CRM w przedsiębiorstwie
produkcyjnym
\
Spis treści
1. Opis przedsiębiorstwa ………………………………………………………………… 2
2. Opis projektu ………………………………………………………………………….. 3
2.1. Wybór metodyki …………………………………………………………………. 3
2.2. Skład zespołu ……………………………………………………………..……… 4
2.3. Harmonogram ……………………………………………………………………. 5
3. Kalkulacja finansowa projektu ……………………………………………………….. 6
4. Testowanie oprogramowania …………………………………………………………. 7
1
1. Opis przedsiębiorstwa
Przedsiębiorstwo, którego dotyczy realizowany projekt informatyczny zajmuje się
produkcją suplementów diety. Dział sprzedaży tej firmy dzieli się na trzy jednostki –
telemarketing, KAM (key accounts management) i przedstawicieli handlowych. Oprócz
personelu najniższego szczebla w proces sprzedaży zaangażowani są kierownik krajowy,
kierownicy regionalni i dwaj product managerowie.
Do tej pory proces realizacji zamówień przebiegał w następujący sposób:

Podczas kontaktu z klientem pracownik działu sprzedaży sporządzał listę zamawianych
produktów wraz z cenami i ilościami.

Lista była wysyłana do stacjonarnego działu sprzedaży i magazynu w celu
przygotowania paczki i wystawienia dokumentów handlowych.
Taki sposób obsługi zamówień charakteryzował się wieloma wadami, m. in.:

Podczas składania zamówienia pracownicy nie mieli dostępu do informacji o stanach
magazynowych produktów, które oferują. Skutkowało to niepełną realizacją zamówień
i koniecznością zwracania klientom środków za produkty, których firma nie była
w stanie dostarczyć na czas.

Mailowe przesyłanie zamówień wiązało się z częstym występowaniem błędów,
np. w cenach i ilościach.

Jedyne dostępne informacje, które mogą posłużyć do oceny pracy pracowników działu
sprzedaży to liczba wystawionych dokumentów handlowych i wartość sprzedaży.

Pozyskanie nowych klientów jest szczególnie trudnym zadaniem, ponieważ wymaga
wcześniejszego znalezienia aptek lub sklepów, które będą zainteresowane kupnem
suplementów. Niestety wiele firm nie jest widocznych na Google Maps, które
wykorzystują przedstawiciele do planowania swoich tras.

Kadra zarządzająca nie ma informacji o tym jak wiele kontaktów z klientami nie
zakończyło się złożeniem zamówienia.
Aby usprawnić działania działu sprzedaży, dyrektor planuje zlecić zewnętrznej firmie
wdrożenie systemu CRM. Sformułowano następujące cele, które powinny zostać osiągnięte
dzięki realizacji tego projektu:

Automatyzacja procesu składania zamówień – pracownicy działu sprzedaży powinni
mieć dostęp do bazy klientów i aktualnie oferowanych produktów, natomiast
2
pracownicy
magazynu
powinni
otrzymywać
powiadomienia
o
złożonych
zamówieniach.

Zbieranie informacji o kontaktach pracowników z klientami. Po kontakcie pracownik
powinien wprowadzić do systemu informacje o tym z jakim klientem rozmawiał, czy
kontakt był fizyczny czy telefoniczny, czy klient skorzystał z aktualnej promocji.

Uzyskanie dostępu do bazy klientów, którzy mogą być zainteresowani kupnem
suplementów diety.

Uzyskanie możliwości generowania raportów, które mają służyć ocenie pracy
przedstawicieli handlowych.
Ustalono także następujące ograniczenia:

Pracownicy działu sprzedaży mogą widzieć raporty dotyczące tylko ich własnej
sprzedaży, natomiast kierownicy mogą widzieć całą sprzedaż podległych im
pracowników.

Jeden product manager powinien widzieć raporty dotyczące tylko linii suplementów
ziołowych, drugi – tylko linii suplementów FMCG.
2. Opis projektu
Firma, którą reprezentujemy jest dostawcą rozwiązania składającego się z bazy klientów aptek, sklepów medycznych i sklepów zielarskich oraz aplikacji mobilnej służącej
do zarządzania zamówieniami i relacjami z klientami. Przedsiębiorstwa korzystające z naszych
usług uzyskują dostęp do bazy klientów, którzy mogą być zainteresowani zakupem
suplementów i sprzętu medycznego. System umożliwia także zbieranie danych o sprzedaży
i aktywności personelu.
2.1. Wybór metodyki
Projekt zostanie zrealizowany wykorzystując podejście Dynamic Systems Development
Method, w skrócie DSDM. Przed rozpoczęciem projektu wykonano analizę wykonalności,
która jednoznacznie wskazała korzyści płynące z realizacji przedsięwzięcia. Faza wytwarzania
jest podzielona na Timeboxy trwające 20 dni roboczych. Zaplanowano 7 takich iteracyjnych
timeboxów. Podejście DSDM kładzie bardzo duży nacisk na testy, dlatego zostaną one szerzej
3
opisane w ostatnim rozdziale. Zgodnie z podejściem DSDM niezmienne muszą pozostać
jakość, czas i budżet projektu. W razie konieczności modyfikowane będą cechy produktu.
Rysunek 1. Zmienne w projekcie – podejście tradycyjne i DSDM
Źródło: https://www.agilebusiness.org/
2.2. Skład zespołu
Zgodnie z podejściem DSDM w projekcie uczestniczą zarówno pracownicy Dostawcy IT
jak i Klienta zamawiającego. Klient wyznaczył ze swojej strony dwóch pracowników, którzy
w projekcie będą pełnić rolę Project Sponsora, Project Managera i Wizjonera biznesowego.
Dostawca zapewnia dostępność zespołu wytwórczego składającego się z: Analityka, UX/UI
Designera, Lead Developera, dwóch Developerów oraz Testera.
Stawki godzinowe poszczególnych stanowisk kształtują się następująco:
Stanowisko
Stawka
Analityk
90 zł/h
UX/UI Designer
90 zł/h
Lead Developer
140 zł/h
Developer
110 zł/h
Tester
80 zł/h
4
Są to stawki za standardowe godziny pracy w projekcie. Chociaż nie zakłada się konieczności
pracy w nadgodzinach to ustalono, że obowiązywać za nie będzie stawka 200% stawki
standardowej.
Wynagrodzenie Project Sponsora i Project Managera leży po stronie Klienta, dlatego ich stawki
nie zostały ujęte w tabeli.
Rysunek 2. Model zespołu wg podejścia DSDM
Źródło: https://www.agilebusiness.org/
2.3. Harmonogram
Wspólnie ustalono, że projekt ma się rozpocząć 6.03.2023 r. Na ten dzień zaplanowano
kick-off projektu, czyli spotkanie wszystkich uczestników projektu, na którym zostaną
przedstawione założenia prac, od ogółu do szczegółu. Poruszone zostaną kwestie zasadnicze,
takie jak założenia projektu, cele czy tło powstania. Ponadto jest to możliwość poznania się
i integracji interesariuszy.
Następny etap, czyli analiza wymagań, rozpocznie się 8.03.2023 r. Jednocześnie rozpocznie
się trzeci etap związany z wymaganiami technicznymi. Podczas gdy analityk będzie
5
opracowywał koncepcję biznesową i model procesów w BPMN, zespół deweloperski będzie
przygotowywał środowisko techniczne.
Etap czwarty stanowi główną część wytwórczą projektu. Prace zostaną zrealizowane
w modułach tematycznych:
1. Dashboard
2. Kalendarz
3. Produkty
4. Zamówienia
5. Role i uprawnienia
6. Raporty
7. Pozostałe funkcjonalności
Każdy z tych modułów zostanie zrealizowany w osobnym Timebox’ie. W każdym
z modułów zakłada się pracę analityczną, wytwórczą i testerską. Po każdym module planowany
jest kamień milowy w postaci Product Show dla interesariuszy projektu. Zadania są powiązane
ze sobą, więc opóźnienia w realizacji jednego modułu automatycznie przesuwają rozpoczęcie
prac nad następnym.
Piąty etap to integracja systemu z dotychczasowymi aplikacjami Klienta. Zakłada się, że
prace zostaną zrealizowane w 4 dni.
Jednocześnie rozpoczyna się etap szósty, czyli szkolenia użytkowników. W pierwszej
kolejności Analityk przygotowuje podręcznik dla użytkownika końcowego, a następnie
przeprowadza szkolenie. Po zakończeniu etapu piątego deweloperzy przeprowadzają
analogiczne szkolenie dla administratorów systemu od strony klienta.
Ostatni, siódmy etap zaplanowano dokładnie na 13.11.2023 r. Wtedy mają się rozpocząć
ostateczne testy akceptacyjne. Po pozytywnej weryfikacji powinno nastąpić wdrożenie
produkcyjne.
Zakończenie projektu planowane jest na 23.11.2023 r.
3. Kalkulacja finansowa projektu
Zakłada się, że w dzisiejszym bardzo zmiennym otoczeniu ekonomicznym realizowany
projekt będzie miał wpływ na organizację w perspektywie 5 lat. Istnieje bardzo duże
6
prawdopodobieństwo, że po tym czasie warunki biznesowe / otoczenie ekonomiczne zmieni się
na tyle, że system będzie trzeba zaktualizować lub wymienić na nowy.
W naszej kalkulacji zakładamy roczną stopę dyskontową wynoszącą 10%.
Na koszty realizacji projektu składają się koszty pracy zespołu projektowego w kwocie: 314
640 PLN
Koszt oprogramowania, sprzętu i usług chmurowych potrzebnych do przetestowania
i wdrożenia projektu wyniósł 20 000 PLN.
Zakłada się, że w perspektywie trwania projektu system będzie generował stałe koszty
związane z usługami utrzymania / wsparcia przez dostawcę w kwocie 20 000 PLN rocznie oraz
10 000 rocznie związane z kosztem infrastruktury chmurowej.
Dodatnie przepływy finansowe generowane przez realizację projektu składają się
z 2 elementów:
a) Oszczędność czasu w całej organizacji w związku z usprawnieniem wielu procesów np.
obsługi zamówień. Szacunek wynosi 40 000 PLN rocznie i jest stały w okresie trwania
projektu.
b) Zwiększone przychody organizacji. Szacunki różnią się w zależności od danego roku.
Zakładając bardzie optymistyczne i pesymistyczne scenariusze. W tym przypadku
pozytywny efekt będzie wygenerowany przez lepsze metody nadzoru nad
pracownikami, lepszą analityką oraz znaczącą większą kontrolą procesu sprzedaży.
W kalkulacji NPV wyniósł ok. 77 000 PLN a IRR 20 %.
4. Testowanie oprogramowania
Testowanie oprogramowania w przedsiębiorstwie może przedstawiać pewne problemy.
W zależności czy budową oraz testowaniem oprogramowania zajmuje się profesjonalny
software house, czy dział IT firmy działającej w innej branży możemy napotkać następujące
problemy:
1. Brak odpowiedniego planu i strategii testowania - brak jasno określonej strategii
testowania i planu działań może prowadzić do nieefektywnego wykorzystania zasobów
i opóźnień w projekcie – tego typu problem mógłby pojawić się w omawianym
7
przykładzie, w przypadku, gdyby firma z suplementami, niemająca wcześniejszego
doświadczenia z budową oraz wdrożeniem oprogramowania, zdecydowałaby się zrobić
to na własną rękę.
2. Niedostateczne zasoby - brak odpowiedniego zespołu lub narzędzi do testowania
oprogramowania może utrudnić przeprowadzanie testów i zwiększyć ryzyko błędów w przypadku omawianego projektu wdrożeniowego ten problem napotkała firma
produkująca suplementy, natomiast problem został rozwiązany poprzez zatrudnienie
zewnętrznego podmiotu.
3. Niedostateczne kompetencje - brak odpowiedniego doświadczenia lub wiedzy
w zakresie testowania oprogramowania może prowadzić do nieefektywnego
przeprowadzania testów i braku skuteczności - podobne jak w poprzednim punkcie, ten
problem prawdopodobnie wystąpiłby w przypadku podjęcia przez niedoświadczoną
w budowie oprogramowania firmę działającą w branży produkcji suplementów, która
nie dość, że nie miała doświadczenia w podobny projektach, to nie miała również
odpowiednich zasobów i kompetencji.
4. Ograniczony budżet - brak odpowiednich środków finansowych może uniemożliwić
zakup odpowiednich narzędzi do testowania, zatrudnienia specjalistów lub ograniczenia
objętości testów - w przypadku omawianego projektu wdrożenia, tego typu problem nie
miał miejsca i zatrudniona firma zewnętrzna przeprowadzi wszelkie odpowiednie testy.
5. Brak automatyzacji - brak automatyzacji testów może prowadzić do dużego obciążenia
pracą i opóźnień w projekcie – tego typu problem nie powinien się pojawić we
wspomnianym wdrożeniu, ze względu na fakt, że wynajęty software house jest
wyspecjalizowany w tego typu projektach oraz ma wypracowane odpowiednie
procedury oraz dobre praktyki.
Aby uniknąć tych problemów, ważne jest, aby przedsiębiorstwo miało odpowiedni plan
i strategię testowania, odpowiednie zasoby, wykwalifikowany zespół, odpowiedni budżet oraz
wykorzystywało automatyzację testów, co pozwoli na skuteczne i efektywne testowanie
oprogramowania. W przypadku braku kompetentnych w tym zakresie osób, rozwiązaniem jest
zatrudnienie firmy zewnętrznej, której zadaniem byłoby stworzenie, przetestowanie oraz
wdrożenie wymaganego oprogramowania. Takie rozwiązanie zastosowano w przedstawionym
projekcie, w którym firma zajmująca się produkcją suplementów diety, nie miała odpowiednich
kompetencji, planu, strategii, jak również odpowiednich zasobów takich jak wewnętrzny dział
IT mogący skutecznie napisać oraz wdrożyć oprogramowanie.
8
„Testowanie oprogramowania to wykonanie kodu dla kombinacji danych wejściowych
i stanów w celu wykrycia błędów. Proszę zauważyć, że celem testów jest wykrycie błędów.
Nie jest to analiza statyczna, ale dynamiczna, bo testowany kod jest wykonywany” 1. Testy
projektuje się, analizując testowany system i rozstrzygając, do jakiego stopnia jest on
obciążony ryzykiem błędów. Zaprojektowane testy następnie wykonuje się ręcznie lub
poddaje automatyzacji, czyli napisaniu oprogramowania, które wypróbowuje inny system
oprogramowania w celu znalezienia błędu. Uzyskane wyniki analizuje się i określa, czy test
wykrył błąd, czy też było to prawidłowe zachowanie systemu. Test uznaje się za udany,
jeśli wykryje nieznaleziony jeszcze błąd. Mówi się, że test jest efektywny, jeśli znajduje
błędy z maksymalnym prawdopobieństwem. Jego celem jest zapewnienie jak największej
jakości i niezawodności oprogramowania. Testowanie jest procesem składającym się
z kilku etapów, które różnią się od siebie charakterem i celem. Zaliczają się do nich metody,
takie jak testowanie jednostkowe, testowanie integracyjne, testowanie systemowe
i testowanie akceptacyjne. Ze względu na ograniczenia budżetowe nie wszystkie etapy
testów zostały zaplanowane w harmonogramie wdrożeniowym.
Testowanie modułowe (jednostkowe) wykonuje się na etapie wytwarzania kodu.
Uczestnikami tego rodzaju testów są programiści firmy zewnętrznej, tworzącej system
CRM, którzy w fazie implementacji poddają weryfikacji własny kod. „Wspomniane testy
muszą odnosić się do niewielkich i ściśle wyizolowanych fragmentów kodu. Polegają one
na wykonywaniu wybranego fragmentu instrukcji w celu zweryfikowania, czy realizuje ona
swoją funkcję zgodnie z założeniami”2. Testy modułowe nie zostały uwzględnione
w harmonogramie, ponieważ harmonogram nie przewiduje na tyle szczegółowych kroków
oraz ze względu na fakt, że testy wykonywane będą przez programistę będącego autorem
kodu, który usuwa usterki jak tylko zostaną wykryte, bez formalnego zarządzania nimi.
Tego typu testy przeprowadzane będą przy wsparciu środowiska rozwojowego (np.
bibliotek do testów jednostkowych oraz narzędzi do debugowania).
Kolejnym etapem jest testowanie integracyjne, które polega na testowaniu interakcji
między różnymi komponentami oprogramowania. „Celem tego rodzaju testowania jest
wykazanie czy moduły poprawnie współpracują, tj. czy nie wystąpiły przeszkody natury
technologicznej oraz czy wzajemnie świadczone usługi spełniają oczekiwania; jak
R. V. Bindera, Testowanie systemów obiektowych. Modele, wzorce i narzędzia, WNT Wydawnictwa NaukowoTechniczne Gandalf.com.pl, 2003.
2
R. Pawlak, Testowanie oprogramowania, Helion, 2014, s. 66.
1
9
zachowują się poszczególne elementy w sytuacji awarii, błędów lub niestabilnej pracy
w przypadku dysfunkcji jednego z nich (wzajemne oddziaływanie); czy kojarzone
wzajemnie elementy realizują założony proces biznesowy (logika biznesu); czy
infrastruktura techniczna zapewnia optymalne warunki pracy dla skomplikowanego
systemu (wielomodułowego); czy nie ma luk w logice biznesu, tj. czy nie ujawniły się
problemy lub potrzeby, które nie zostały przewidziane na etapie projektowania
rozwiązania”3. Tego typu testowanie zostanie podjęte jak najbliżej kodu, tj. na etapie prac
programistycznych i testów wewnętrznych. W harmonogramie testy integracyjne nie są
uwzględnione ze względu na niską szczegółowość projektu, natomiast wykonywane one
będą na etapie developmentu w każdym z modułów.
Następnym etapem jest testowanie systemowe, które polega na testowaniu całego
oprogramowania jako jednostki, lub jego samodzielny fragment, który znajduje
odwzorowanie w projekcie. Celem jest upewnienie się, że oprogramowanie działa jak
powinno i spełnia swoje założenia funkcjonalne. Testowanie systemowe przeprowadzone
zostanie dla każdego z modułów na etapie developmentu. Dodatkowo, przeprowadzane one
będą na środowisku testowym, które jest w jak największym stopniu zbliżone będzie do
środowiska produkcyjnego, na którym docelowo aplikacja będzie funkcjonować. Na tym
etapie testów, testowanie przeprowadzane będzie przy pomocy działu IT klienta
końcowego, dzięki czemu zespół teustujący będzie miał możliwość zachowania dużej
autonomiczności w odniesieniu do zespołu programistycznego w aspekcie środowiska
testów oraz zasobów ludzkich. Celem testów systemowych będzie upewnienie się, że
oprogramowanie spełnia oczekiwania klienta i jest przyjazne dla użytkownika.
Testowanie akceptacyjne (odbiorcze) jest ostatnim etapem testowania oprogramowania,
którego celem jest upewnienie się, że oprogramowanie spełnia oczekiwania klienta lub
użytkownika końcowego oraz jest przyjazne dla niego. Testowanie akceptacyjne polega na
przeprowadzeniu prób użytkowania oprogramowania przez klienta lub użytkownika
końcowego, który jest odpowiedzialny za ocenę jakości oprogramowania. Testy te mają
potwierdzić zgodność weryfikowanego produktu z zapisami w umowie i obowiązującymi
przepisami prawa. W testowaniu akceptacyjnym brane pod uwagę są również aspekty takie
jak ergonomia, przyjazność dla użytkownika, estetyka i łatwość obsługi. Testowanie
akceptacyjne jest ważne, ponieważ pozwala na potwierdzenie, że oprogramowanie jest
3
R. Pawlak, Testowanie oprogramowania, Helion, 2014, s. 67.
10
gotowe do wdrożenia i jest zgodne z oczekiwaniami klienta. Jest to również ostatni etap
testowania przed wdrożeniem, dlatego ważne jest, aby zapewnić jak największą jakość
i
niezawodność
oprogramowania.
Testowanie
odbiorcze
zostało
uwzględnione
w harmonogramie wdrożeniowym i zostanie ono wykonane dla każdego z modułów
osobno. Podmiotem wykonawczym testów będzie klient oraz potencjalni użytkownicy
sytemu, którzy zweryfikują system pod kontem zgodności z założeniami i wymaganiami,
które zostały postawione przed fazą developmentu, a także pod kątem zgodności z zapisami
w umowach oraz z obowiązującymi przepisami prawa. W przypadku pozytywnie
zakończonych testów akceptacyjnych, następnym krokiem harmonogramu będzie product
show.
Podsumowując, testowanie oprogramowania jest niezbędnym elementem tworzenia
systemów, ponieważ pozwala na wykrycie błędów i zapewnienie jak najwyższej jakości
i niezawodności systemu. Większość firm testuje tylko na poziomie systemowym nie
doceniając niższych warstw testowania co zwiększa koszty związane z usuwaniem błędów,
bo wykrywane jest ich mniej, a te znalezione trudniej jest zlokalizować i poprawić.
W prezentowanym projekcie wdrożenia systemu CRM zdecydowano się na wszystkie etapy
testów co powinno zminimalizować koszty usuwania błędów oraz ewentualne błędy
w funkcjonującym już systemie. Dodatkowo, wprowadzenie członków zespołu klienta na
poszczególnych etapach testów, powinno ułatwić sam proces oddania oprogramowania ze
względu na fakt, że jeszcze przed momentem oddania, po stronie klienta będą jednostki
zaznajomione z funkcjonalnością systemu.
11
Download