Gwarancja a nieuzasadnione zglaszanie bledow

0

Witam,

Jak sobie radzicie z gwarancja na Wasze projekty? A konkretnie:

Udzielacie gwarancji na dany produkt (projekt), prawda? Teraz klient informuje o bledzie, starasz sie go zidentyfikowac, a okazuje sie, ze albo bledu nie ma, albo cos zostalo popsute przez osobe, ktora zostala wynajeta przez klienta i popsula pewna rzecz. Do tej pory wlasciwie mi sie tak nie zdarzalo, ale jezeli sytuacja sie powtarza, to tracicie czas na tego typu [CIACH!]. Rozliczacie sie wowczas jakos za to? Czy idzie to "w koszty"?

Inna sprawa, zwiazana z sama gwarancja: W umowie macie zapisane ze zaplata ma nastpic po X dniach od dnia wystawienia rachunku/faktury, chyba, ze okaze sie, ze sa jakies bledy. Prawda? Jak sobie radzicie w sytuacji, gdy klient zwleka z zaplata wlasnie znajdujac jakies bugi czy zglaszajac uwagi? W projekcie informatycznym bowiem, czasem jakis bug moze "wyjsc" po dlugim czasie, po to jest gwarancja udzielana. Nie zrozumcie mnie zle. Tak mam zapisane w umowie, lecz jak zmienic ten zapis (jak jest to u Was), aby klient nie mogl odwlekac zaplate w nieskonczonosc?

Bo teoretycznie teraz moze mi klient podsylac raz na tydzien jakas uwage, odwlekajac zaplate argumentujac bledami w projekcie. Nie chce mi zaplacic poniewaz boi sie ze jezeli mi zaplaci, nie naprawie mu pozniej nic, tylko uciekne na Seszele ;) Podpisana umowa mu nie wystarcza :/

0

hmm, mysle ze to kwestia umowy:

1 - licencja na soft, mowi ze nie odpowiadasz za potencjalne szkody wywolane niepoprawnym uzyciuem i za utrate danych
2 - klauzula w umowie ze nikt nie moze zmieniac niczego w projekcie bez twojej (pisemnej?) zgody
3 - termin zglaszania poprawek, np: 14 dni na zgloszenie wszystkich poprawek, nie zglosi to znaczy ze nie ma
4 - jezeli nie odpowiada na pytania itp w ciagu np: 3 dni to uznajesz ze dane zmiany/koncepty sa zakceptowane
5 - obfuskacja
6 - aneksy do umowy przy zmianach

conajmniej dwie znane mi, duze firmy ktore wytwarzajace aplikacje internetowe, robia tak ze po zaakceptowaniu specyfikacji klient nie ma wgladu do projektu az do konca, placi dokladnie za to co jest w specyfikacji, a po wydaniu i kasie mozna zmieniac dalej...

0

W umowie możesz mieć zapis, że gwarancja obejmuje bezpłatne naprawianie błędów znalezionych w projekcie w ciągu X miesięcy od daty wdrożenia. Błędy zgłoszone po tym okresie będą naprawiane odpłatnie.
Zapłaty za projekt nie musisz wtedy uzależniać od wykrycia błędów.

0

Królik, a jak się to ma do rękojmi przy umowie o dzieło, których okres wg kodeksu cywilnego wynosi 2 lata?

0

Mam na umowie okres gwarancji 12 m-c.
Mysle, ze musze przeformulowac umowe wg porad cepy :P

0

Protokół Zdawczo Odbiorczy - klient podpisuje, że produkt przetestował, jest wykonany i zapłaci kasę w ciągu iluś dni. A błędy wykryte po tym czasie, jeśli faktycznie są winą programisty zostaną naprawione w ciągu iluś dni od zgłoszenia.

0

@somekind: to jest jasne, ale w takim razie przed podpisaniem protokolu ja musze przetestowac projekt (jako klient) i ewentualne poprawki i bledy zglosic wykonawcy. W umowie jest okreslone, ze mam na to X dni, jezeli nie zglosze w tym czasie zadnych zastrzen, znaczy, ze projekt akceptuje, ok?

