lut 05

Nowo stworzony program nigdy nie jest pozbawiony mniej lub bardziej poważnych błędów. Nie wystrzegają się ich nawet największe firmy informatyczne. Czy komuś z Państwa nigdy nie zawiesił się Windows czy Word a mowa tu o największej firmie informatycznej świata?

Błędy można podzielić pod wieloma względami. Najważniejszy podział to:

  • Błędy krytyczne – powodują, że korzystanie z programu jest całkowicie niemożliwe. Przykładem może być sytuacja, gdy oprogramowanie na zamówienie w ogóle się nie uruchamia lub nie wykonuje poprawnie działania, które jest niezbędne dla funkcjonowania firmy
  • Błędy poważne – powodują znaczne trudności w korzystaniu z części funkcji programu. Przykładem może być niewłaściwe obliczanie danych, generowanie błędów powodujące konieczność dodatkowych działań
  • Błędy estetyczne – nie utrudniają korzystania z programu. Są to głównie literówki, nierówno rozmieszczone elementy GUI, błędy w funkcjonalnościach programu o małym znaczeniu.

Pod względem miejsca generowania wyróżnić możemy:

  • Błędy weryfikacji danych – dane podane przez użytkownika przechodzą proces weryfikacji, mimo że są niepoprawne (np. błąd w funkcji sprawdzającej poprawność NIP)
  • Błędy zapisu danych – dane są zapisane w bazie danych błędnie (np. pole NIP zapisane jest w kolumnie PESEL)
  • Błędy odczytu danych – dane są niepoprawnie odczytywane z bazy danych (np. z bazy danych odczytywanych jest tylko 100 pierwszych rekordów przez oprogramowanie na zamówienie)
  • Błędy przetwarzania danych – dane są źle przetwarzane (np. suma zysków firmy jest źle obliczana, mimo że dane na temat przychodów i kosztów są poprawne)
  • Błędy prezentacji danych – dane są źle prezentowane użytkownikowi (np. NIP w kolumnie PESEL)

Najpoważniejsze są błędy krytyczne oraz błędy wynikające z weryfikacji czy zapisu danych. Zauważmy, że jeśli błąd nastąpi w weryfikacji danych, konsekwencją będą błędy w zapisie, odczycie, przetwarzaniu i prezentacji danych. Ważne jest, że błędy w przetwarzaniu można usunąć. Jeśli błąd zostanie wykryty, można zmienić algorytm użyty do obliczania danych a jako, że zapisane dane są właściwe, otrzymamy poprawne wyniki. W przypadku błędu w zapisie danych, często zapisanie poprawnych danych będzie niemożliwe a więc i poprawienie błędów dla danych sprzed poprawienia programu.

Każdy błąd powinien być zgłaszany twórcom oprogramowania i naprawiany. Ilość błędów jest skończona więc w przypadku intensywnego korzystania z programu, dość szybko można otrzymać wersję ich pozbawioną. Wymagane jest tu jednak ścisłe współdziałanie pomiędzy zleceniodawcą a firmą IT.

Do zgłaszania błędów pomocna może być poniższa tabela.

Opis błędu Okoliczności wystąpienia Miejsce wystąpienia Postulowane rozwiązanie Osoba zgłaszająca Inne
Nie sprawdza poprawności NIP - Dodawanie firmy - Właściciel -
Tagged with:
lut 05

Jeśli podjęta zostaje decyzja o zleceniu napisania programu, to nie powinien on być pozbyty określonych funkcji na przykład ze względu na wyższą cenę. Zwykle takie działania nie obniżają znacznie ceny a wyzbywają aplikację najważniejszej cechy oprogramowania na zamówienia – spełniania indywidualnych potrzeb w 100%. Można tutaj wspierać się faktami, że takie oprogramowanie na zamówienie:

  • Będzie działał co najmniej kilka lat więc jego koszt zakupu rozkłada się na taki okres
  • Umożliwi zmniejszenie kosztów lub zwiększenie zysku przedsiębiorstwa

