poniedziałek, 5 sierpnia 2013

Czemu to tyle trwa?

Dzisiaj opowiem Wam realia robienia czegoś "na wczoraj", czegoś poniżej kosztów, spraw z pogranicza "mission impossible" albo gdy trzeba odpowiedzieć na pytania klienta/szefa z gatunku "pytania do jasnowidza". Czyli jak to się kończy gdy klient czy szef wymaga od informatyka "niemożliwego".

Każdy informatyk już pewnie na początku swojej kariery zauważył to zjawisko - prawie wszystko jest na przysłowiowe "wczoraj", zawsze na styk możliwości realizacji, zawsze zakłada się że łatwo pójdzie i nie ma scenariusza na inną opcję...
Częściej można spotkać bardzo wyśrubowany termin realizacji zadania niż groźną infekcje wirusową, ambitną konfigurację czy próbę włamu na serwer. Informatyk przeważnie zmaga się właśnie z bardzo krótkimi terminami niż hordami hackerów czy plagami infekcji...
 
Skąd się bierze zjawisko "mission impossible"?

Weźmy może prosty przykład, który może na początku nie wydaje się bezpośrednio związany z tematem.
W naszym cenniku można znaleźć pozycję "Usuwanie wirusów, trojanów oraz innego niechcianego oprogramowania". Jak widać - usługę tą wstępnie szacujemy na koszt od 30 do 100 PLN. Skąd taki rozstrzał?
Najprościej mówiąc - wszystko zależy od danego przypadku - różne ceny niby tej samej usługi wynikają z różnej pracochłonności zadania.

Jeśli infekcja polega usunięciu jednego niegroźnego wirusa, nieaktywnego i siedzącego sobie w zapomnianym katalogu na dysku, to mamy np. 15 minut roboty...
Innym razem jednak trafiamy na zjawisko infekcji totalnej -  tu nie wystarczy już prosta procedura, trzeba sięgać po specjalne narzędzia, skanować komputer z poziomu płytki narzędziowej czy pendrive. A im więcej danych i im wolniejszy komputer, tym wolniejsze skanowanie. A pojedyncze skanowanie nie zawsze może dać efekt - czyli czasami zabieg trzeba powtórzyć. A czasami to się nie uda i trzeba całość jednak sformatować...
Taki czarny scenariusz może się ciągnąć godzinami aż osiągniemy pożądany efekt.

A zjawisko "mission impossible" bierze się stąd, że najczęściej zleceniodawca z góry zakłada najbardziej optymistyczny scenariusz, czasami wręcz otwarcie go oczekuje, stawia jako target naszych działań, czasami kojarzy to z czymś w typie best deal - czyli że z góry może utargować najkrótszy czas realizacji, coś jak wariant ekspresowy...
Gdy jednak dowiaduje się jakie są realia i że to wcale nie będzie najkrótszy wariant realizacji usługi, jest niezadowolony, to nie miało tyle trwać, ktoś mu nie dał najlepszej oferty...

Skąd klienci więc biorą swoje wyceny, szacowania?
Każdy z nas ma jakieś swoje wyobrażenie o danej usłudze, głównie na podstawie własnych doświadczeń albo doświadczeń znajomych, rodziny, zewnętrznych konsultacji itp.
Tak więc ktoś, kto widział udaną rozprawę z wirusami jedynie w wersji light (prosta infekcja), być może usuwanie wirusów kojarzy z taką szybką akcją i może być niezadowolony jeśli zabieg pt. "usuwanie wirusów" potrwa kilka godzin w przypadku dużej infekcji.
I odwrotnie - jeśli ktoś przywykł do długich potyczek z falami infekcji, usuwanie pojedynczej, prostej infekcji wywoła u niego uśmiech na twarzy i pewnie pomyśli że ci, którzy realizowali wcześniejsze usługi, może go naciągnęli czy oszukali albo że teraz trafił na super informatyka...
Pamiętajmy że cały czas chodzi o jedną i tą samą usługę w cenniku...
Od danego przypadku i tej kombinacji wrażeń "kiedyś-dzisiaj" zależy czy ocena takich działań będzie pozytywna czy negatywna.
Niektórzy zleceniodawcy czasami doszukują się również jakiegoś wątku handlowego w całej sprawie.
Wygląda to jakby założyli sobie target a potem, widząc że nie jest on osiągany, myśleli "Dlaczego ten informatyk chce ode mnie więcej pieniędzy za robotę niż zakładałem, czemu tyle siedział nad prostą sprawą? Jaki argument powinienem rzucić aby zszedł z ceny czy zrobił robotę szybciej?"...
Być może odbierają sytuację na zasadzie że robią deal, że to dobijanie interesu, że to gra handlowa... Handlowiec może zejść z ceny i to w większości jest kwestia dobrej woli, więc podobnego podejścia oczekuje się od informatyka.