Teraz moge sobie testowac i testowac dany projekt. Przykladowo: mam 5 dni roboczych na przetestowanie. 4 dni testuje i znajduje blad. Zglaszam go Tobie, Ty poprawiasz, nastepnego 5 dnia. Sila rzeczy ten okres umowny (5 dni) musi zostac wydluzony, bo ja jeszcze raz musze sprawdzic, czy Twoje poprawki nie spowodowaly innych bledow oraz czy rzeczywiscie wszystko ok. Mijaja kolejne 4 dni i pisze, ze jest ok, ale jednak znalazlem kolejny blad. Ty poprawiasz dnia nastepnego itd itd..

0
Adam Boduch napisał(a)

Teraz moge sobie testowac i testowac dany projekt. Przykladowo: mam 5 dni roboczych na przetestowanie. 4 dni testuje i znajduje blad. Zglaszam go Tobie, Ty poprawiasz, nastepnego 5 dnia. Sila rzeczy ten okres umowny (5 dni) musi zostac wydluzony, bo ja jeszcze raz musze sprawdzic, czy Twoje poprawki nie spowodowaly innych bledow oraz czy rzeczywiscie wszystko ok. Mijaja kolejne 4 dni i pisze, ze jest ok, ale jednak znalazlem kolejny blad. Ty poprawiasz dnia nastepnego itd itd..

unit testy i selenium twym pasterzem nie brak Ci Adamie niczego [diabel]

0

Hehe no tak, ale pytam jak zabezpieczacie sie prawnie, w umowie, tak, aby nie doszlo do sytuacji, ktora przedstawilem w poprzednim poscie ;)

0
Adam Boduch napisał(a)

Sila rzeczy ten okres umowny (5 dni) musi zostac wydluzony

Jak to musi?

W dniu w którym oddaję wykonany projekt, podpisuję z klientem protokół, że projekt spełnia jego wymagania funkcjonalne i działa zgodnie z nimi. Równocześnie z tym wystawiam rachunek, klient płaci. Ja mam kasę, on program, wszyscy są szczęśliwi.
A błędy, które klient wskaże później będą naprawiane zgodnie z umową.

Takie przeciąganie terminu oddania w związku z testowaniem grozi przepełnieniem stosu. ;)

0

@somekind: jak wygladaja Twoje umowy?

Zalozmy, ze jestem klientem - Ty - wykonawca.

Oddajesz projekt, przesylasz protokol. Ja nie podpisuje, bo znalazlem buga. W zwiazku z tym, nie moge podpisac, bo uznaje, ze projekt jest niekompletny. Powoluje sie na to, ze nie spelnia wymogow okreslonych w specyfikacji.

W umowach tego typu stosuje sie zapis "ze po X dniach od oddania projektu, w przypadku nie zgloszenia zadnych uwag, uznaje sie projekt za ukonczony [...] kazdorazowe oddanie projeku moze wykazac uchybienia od specyfikacji".

Zalozylem ten topic poniewaz probuje znalezc jakis kompromis pomiedzy interesem klienta a moim.

Inna sytuacja: projekt sobie dziala, jest objety gwarancja. Wiadomo - oprogramowanie, nie TV - nie popsuje sie. Ale ktos namieszal na serwerze, zmienil konfiguracje przez co, aplikacja nie dziala prawidlowo. Klient ma pretensje do mnie "bo sie popsulo". Czy w takim wypadku, jezeli nie ponosicie winy, wystawiacie rachunek za "bezpodstawne zawracanie glowy"? ;) Zdarzylo wam sie cos takiego?

0

co do tego ostatniego (ktoś coś pozmieniał na serwerze/konfigurację/cokolwiek, co nie ma nic wspólnego z aplikacją ale wpływa na jej pracę) to na własnym przykładzie mogę Ci napisać jedynie tyle, że zależnie od
a) relacji z klientem (jeśli jesteśmy w dobrych stosunkach, cały czas współpracujemy albo było to jednorazowe zlecenie, klient jest upierdliwy)
b) ile czasu zajmie mi naprawa tego co ktoś zmienił/zepsuł
Generalnie jeśli nie jest to duża zmiana i zależy mi na kliencie to mu to naprawię po kosztach (dojazd) i grzecznie wytłumaczę, że jak będzie tam grzebał to sam sobie psuje i następna naprawa już będzie wyceniona jako zwykła praca.

