ul. Wolsztyńska 5, poziom II 60-361 Poznań tel: 61 866 77 27 tel:+48618667727

Deloitte Technology Fast 50 Lider przedsiębiorczości Google Partner Google Partners Rising Stars

ipad-407799_1280

Aplikacja webowa dla Twojej firmy


21-08-2015

Chciałbyś posiadać aplikację idealnie dopasowaną do Twoich potrzeb, ale nie możesz znaleźć takiej na rynku? A może zastanawiałeś się już kiedyś nad skorzystaniem z usług firmy, która napisze ją specjalnie dla Ciebie? W tym artykule przedstawię kilka informacji i opowiem o tym, kiedy rozwiązanie opracowane specjalnie dla firmy przydaje się najbardziej, jak poprawnie powinien wyglądać proces wdrażania takiego systemu, a także czy i jak powinny kształtować się koszty.

W swojej kilkuletniej karierze zawodowej pracowałem jako programista i miałem okazję prowadzić kilka projektów od początku do końca. Pozwoliło mi to spojrzeć na wszystkie aspekty tego typu pracy z różnych perspektyw, zarówno tej „backendowej”, jak i z perspektywy zarządzającego. Obecnie od ponad roku prowadzę duży projekt informatyczny, mający na celu wdrożenie aplikacji i przeprowadzenie integracji z zewnętrznymi dostawcami (hurtowniami, które udostępniają dane o stanach magazynowych) i sklepami. W konsekwencji powstać ma jeden spójny system, łączący wszystkie te ogniwa. Projekt, o którym piszę, jest dla mnie dużym wyzwaniem, a w niniejszym artykule chciałbym przedstawić, jak poprawnie, od początku do końca, zaimplementować taki system i podzielić się swoimi doświadczeniami.

Na samym początku….

Odwiedza nas klient, który wie, że czegoś potrzebuje, ale nie jest pewny, jak ma to wyglądać. Często jest tak, że jego poszukiwania gotowych rozwiązań nie były zbyt owocne. Chcąc mu pomóc, na początku również proponujemy jedno ze sprawdzonych już narzędzi, ponieważ dedykowane oprogramowanie nie zawsze jest najlepszym wyjściem ‒ zwłaszcza w przypadku branży, w której powinno ono być prostym instrumentem (np. standardowy sklep internetowy). Jeżeli po dokonaniu odpowiednich badań i analiz okazało się, że niestety na rynku nie ma systemu, który sprosta wymaganiom klienta, informujemy go o możliwości stworzenia aplikacji dedykowanej. Klient z reguły jest zainteresowany tego typu rozwiązaniem, ponieważ zdaje sobie sprawę, że dzięki temu wszelkie procesy odbywające się w jego firmie będą przebiegały znacznie sprawniej.

Jak to powinno działać w praktyce?

Największą zaletą oprogramowania dedykowanego jest to, że tworzymy je ściśle pod kątem potrzeb klienta. Osobiście, w trakcie prowadzenia projektów cały proces wdrażania dzieliłem na trzy etapy: analizę potrzeb, projekt funkcjonalności, uruchomienie wersji beta wraz z testowaniem i uruchomienie pełnej wersji systemu. Oczywiście wszystkie te kroki można jeszcze rozwinąć o wiele dodatkowych elementów składowych, ale szczegółowo opiszę to w dalszej części artykułu.

Wdrażanie aplikacji dedykowanej krok po kroku

Krok 1 – Analiza potrzeb

Według mnie jest to kluczowy etap pracy przy realizacji dedykowanego oprogramowania. Należy dokładnie przeanalizować z klientem wszystkie jego potrzeby i zaprojektować funkcjonalności, bo decyduje to o sukcesie wdrożenia, a także o jakości realizacji całego projektu. Oczywiście, im bardziej złożone oprogramowanie, tym proces ten jest trudniejszy i bardziej czasochłonny. Dokumentacja dostarczana przez klienta, zwłaszcza w przypadku, kiedy firma ma złożoną strukturę organizacyjną działów (kadry, księgowość, BOK, produkcja, magazyn itd.), może wyglądać jak zbiór niezwiązanych ze sobą informacji od ludzi, którzy pracują w poszczególnych działach. Każdy pracownik wyobraża sobie działanie takiego oprogramowania i opisuje swoje życzenia na bazie dotychczasowych doświadczeń. Jak wiadomo, nowe oprogramowanie musi być „lepsze” od poprzedniego, więc każdy dorzuca od siebie „coś ekstra”. W konsekwencji dokument, który powstał w ten sposób, staje się bezużyteczny, a pracownicy zleceniodawcy tak naprawdę stracili tylko cenny czas.