A czy tak powinno być?

Wg mnie nie. Taka zaoczna wycena czasochłonności powinna uwzględniać różne problemy jakie można napotkać podczas realizacji zadania informatycznego i wynikać z faktycznej trudności zadania a nie tylko z własnego przeświadczenia ile takie zadanie w teorii powinno zajmować albo porównań do innych, w rzeczywistości zupełnie innych przypadków (choć dla zleceniodawcy wydają się one identyczne).

Co z tego wynika? 

Najczęściej ocena danego wykonawcy, jeśli nie jest do końca trafna, może się skończyć nawet niespodziewaną zmianą wykonawcy. To zresztą nie jest jedynie domena zleceń w branży IT, podobne sytuacje zdarzają się również w innych branżach.
Tak więc albo jeszcze przed realizacją zlecenia albo już w trakcie jego trwania, zleceniodawca zauważa że to zajmie dłużej i będzie kosztować więcej niż początkowo sobie oszacował. Wówczas albo kładzie nacisk na informatyka - niech zrobi coś aby to jednak zajęło krócej i kosztowało mniej, albo czując się oszukany, zaczyna rozglądać się za innym wykonawcą.

W efekcie wszyscy tracą:
  • klient traci bo ma rozgrzebaną robotę, którą potem próbuje przejąć kolejny wykonawca z często jeszcze gorszym skutkiem, niż zaczął pierwszy. Poza tym, chcąc oszczędzić, bywa że klient płaci prawie podwójnie - raz pierwszemu wykonawcy za zaczęcie czy pierwsze etapy roboty, drugi raz drugiemu wykonawcy za dokończenie. O straconych nerwach nie wspomnę. Bywa też że po zmianie wykonawcy na kolejnego klienta czeka dalsze rozczarowanie bo ten drugi jest jeszcze mniej efektywny niż pierwszy - zwłaszcza jak zadanie było właśnie "mission impossible".
  • traci pierwszy wykonawca bo czeka go spora ilość spięć i trudnych sytuacji z klientem, robota robi się mało wdzięczna a może się okazać że klient nie zapłaci bo wstępnie oszacował sobie dane zadanie inaczej a wyszło tak jak w realu a nie jak w teorii.
  • bywa że traci również kolejny wykonawca, bo dostaje rozgrzebaną robotę po pierwszym wykonawcy, już wstępnie poirytowanego klienta i właściwie na dzień dobry wszystko jest "pod górę". Bywa że drugi wykonawca potwierdza swoim działaniem słuszność działań tego pierwszego i wtedy klient już naprawdę nie wie co z tym zrobić...
Czy są tu jakieś rady dla klientów/zleceniodawców?