0

Hej.
Myślę, ze wszystkie rady są dobre.

Pomyśl także, czy błędy zgłaszane przez klienta się modyfikacjami?
Czasem zdarza się, że klient chce wymusić jakaś modyfikacje, której nie było w specyfikacji początkowej, maskując ją jako błąd.

Jeśli to modyfikacje działania programu, to niech za to płaci.
Błędy poprawiasz ty, ale modyfikacje płaci on.

0

ja osobiscie preferuje takie rozwiazanie, ze absolutnie KAZDY mozliwy blad musi generowac jakis exception, dzieki temu jezeli aplikacja wysle do mnie raport bede wiedzial co gdzie i jak sp1erdolilem, ogranicza to takze przypadki ze klientowi sie wydaje ze cos nie dziala, a dziala tak jak to zostalo wczesniej uzgodnione :P

PS. obserwuj moj projekt http://vermis.desfera.com pracuje wlasnie nad wsadzeniem do niego webapi i interfejsu w php do zdalnego raportowania bugow ;)

0
Adam Boduch napisał(a)

Oddajesz projekt, przesylasz protokol. Ja nie podpisuje, bo znalazlem buga.

Kończę projekt, oddaję skompilowaną wersję, klient testuje, przez np. tydzień nie zgłasza błędów, więc przyjeżdżam z kodami i podpisujemy obaj jednocześnie protokół.
Nie podpiszesz, nie dostaniesz kodu, nie będzie nowych funkcjonalności, nie będzie następnych projektów, nie będzie niczego.
Błędy zawsze się jakieś znajdzie, ale kiedyś trzeba określić koniec tworzenia softu i początek jego naprawiania. :)

0

@cepa: nie mowie tutaj o bledach, ktore generuja exception - takie sa proste do znalezenia :) Gorzej o bledach ukrytych, nad ktorymi trzeba troche posiedziec by je odnalezc (czyli odzwierciedlic postepowanie klienta, ktory jakims cudem doprowadzil do nieprawidlowego funkcjonowania aplikacji).

@somekind: jezeli przez tydzien nie zglasza bledow, to Ok - rzeczywiscie. Jezeli jednak zglasza, to moze niechciec zaplacic za dziurawy projekt majac nadzieje, ze obejmie go gwarancja ;) Tak tylko mowie ;) Najlepiej po prostu przed oddaniem projektu samemu go testowac zeby tego uniknac ;))

0
Adam Boduch napisał(a)

Najlepiej po prostu przed oddaniem projektu samemu go testowac zeby tego uniknac ;))
Adamie to brzmi jakbyś sugerował, że oddajesz nie testowane aplikacje 8-O 8-O 8-O. BTW user zawsze wykona taką kombinację ruchów, które autorowi by do głowy nie przyszły [rotfl] [rotfl] [rotfl]

0

Hehe jak pisalem tego posta, to myslalem, ze ktos tak napisze @Misekd :)
Oczywiscie, ze sie sprawdza, ale faktycznie autor projektu nie przetestuje aplikacji tak jak user, ktory jest zielony w tym temacie...

0

@Adam Budoch:
Twój problem jest ciekawy i wcale nie tak łatwo go rozwiązać. W praktyce nie występuje, gdy jesteś dobrym profesjonalistą. Nie dlatego, że Twój pozbawiony bugów kod tak zachwyca każdego klienta, tylko dlatego, że profesjonalista potrafi dobrać sobie dobrego, normalnego klienta. To profesjonalista bierze odpowiedzialność za to, jakich ma klientów.

Normalny klient nie odstawi takich chamskich akcji.

Niemniej jednak, podobnie jak Ty, widzę tu teoretyczną możliwość exploitu.

I słyszałem o pojedynczych sytuacjach, w której klient faktycznie zgłaszał błędy, za które autor projektu nie odpowiadał. Błąd tak naprawdę nie istniał, istniał na maszynie klienta z powodu wirusa czy innego ustrojstwa, czy też (częściej) błąd wprowadziła inna osoba, która później grzebała przy projekcie. To jednak były pojedyncze przypadki i nie przypominam sobie, by któraś przydarzyła się akurat mi.