Jak zatem etap ten powinien wyglądać? Najlepiej będzie, jeżeli wyślemy do klienta zespół specjalistów, który precyzyjnie określi potrzeby związane z wdrożeniem aplikacji. Oczywiście, jeżeli system jest mniejszy, to i do analizy potrzeba mniej ludzi. Pozwoli to stworzyć spójną i dogłębną wstępną analizę funkcjonalności, dzięki czemu zyskamy solidne fundamenty do dalszych prac. Każdorazowo podstawowym celem powinno być zrozumienie, a nie tylko opisanie, ponieważ aplikacja musi być otwarta na zmiany (w rozsądnym zakresie).

Krok 2 – dokument z projektem funkcjonalnym

Projekt funkcjonalny jest niezbędny, jeśli aplikacja będzie bardzo rozbudowana. Nie należy jednak pomijać tego elementu również w mniejszych projektach (czasami nawet zwykłych serwisach www), ponieważ jest on łącznikiem między przeprowadzeniem analizy a wdrożeniem. Co wchodzi w skład projektu funkcjonalnego i dla kogo tak naprawdę się go przeprowadza? Klient, jako osoba zlecająca, jeszcze przed rozpoczęciem prac wdrożeniowych otrzymuje od nas jasno sprecyzowany obraz systemu, zarówno w kwestii wizualnej, jak i funkcjonalnej. Jego projekt graficzny to zazwyczaj makiety zaprojektowane przez grafika, który posiada wiedzę o funkcjonalnościach i stara się dopasować interfejs użytkownika w taki sposób, aby był łatwy i wygodny w obsłudze, a jednocześnie intuicyjny. Kształt funkcjonalny to z kolei elementy składające się na moduły i idee ich działania. Opisuje to, za co odpowiedzialne są poszczególne moduły. Jak to wygląda w praktyce? Przedstawmy przykładową stronę z panelu administracyjnego szablonu Metronic:

metronic

Na pierwszym zrzucie ekranu widzimy rozbudowany panel użytkownika. Zalogowana osoba ma łatwy dostęp do ustawień swojego konta, a także aktywności i ważnych informacji z nią związanych. Może wyświetlać także różne podsumowania, a raporty pokazują się w formie wykresów. To wszystko sprawia, że interfejs użytkownika jest bardzo „czysty” i łatwo się w nim poruszać. Mimo wielu opcji zawartych na karcie użytkownika, łatwo je odszukać przy pomocy maksymalnie dwóch lub trzech kliknięć.

Jak w takim wypadku wygląda projekt wymagań funkcjonalnych dla programistów? Przykładowe dane zaczerpnąłem z jednego z moich wcześniejszych projektów i postaram się je teraz w skrócie omówić. Omawiana aplikacja powstała w celu usprawnienia zarządzania zadaniami i pracownikami w firmie.

Funkcjonalność – logowanie:

Funkcjonalność - logowanie

Powyższa tabela przedstawia przykładowy opis funkcjonalności dla programisty, który ją wdraża. Osoba implementująca aplikację widzi, jakie funkcje musi stworzyć i skąd będą pochodziły dane, a także jaki będzie wynik działania modułu, co jest warunkami wstępnymi i końcowymi, jakie efekty uboczne mogą wystąpić i co może być ich powodem. Daje to programiście pełny obraz tego, jak wybrana funkcjonalność w ramach modułu „Logowanie użytkowników do aplikacji” powinna działać.

Nieodłącznym elementem takiej dokumentacji powinny być również diagramy: przypadków użycia, diagram wdrożenia, diagram klas i inne, zgodnie z specyfikacją języka UML. Poniżej przedstawiam jeden z nich – diagram wdrożenia.

diagram wdrożenia

Diagram ten prezentuje sposób i miejsce wymiany informacji w warstwie sprzętowo-programowo-sieciowej.

Oczywiście, w dokumentacji powinny zostać zawarte również wymagania niefunkcjonalne, czyli takie, które nie są bezpośrednio związane z wdrażaniem systemu. Przykładami takich wymagań mogą być:

  • System operacyjny posiadający okienkowy interfejs: Windows XP lub nowszy, Ubuntu 10.00 lub nowszy Open Suse 10.1 (i pochodne ), MacOS
  • Przeglądarka internetowa Mozilla Firefox, Apple Safari, Opera, Google Chorme w aktualnych wersjach bądź Internet Explorer wersja > 7