Ważne jest też, że niektóre funkcje programu, choć z pozoru proste w wykonaniu, powodują znaczne zwiększenie kosztów aplikacji. Warto ustalić z firmą IT, które to funkcje i jakie są możliwości manewru:

  • Rezygnacja z funkcji
  • Zastąpienie jej prostszą wersją
  • Wdrożenie funkcji w innych modułach programu, dzięki czemu jej relatywny koszt zmniejszy się

Cena za oprogramowanie na zamówienie nie jest jedynym wyznacznikiem atrakcyjności oferty, jakie zleceniodawca otrzyma. Do innych ważnych elementów należy:

  • Poziom doradztwa podczas projektowania i obsługi aplikacji
  • Rodzaj licencji na program
  • Długość okresu gwarancyjnego oraz elementy, jakie obejmuje
  • Czas napisania aplikacji

Opis powyższych punktów należy zacząć od faktu, że właściwie stworzenie programu spełniającego choć w 90% wymagania zlecającego bez aktywnego zaangażowania firmy IT jest właściwie niemożliwe. Z naszych doświadczeń wynika, że ponad połowa zleceniodawców nie jest w stanie bez pomocy opisać więcej niż 70% funkcji, jakie powinien mieć program. Ponadto, w 90% przypadków pominięta zostaje przynajmniej jedna funkcja, bez której użytkowanie programu jest niemożliwe.

Obsługa posprzedażna powinna być szybka. W przypadku programów, ustawowy okres 14 dni nie wchodzi właściwie w grę, a już na pewno nie w przypadku problemów uniemożliwiających korzystanie z programu. Firma IT powinna też być w stanie rozwijać napisany przez siebie program, bo z biegiem czasu zawsze potrzebna jest nowa funkcjonalność.

Jeśli chodzi o rodzaj licencji to należy tu zadbać o aspekty prawne. Często spotkać się można z ograniczeniami w ilości komputerów jednocześnie używających oprogramowanie na zamówienie czy też z problemami w przypadku chęci zlecenia modyfikacji programu innej firmie niż tej, która stworzyła program.

Gwarancja powinna być dawana na jak najdłuższy okres. Powinien być w niej zapisany czas reakcji. Mogą być też ustalone zasady usuwania usterek z programu po okresie gwarancji, bo zwykle okres używania programu znacznie przewyższa okres gwarancji.

Czas napisania aplikacji zależy od licznych czynników. Zwykle liczony jest w tygodniach tak więc oczekiwanie, że ktoś napisze w kilka dni program inny niż prosty jest bezzasadne. Okres ten nie powinien być oczywiście zbyt długi.

Tagged with:
lut 05

Jednym z najważniejszych aspektów oprogramowania na zamówienie jest podpisanie dobrze skonstruowanej umowy licencyjnej lub umowy na stworzenie oprogramowania. To w nich zawarte są bardzo istotne zapisy, które ujmują między innymi prawne obszary wykorzystania napisanej aplikacji. To niezwykle ważne, gdyż zakup oprogramowania dalece różni się od zakupu telewizora w markecie a zamówienie i zapłacenie za tego typu program nie oznacza automatycznie możliwości nieograniczonego wykorzystania.
Umowa licencyjna na oprogramowanie na zamówienie powinna chronić obie strony. Często jest tak, że ważne zapisy nie znajdują się w umowie lub ich brzmienie pozwala na różne interpretacje. Nierzadko mają miejsce niekorzystne zapisy w licencji dla jednej ze stron.

Zwykle umowa przedstawiana jest przez firmę IT i po zatwierdzeniu przez zleceniodawcę zostaje podpisana. Najczęściej są to standardowe umowy zmienione co najwyżej o zapisy, które indywidualnie wynegocjował zleceniodawca (np. dłuższy termin płatności). Poniższa tabela przedstawia częste, niekorzystne zapisy przygotowywane przez jedną ze stron.

