Kto powinien płacić za poprawki / błędy? [Zamknięte]

33

Więc zacząłem freelancingu zarówno w programowaniu na komputery / strony, jak i do tego klienta, który już zaakceptował moją pracę i płacił mi, wciąż do mnie wraca za każdym razem, gdy znajdzie błąd itp. I znalazłem, że spędzam więcej czasu, niż myślałem, naprawiając je wolny. Czy to w porządku, czy powinienem zacząć pobierać opłatę za wsparcie?

Jaki jest najlepszy sposób radzenia sobie z poprawkami rzekomo zaakceptowanej i ukończonej pracy?

Agush
źródło
5
W przypadku poważnych błędów zwykle piekło trzeba zapłacić, więc myślę, że piekło za nie płaci.
Tim Post
Co rozumiesz przez „błąd itp.”? Istnieje różnica między błędami a dalszą pracą, która nie obejmuje błędów.
David Thornley,
Miałem na myśli poprawki błędów i wady, a nie dodatkowe funkcje i dalsze prace
Agush
Mam na myśli także rzeczy, które działają w przeglądarce, ale włamują się do innej wersji lub niejasnej przeglądarki. (w tworzeniu stron internetowych)
Agush
Ponownie: jeśli umowa nie zawiera tej wersji przeglądarki, która jest obsługiwana przez Ciebie, nie ponosisz odpowiedzialności.
Mchl

Odpowiedzi:

42

Część umowy powinna opisywać testy akceptacyjne, tj. Testy, które wykona klient, a aplikacja musi je zaliczyć, aby umowa została wykonana. Za wszystko, co nie jest objęte tymi testami, odpowiada klient. Wszystko, co obejmuje, należy do Ciebie.

Ponieważ nie jest możliwe (szczególnie dla klienta nietechnicznego) przewidzenie wszystkich możliwych problemów, należy dodać do swojego kontaktu klauzulę określającą okres, w którym naprawisz wszelkie nowe problemy w ramach umowy. Następnie powinieneś oferować tylko płatne wsparcie.

Mchl
źródło
3
Mam wrażenie, że dla tego konkretnego klienta jest już prawdopodobnie za późno, ale to dobra rada na przyszłość.
Dean Harding
1
Nawet ze swoim obecnym klientem Agush mógł uzgodnić zestaw testów akceptacyjnych. Ważne jest wyjaśnienie klientowi, że zgoda na takie testy spowoduje szybsze dostarczenie funkcjonalnej aplikacji. Jeśli klient jest rozsądny, zgodzi się.
Mchl
Dokładnie. To, co zamierzasz zrobić, musi zostać określone w umowie lub umowie z wyprzedzeniem, ku zadowoleniu wszystkich. Potem jest już za późno. Po dostarczeniu projektu, jeśli ty i klient nie zgadzacie się, będziecie musieli znaleźć sposób na kompromis w tej sprawie, a to może być trudne.
glenatron
10

To zależy.

W pierwszej kolejności powinieneś zapłacić, ponieważ można argumentować, że praca nie jest ukończona.

Później klient powinien płacić za ciągłe wsparcie.

Problem polega jednak na podjęciu decyzji, gdzie jest granica, co stanowi błąd i co jest nową funkcją. Posiadanie wymagań i / lub testów akceptacyjnych jest długą drogą do zdefiniowania tego.

Naprawdę trzeba dostać te rzeczy w miejscu, zanim dostarczy pracę, ale jeśli nie ma to może teraz jest czas Tak mówią - „Będę wspierać to za darmo dla dzień następny N / tydzień, ale potem my muszę omówić umowę o wsparcie ”(zwróć uwagę na mój nacisk na„ my ”).

Powiedziawszy to wszystko, są chwile, kiedy trzeba będzie naprawić błąd za darmo i przyjąć trafienie. Jeśli nic innego nie buduje dobrej woli.

ChrisF
źródło
1
Skąd jesteś teraz, to dobra rada. Być może będziesz musiał przez jakiś czas naprawiać błędy dla tego klienta w interesie dobrej woli i reputacji, co wiele znaczy, jeśli dopiero zaczynasz. Rozważ to jako cenę nauki lekcji na temat ustalania, co jest objęte wsparciem w ramach umowy ...
glenatron
10