Pamiętajmy że ludzie, którzy piszą programy czy systemy operacyjne też się mylą a z tego czasami wynikają problemy w naszej pracy informatyków i są to problemy naprawdę niespodziewane, nigdzie o nich nie uczą w żadnej szkole i właściwie tylko logiczne myślenie lub improwizacja pozwalają wybrnąć z nietypowego problemu. Dlatego nie zawsze wszystko jest na czas, zgodnie z obietnicą i w ogóle wg rozkładu jazdy.
W świecie IT nie zawsze wszystko do siebie pasuje, nie ma uniwersalnego prawa informatycznego, które wymagałoby aby programy pasowały do siebie i nie robiły błędów. Długo jeszcze poczekamy na taką idealną sytuację.
Jeśli chcecie szacować realnie - zapytajcie Waszego informatyka - podwykonawcy czy pracownika. Jeśli nie wie od razu, pozwólcie się mu dowiedzieć - to Wasz przewodnik po świecie IT.
Dopiero wtedy decydujecie ile co ma zająć i ile kosztować.

A co można doradzić informatykom?

Pamiętajcie, klient czy szef często ma swoją wizję, którą być może złapał w biegu, znajomy mu podpowiedział, nikt nie wnikał w szczegóły techniczne - skoro dało się wdrożyć w jednym miejscu, pewnie da się i w drugim. Innymi słowy - nikt nie spodziewał się "schodów".
Uświadomcie go dlaczego ten konkretny przypadek jest inny, wskażcie słabe punkty, wytłumaczcie że to nie deal czy oferta handlowa, że tu decydują konkretne możliwości techniczne a nie dobra wola. Posłużcie się jakimś przykładem z mniej informatycznego aspektu życia - np. "części do Audi nie będą pasować do Peugeota".
 

niedziela, 4 sierpnia 2013

Jaki sposób wyceny usług informatycznych opłaca się klientom

Kolejny finansowy temat.
 
Tym razem chcemy pokazać jak różne sposoby wyceny zleceń informatycznych rzutują na cenę końcową usługi dla klienta. I mówię tu zarówno o jednorazowych zleceniach jak i regularnej opiece informatycznej miesiąc w miesiąc.
 
Ktoś może skwitować: "Po co takie rozważania? Ma być najtaniej i już!"...
 
Zacznijmy może od tego jak w praktyce wygląda ustalanie z nami cen. Przychodzimy do klienta i pytamy się jaki sposób wyceny preferuje. I tu w zależności od rodzaju klienta, branży, jego wcześniejszych doświadczeń z informatykami czy podwykonawcami w ogóle, słyszymy następujące wersje zdarzeń:
  • ryczałt za usługę,
  • wycena godzinowa,
  • wycena zadaniowa (np. określona stawka za każdą interwencję).
 
W prawie każdym z tych przypadków, osoba decyzyjna po stronie klienta jest w pełni przekonana co do słuszności własnej propozycji takiej wyceny. Sporo klientów nie ma doświadczenia informatycznego, własnych statystyk odnośnie pracochłonności poszczególnych zadań informatycznych, pełnej świadomości co faktycznie dzieje się w ich sieci komputerowej.
W efekcie wybierają wykonawców którzy zaoferują ich ulubiony sposób wyceny a nie najtańszy w danej sytuacji.
 
Czy zatem zamierzamy z tym polemizować albo udowadniać że ktoś nie ma racji?
Nie, chcemy jedynie pokazać jak u nas wycena usługi wygląda od kuchni i w zależności od sytuacji w danej firmie i jak takie czy inne założenie może przełożyć się na finalną cenę usługi.
Można to potraktować jak taki swoisty przewodnik po wycenach informatycznych. I jeśli nawet ktoś nie wybierze nas do realizacji danego zadania, może przyda mu się to w rozmowach z innymi podwykonawcami.
 