Firma IT Zleceniodawca
Konieczność zamawiania późniejszych modyfikacji u twórcy oprogramowania Odpowiedzialność twórcy programu za wszystkie jego dysfunkcje, nawet takie na które nie miał wpływu (np. awaria komputera zleceniodawcy)
Ograniczenie wykorzystania programu do określonej liczby stanowisk komputerowych Długi termin płatności lub niejasno sformułowany sposób odbioru aplikacji przez zleceniodawcę, od którego liczony jest termin płatności
Konieczność przeszkolenia u twórcy każdej osoby używającej program Znaczne kary umowne za niedotrzymanie terminów
Zawiłe stwierdzenie umożliwiające dowolną interpretację Zapisy wymuszające na firmie IT wykonanie dodatkowych czynności (np. bezpłatne szkolenie)
Brak terminu wykonania oprogramowania Zapisy o tajemnicy handlowej, które skutecznie uniemożliwiają napisanie aplikacji
Drogie usługi posprzedażne (szkolenia, usuwanie usterek)
Konieczność zakupu sprzętu komputerowego od twórcy aplikacji

Tabela 1: Niekorzystne zapisy w umowach na stworzenie aplikacji

W zasadzie wiele aspektów regulują przepisy prawa obowiązujące w kraju. Przykładowo, firma IT jest zobowiązana do wykonania usługi zgodnie z zawodowym charakterem prowadzonej działalności. Mimo, że na prowadzenie firmy IT nie jest wymagana koncesja czy pozwolenie, osoba prowadząca taką firmę ma obowiązek posiadania faktycznych umiejętności lub wymaganych kwalifikacji a wykonywane przez nią usługi muszą charakteryzować się starannością.

Z drugiej strony, zleceniodawca ma obowiązek zapłacić za wykonaną usługę zgodnie z umową, a także dostarczyć firmie IT wszelkich niezbędnych informacji do wykonania oprogramowania.

Dobrze jest w umowie licencyjnej umieścić zapisy, które do pewnego stopnia regulują zachowanie stron. Przykładem mogą być zapisy dotyczące ceny późniejszych modyfikacji za oprogramowanie na zamówienie. Z jednej strony, wyznaczenie uniwersalnego cennika jest niewykonalne, gdyż nie wiadomo, co będzie podlegać modyfikacjom i ile czasu zajmie ich wykonanie. Z drugiej strony, pozostawienie tego obszaru bez jakiegokolwiek zapisu może spowodować, że zleceniodawca nie będzie mógł uzyskać modyfikacji lub będą one bardzo drogie. Warto zawrzeć zapis o „uwzględnieniu przy wycenie modyfikacji ceny początkowej aplikacji”. Podstawą tego zapisu jest założenie, że modyfikacja stanowiąca 10% czasu poświęconego na napisanie programu powinna kosztować w przybliżeniu 10% ceny początkowej. Oczywiście, nie będzie tyle kosztować, choćby ze względu na upływ czasu i inflację, ale jest w tym zapisie zachowana pewna uczciwa proporcja.

Często modyfikacje oprogramowania na zamówienie zgodnie z zapisami licencji muszą być wykonywane przez twórców aplikacji. Zleceniodawca najczęściej w pierwszym rzędzie zwróci się o modyfikacje do firmy IT i zleci je, nawet jeśli będą droższe niż w innych firmach. Zależność ta spowodowana jest faktem, iż twórcy najlepiej znają program i najszybciej oraz w najbardziej optymalny sposób są w stanie wykonać modyfikacje. Poza tym, zleceniodawca zna już twórcę programu, więc jeśli nie pojawiły się między nimi poważne nieporozumienia w trakcie pisania, musi być między nimi nawiązany jakiś stopień zaufania. Z tych powodów zapis o konieczności zamawiania modyfikacji u twórcy aplikacji wydaje się zbędny.