Wszystkie powyższe odpowiedzi są dobre. Chciałbym jednak dodać kilka punktów do rozważenia:

  • Czy klient jest dla ciebie cenny? Czasami warto przejść kilka dodatkowych jardów, aby zadowolić klienta, jeśli uważasz, że jest on dla ciebie cenny i przyniesie ci więcej pracy w przyszłości. Musisz znaleźć równowagę między ścisłością a elastycznością, co może być różne dla każdego klienta. Nie ma sensu tracić przyszłej pracy tylko dlatego, że jesteś przekonany, że łatwy do naprawy błąd nie wchodzi w zakres. Z drugiej strony nie chcesz, aby klient chodził po tobie. To delikatna równowaga!

  • Czy błąd jest czymś, czego łatwo można pominąć w testach użytkowników? Weźmy na przykład błąd związany z datą, który pojawia się w grze dopiero po wprowadzeniu określonego roku (pomyśl błąd Millennium itp.). Nie można oczekiwać, że klient wykryje to podczas testowania, dlatego to na tobie spoczywa obowiązek naprawy.

Dan Diplo
źródło
Naprawdę słusznie skończyłem je naprawiać, ponieważ utrata klienta nie jest na razie warta kłopotów.
Agush,
6

Kiedy pracowałem jako wolny strzelec, moja podstawowa umowa z klientem zdefiniowała warunek zwany „akceptacją”, który był wymagany przed udostępnieniem projektu publicznie. W momencie akceptacji rozpoczął się 30-dniowy okres, który nazwałem „wsparciem i działaniem wsparcia”. Po tym 30-dniowym okresie bieżące prace nad projektem były rozliczane co godzinę.

Jeśli masz dobre relacje z tym klientem, miej z nim serce do serca na temat tego, jak niewykonalna jest dla ciebie obecna sytuacja, i zaproponuj godziwą stawkę godzinową za bieżące utrzymanie i wsparcie. Ludzie czasem myślą, że kupowanie niestandardowego oprogramowania jest jak kupowanie kanapki lub czegoś takiego, jak po zbudowaniu. Po prostu tak nie jest.

Dan Ray
źródło
Dzięki temu jest to dobry sposób, aby sobie z tym poradzić. Okres wsparcia po akceptacji, a potem są one na własną rękę.
Agush,
2

Zasadniczo możesz skorzystać z bezpłatnej pomocy technicznej przez określoną liczbę dni od dostarczenia aplikacji. Z pewnością wsparcie na całe życie nie jest możliwe / niedopuszczalne.

Upewnij się, że zgłoszony błąd to BŁĄD, a nie zmiana istniejącej funkcji. Za każdą zmianę funkcji należy naładować.

Gopi
źródło
2

Gdyby go przetestował i podpisał, możesz argumentować, że powinien zapłacić.

Jeśli jesteś dumny i cenisz swoją pracę, możesz argumentować, że naprawisz kod. Ucz się na podstawie doświadczeń i buduj lepszy kod następnym razem, wydajniej. Lub uwzględnij większy zysk, aby pokryć usuwanie błędów.

Jeśli program robi coś niepożądanego lub nieoczekiwanego przy danych wejściowych, oznacza to błąd i powinien zostać naprawiony.

Mógłbyś podać z góry opłatę za wsparcie jako dodatek do początkowych prac rozwojowych.

cometbill
źródło
2

W umowie określ stawkę za godzinę i śledź swój czas. Podając klientowi cenę, należy podać, że jest to wartość szacunkowa, a rzeczywisty wynik może być mniejszy lub większy.

Informuj klienta na bieżąco o postępach, a kiedy nieuchronnie przedstawi sugestie, możesz po prostu powiedzieć mu, ile czasu zajmie ci to (jeśli zmiana jest niezgodna z oryginalnymi specyfikacjami), a on może zdecydować, czy zmiana jest warta pieniędzy. Dlatego zostaną dodane tylko ważne dla niego zmiany.

Osobiście obejmowałbym akceptowalne i nieakceptowalne (płatne wsparcie vs. bezpłatne wsparcie) błędy w umowie, dzięki czemu masz przynajmniej coś na piśmie od samego początku. Bez wątpienia będzie się zastanawiał, dlaczego powinieneś potrzebować tej klauzuli, więc bądź z góry i wyjaśnij, że jeśli pojawi się nowa aktualizacja systemu operacyjnego, która coś psuje, to nie jest darmowe wsparcie. Błędy w twoim kodzie zgodnie z oryginalną specyfikacją na określonych platformach zostałyby jednak uwzględnione.

Powinienem jednak wspomnieć, że wykonywałem jedynie prace związane z informatyką, a nie programowanie. Może to odstraszyć klientów, ale tylko upewnij się, że twoja praca się sprzedaje, będzie bardziej profesjonalna, towarzyska i pomocna niż reszta, a także przedstawi powody, dla których masz ściślejszą umowę.

Poza tym klient, który nie zaakceptuje tej klauzuli, jest najprawdopodobniej złym klientem.

Smokey
źródło