Na tym etapie bardzo ważnym aspektem jest wdrożenie odpowiedniego oprogramowania do zarządzania projektami, które sprawi, ze dotrzymywanie terminów będzie realne, a realizacja zadań ‒ sprawna. Menadżer projektu lub lider zespołu będzie miał pełen obraz tego, co dzieje się w firmie i na jakim etapie wykonania są poszczególne zadania. Osobiście nie polecam żadnej konkretnej aplikacji, ponieważ mimo testów nie znalazłem takiej, która idealnie wpasowałaby się w moje wymagania. Najbardziej zbliżony był FengOffice, z którego obecnie korzystam. Poniżej przykładowy zrzut ekranu z tego systemu. Prezentuje on listę zadań przypisanych do konkretnego użytkownika i postęp w ich realizacji.

feng

Jest to przykładowy zestaw zadań dla projektu, który aktualnie prowadzę. Użytkownicy muszą być rzetelni i wpisywać wszystkie informacje o postępach, a także o ewentualnych opóźnieniach. Powinni również określać szacunkowy czas, dzięki czemu widzimy, jakie postępy są poczynione i które elementy są już zakończone.

Krok 3 – wdrożenie

Według moich zasad działania jest to już ostatni etap wdrażania aplikacji. Na czym polega? Na zakodowaniu i wdrożeniu ostatecznego rozwiązania. Na bazie projektu, który został stworzony w kroku drugim i zaakceptowany przez klienta, budowana jest pełnowartościowa aplikacja. Po zakończeniu wdrożenia następują testy oprogramowania i sprawdzanie, czy nie zawiera ono błędów. Moim zdaniem, etap ten powinien być przeprowadzony bardzo dokładnie, ponieważ dzięki temu jesteśmy w stanie wyeliminować błędy w funkcjonalnościach, ewentualne luki bezpieczeństwa lub niespójności interfejsu. W testach powinien brać udział zarówno wykonawca, jak i klient, gdyż ten drugi posiada największą wiedzę na temat tego, jak aplikacja powinna wyglądać i działać. W momencie zakończenia testowania następuje akceptacja systemu i uruchomienie wersji produkcyjnej. W końcowej fazie powinna powstać też dokumentacja dla klienta, która szczegółowo opisuje działanie funkcjonalności systemu i instrukcję poruszania się po interfejsie użytkownika. Dodatkowo, system powinien zostać zaprojektowany tak, aby w przyszłości istniała możliwość jego dalszego rozwoju.

Podsumowując, poprawne stworzenie aplikacji dedykowanej wymaga dużej ilości czasu i zaangażowania. W moim artykule wskazałem elementy, które uważam za kluczowe do przeprowadzenia takiego procesu. Oczywiście, każdy z nich można rozszerzyć o dodatkowe aspekty, niemniej jednak, te trzy wskazane przeze mnie są najistotniejsze w całym procesie. Dlaczego? Ponieważ z doświadczenia wiem, że pominięcie któregoś z nich, mimo że oszczędzi Twój czas teraz, będzie skutkowało jego stratą w przyszłości, kiedy pojawią się niedomówienia i problemy typu „a przecież to miało działać inaczej”.

Jak kształtują się koszty? Wdrożenie każdej aplikacji jest wyceniane indywidualnie, jednak jeżeli zależy Ci na solidnym produkcie, prezentującym wysoką jakość wykonania (zarówno od strony interfejsu użytkownika, jak i kodu), nie powinieneś wybierać bardzo niskich (nierealnych w stosunku do wymagań) cen, gdyż może okazać się, że oferta nie spełni Twoich oczekiwań. Działajmy zawsze w imię zasady, że jeżeli coś ma być dobre i zrobione w realnym czasie, to nie może być tanie i jeżeli coś ma być tanie i zrobione w zadowalającym czasie, na pewno nie będzie dobre.

Zespół programistów i frontendowców w Grupie TENSE również prowadzi i zarządza projektami. Wprawdzie korzystamy z innych narzędzi, niż te omówione powyżej, ale efekt końcowy jest zawsze taki sam – zadowolony klient, który w końcu otrzymał to, czego oczekiwał.



Zaufali nam:

BĄDŹ NA BIEŻĄCO!
ZAPISZ SIĘ DO NEWSLETTERA!