Wypadałoby się jednak zabezpieczyć przed tym exploitem. Bo przecież każdy błąd mamy niby obowiązek sprawdzić, przynajmniej w okresie gwarancyjnym. Klient-psychopata (z którym nie powinniśmy współpracować w pierwszej kolejności) może nas zarzucić raportami wyimaginowanych błędów. My musimy je sprawdzać. Całość przypomina trochę atak DoS na nasz mózg ;).

Dobrze by było zabezpieczyć się przed czymś takim w umowie. Np. klauzulą "3 zgłoszenia nieistniejących błędów i gwarancja znika" (wiadomo, że raz czy dwa ktoś może niezłośliwie zgłosić coś, co wg niego jest błędem).

Ktoś wcześniej wspomniał, że klient dostaje jednego dnia aplikację i tego dnia podpisuje jej "odbiór", tj. że spełnia ona wymagania funkcjonalne. Takie coś może kompletnie nie wchodzić w grę. Aplikacje mogą przecież być bardzo złożone. Na tyle, że w jeden dzień nie sposób nawet sprawdzić, czy realizowane są wszystkie wymagania funkcjonalne.

Poza tym, co to oznacza "spełnić jedno z wymagań funkcjonalnych"? Czy jeśli aplikacja zawiera opcję np. edycji nazwy produktu, ale w 50% przypadków użycie tej funkcji powoduje usunięciem produktu / zmianą nazwy innego, losowo wybranego / zupełnie niczym, to wtedy wymaganie funkcjonalne edycji produktu jest spełnione, czy nie? A gdy funkcja ta nie działa w 90% przypadków? To wtedy też mówimy, że funkcja jest, tylko lekko zbugowana? ;)

Przetestowanie, czy wszystkie podstawowe funkcje skomplikowanej opcji działają MNIEJ WIĘCEJ jak należy może spokojnie zająć więcej niż dzień. Tym bardziej gdy ktoś stosuje (głupią, moim zdaniem) taktykę pokazania klientowi najpierw szkiców i statycznych layoutów projektu, a po X miesiącach, w dniu oddania, już gotowej, działającej aplikacji. Wtedy klient musi się najpierw zapoznać z aplikacją i wszystkimi jej funkcjami, a dopiero potem je porządnie przetestować.

Dlatego pytania z pierwszego postu @Adama Budocha wydają mi się rozsądne.

Jeszcze a propos testowania przez autora i przez klienta -- przypomniała mi się anegdota z "Pragmatycznego programisty" (bodajże).

Całkiem dobra firma napisała klientowi aplikację służącą do rysowania. Po pewnym czasie klient zgłasza telefonicznie, że gdy narysuje skośną kreskę pewnym narzędziem, to aplikacja się wysypuje. Firma programistyczna była zdziwiona, bo przecież regularnie testowała wszystkie narzędzia dostępne w aplikacji. Chłopaki zdziwili się jeszcze bardziej gdy przetestowali dokładnie to narzędzie jeszcze raz -- rysując skośną kreskę -- i wszystko zadziałało jak należy. W pewnej konsternacji zgłosili to klientowi. On sprawdził jeszcze raz u siebie na tym samym buildzie i podtrzymał, że błąd występuje. Po jeszcze paru wymianach maili i telefonów zaciekawiona ekipa programistyczna pojechała do klienta sprawdzić, co tam się u niego dzieje. Okazało się, że klient rysował kreskę od prawej do lewej w dół, tymczasem programiści testowali u siebie tylko od lewej do prawej :-).

I tym optymistycznym akcentem...

0

Podepnę się do tego tematu bo mam pytanie. Jeśli sprzedajecie klientowi program wraz z kodem źródłowym to na jak długą dajecie gwarancję? Bo nie chciał bym mieć sytuacji, że klient dopisuje cos sam a jak to później nie działa to zwala winę na mnie.

0

Gwarancję dajesz na swój produkt. Jeśli ktoś zacznie w nim grzebać, to jego problem i wtedy możesz ew. sprawdzić za dopłatą co i jak(o ile chcesz).

1 użytkowników online, w tym zalogowanych: 0, gości: 1