W przypadku szkoleń dotyczących użytkowania programu zleceniodawca również będzie wolał, aby przeprowadził je raczej twórca niż firma zewnętrzna z omawianych już powyżej względów.

Zleceniodawca nie powinien być ograniczony co do ilości stanowisk, na jakich może wykorzystywać oprogramowanie na zamówienie, gdyż to właściwie nie wpływa na czas, jaki firma IT poświęciła na napisanie programu. Są oczywiście wyjątki. Przykładem może być sytuacja, gdy zleceniodawca zacznie używać aplikacji na takiej ilości stanowisk, że nie wytrzyma tego serwer bazodanowy. Warto więc nie ograniczać zleceniodawcy komputerów, lecz na przykład zapisać, że aplikacja działa optymalnie dla X komputerów. Wtedy zleceniodawca ma świadomość możliwości aplikacji a firma IT zabezpiecza się przed zarzutem np. spowolnienia działania aplikacji w pewnych sytuacjach.

Umowa licencyjna powinna chronić również firmę IT. Jeśli błędy w działaniu aplikacji wynikają z winy systemu operacyjnego, sprzętu komputerowego czy błędów w użytkowaniu aplikacji na zamówienie, odpowiedzialność twórcy powinna być ograniczona. Ze względu na powyższe ograniczenie usuwanie usterek przez twórcę powinno być płatne, lecz tym samym jest on zobowiązany do ich usunięcia, gdyż zleceniodawca – nawet jeśli zawinił – nie może pozostać z niedziałającym oprogramowaniem, za które zapłacił sporo pieniędzy. W celu rozstrzygnięcia czy firma IT ponosi odpowiedzialność za usterkę można zawierzyć firmie IT lub wynająć zewnętrznego konsultanta. Nieprzyznanie się do winy twórcy aplikacji, gdy zawinił stanowi jednak naruszenie prawa i może pociągać za sobą konsekwencje prawne, dlatego takie zachowanie należy do rzadkości.

Tagged with:
lut 05

Oprócz umowy na stworzenie oprogramowania na zamówienie czy umowy licencyjnej zleceniodawca często otrzymuje warunki gwarancji na oprogramowanie. Dokument ten, wyznacza zakres odpowiedzialności za usterki twórcy oprogramowania. Najważniejsze punkty zawarte w takiej umowie gwarancyjnej to:

Nazwa Opis
Okres gwarancji Zwykle trwa od roku do kilku lat. Generalnie, jeśli oprogramowanie na zamówienie  funkcjonuje kilka miesięcy to jest mała szansa na to, że po tym czasie przestanie funkcjonować z winy wadliwie wykonanego kodu (zwykle powodem jest wtedy system operacyjny, sprzęt komputerowy, błąd użytkownika). Błędy programistyczne pojawiają się zazwyczaj w pierwszym okresie użytkowania
Zakres gwarancji Wyznacza obszary odpowiedzialności firmy IT za oprogramowanie na zamówienie. Może być tak, że różne moduły programu mają różny zakres (np. dlatego, że oprogramowanie łączy się z innym programem/serwisem a te mogą zostać zmodyfikowane)
Podmiot gwarancji Określa, kto może się ubiegać o naprawę usterki. Najczęściej podmiotem gwarancji jest zleceniodawca
Czas reakcji na problem Ustawowe 14 dni to w tym przypadku to za długi okres. Problemy krytyczne powinny być rozwiązywane natychmiast a takie, które nie uniemożliwiają korzystania z aplikacji, w możliwie krótkim czasie. Ze względu na różną wagę problemów trudno jest w tym przypadku określić maksymalny czas, dlatego określa się czas reakcji na problem (czas, w którym firma IT przystępuje do rozwiązania problemu)
Zapisy wyłączające odpowiedzialność Czasem w gwarancji występują zapisy stanowiące o tym, za co firma IT nie odpowiada
Inne zapisy Czasem umieszcza się zapis o możliwości przedłużenia gwarancji, o możliwości realizacji gwarancji przez inne podmioty na prośbę firmy IT lub zleceniodawcy, występuje wiele zapisów ogólnikowych np. o konieczności użycia aplikacji zgodnie z jej przeznaczeniem