Może parę przykładów:
  • gdy wiedza osoby decyzyjnej o aktualnej sytuacji sieci komputerowej w firmie pokrywa się ze stanem faktycznym, gdy osoba taka jest osobą trochę techniczną i dodatkowo jest dobrze zorientowana w przebiegu poprzednich prac informatycznych, wie co gdzie było robione wcześniej i jaki efekt to dało - tam raczej opłaca się zastosować wycenę czasową.
    Dzieje się tak gdyż w trakcie prac najczęściej nie wychodzą dodatkowe, nieznane wcześniej fakty, problemy czy zadania - więc koszt jest przewidywalny a ponieważ jest liczony od czasu więc dobrze dopasowany do zakresu prac.
  • w przypadku gdy osoba decyzyjna nie jest osobą techniczną, nie do końca ma pełny zakres informacji odnośnie tego co było zrobione w systemie wcześniej, jeśli nie wnikała dokładnie czym zajmowała się faktycznie poprzednia ekipa IT, na czym polegały problemy - to najczęściej w trakcie dalszych prac informatycznych wyjdzie dużo niespodzianek.
    W przypadku realizacji wyceny czasowej może dać różne nieprzewidziane efekty finansowe. Siadamy do prac, ktoś decyzyjny zakłada że dane zadanie skończymy w godzinę, a tymczasem my napotykamy przy okazji 3 inne problemy informatyczne i właściwie czas realizacji przeciąga się do 3-4 godzin i nie jest to celowe generowanie kosztów czy naciąganie czasu pracy - rzeczywiście tyle pracy trzeba włożyć aby zrobić coś solidnie.
    Najlepszą analogią byłby przypadek gdy jedziemy do mechanika samochodowego aby wymienił nam olej a przy okazji dowiadujemy się że mamy zużyte klocki hamulcowe i brak płynu hamulcowego.
    I tu ma miejsce pewna sytuacja patowa - jeśli taki przykładowy mechanik wymieni jednak te klocki, doleje płynu hamulcowego to jesteśmy bezpieczniejsi na drodze, ale czujemy się trochę oburzeni i może oszukani albo naciągnięci - nie zakładaliśmy dodatkowego kosztu, nie pasuje to nam.
    Z drugiej jednak strony - jeśli ktoś tego nie wyprostuje (zrobi tylko to o co prosiliśmy ignorując faktyczne zagrożenie) albo chociaż nam o tym nie wspomni, będzie automatycznie głównym podejrzanym w przypadku gdy będziemy mieli wypadek i nie zdążymy skutecznie zahamować. I tak źle, i tak niedobrze...
    Dlatego też w przypadku gdy zleceniodawca nie ma pełnej wiedzy o stanie infrastruktury informatycznej ani o problemach które tam występują, dużo lepiej wyjdzie na wycenie ryczałtowej lub zafiksowanej kwocie za dany zakres zadań.
    Oczywiście ta sytuacja ma również drugą stronę medalu. My również chcemy aby cena odpowiadała pracochłonności więc w przypadku gdy pracochłonność w istotny sposób przewyższa uprzednią wycenę, staramy się o tym z klientem rozmawiać. Jednak jest to dużo lepsza sytuacja niż taka, w której zleceniodawca staje przed dużo wyższym kosztem w wyniku wyceny godzinowej niż się spodziewał.
  • wycena zadaniowa przydaje się gdzieś pośrodku - jeśli nie wiemy wszystkiego o naszej sieci komputerowej, mamy pracowników, którzy mogą coś chcący lub niechcący w niej zepsuć, ale z drugiej strony jakiś obraz tej sytuacji mamy, dotychczasowy podwykonawca informatyczny rzeczowo informował nas o postępach i efektach swoich prac, możemy wykorzystać złoty środek jakim jest wycena zadaniowa. Czyli umawiamy się na konkretną cenę za dany typ zadania.
Tytułem podsumowania - jak widać dużo zależy od tego ile zleceniodawca wie o zadaniu które nam zleca i o tym co się dzieje w jego sieci komputerowej. Dlatego też jeśli zamierzamy zlecić doraźne zadanie informatyczne lub podpisać umowę regularnej opieki informatycznej - weźmy poprawkę na nasz poziom wiedzy informatycznej oraz wiedzy o tym co się dzieje w naszym systemie komputerowym oraz jak faktycznie wywiązywała się z zadań informatycznych poprzednia ekipa.