Tabela 2: Najważniejsze zapisy gwarancji na oprogramowanie

Zleceniodawca powinien negocjować jak najdłuższy okres gwarancji oraz jak najkrótszy czas reakcji na problem. Nawet bez umowy licencyjnej firma IT jest zobowiązana usuwać wady oprogramowania zgodnie z obowiązującym prawem, jednak gwarancja daje zawsze lepsze warunki (dłuższy czas trwania, doprecyzowana odpowiedzialność, inne zapisy specyficzne dla produktu jakim jest oprogramowanie na zamówienie).

Tagged with:
sty 30

Zleceniodawca powinien zdawać sobie sprawę jakiego typu połączeń będzie wymagało jego oprogramowanie na zamówienie. Sieć intranetowa to sieć, w której połączenie między komputerami nie jest realizowane z użyciem łącz internetowych dostawcy internetu. Jest to możliwe np. w jednym biurze, choć nie tylko. Obecnie sieci radiowe mają zasięg kilku kilometrów, tak więc teoretycznie taką siecią można połączyć wszystkie biura firmy w większym mieście. Oczywiście, jest to rzadko realizowane. Zwykle komputery w biurze połączone są ze sobą lokalnie a ze światem – w tym z innymi oddziałami firmy – za pomocą łącza internetowego.

Najlepiej, gdy możliwe jest funkcjonowanie aplikacji poprzez intranet ze względów zamieszczonych w poniżej tabeli, jednak często istnieje potrzeba działania takiej aplikacji z wykorzystaniem internetu (znacznie oddalone od siebie oddziały czy też części firmy np. centrala i magazyn). W takim przypadku program bazodanowy działa wolniej, jest mnie bezpieczny, zależny od dostawców internetu, na których firma ma ograniczony wpływ jednak wtedy może być realizowany dla komputerów rozmieszczonych na całym świecie.

Połączenie intranetowe Połączenie internetowe
Szybsze – jego prędkość to 54 Mb/s dla łącza radiowego (przesłanie filmu zajmuje niecałe 2 minuty) i nawet 1 Gb/s w przypadku łącza kablowego (przesłanie filmu w czasie 6 sekund) Wolne- obecnie prędkość tego łącza to w Polsce od 1 Mb/s do 8 Mb/s, czyli to łącze jest nawet o 1000 razy wolniejsze niż intranetowe.
Tanie – jego koszt to koszt okablowania, urządzeń podtrzymujących sieć (zwykle routera) i prądu Drogie – koszt to comiesięczna opłata za internet wynosząca nawet kilkaset złotych w przypadku najszybszych łącz
Jakość zależna od firmy Jakość zależna od dostawcy internetu
Siecią zarządza firma Siecią zarządza dostawca internetu
Większe możliwości konfiguracyjne Możliwości konfiguracyjne zależne w znacznej części od dostawcy internetu
Bezpieczniejsze – połączenia realizowane są wewnątrz firmy. Wymagany jest najczęściej fizyczny dostęp do sieci aby dokonać włamania Mało bezpieczny- połączenie z bazą danych przechodzi przez wiele zewnętrznych i niekontrolowanych przez firmę punktów, gdzie nastąpić może przejęcie informacji. Najpopularniejszy protokół Ethernet do realizacji takich połączeń nie umożliwia wybrania drogi przesyłu danych (jest ona wybierana automatycznie przez urządzenia na „świecie”)
Dostępny jedynie na małe odległości Poprzez Internet możliwe jest obecnie połączenie niemal z każdym komputerem na świecie
Tagged with:
preload preload preload