Wystawiasz taką ofertę na Oferii czy Freelancerii. Jakie jest prawdopodobieństwo wygrania, kiedy to obok Ciebie ktoś da dla przykładu o połowę mniej i jeszcze zadeklaruje krótszy termin realizacji?
O ofertach za 500 zł to nie ma co pisać, choć podejrzewam że ktoś taki ma największe szanse na wygranie.
Moim zdaniem poważny klient, któremu zależy na jakości wykonania, nawet jeżeli bolą go oczy od zaproponowanej kwoty, to się z Tobą skontaktuje i zapyta co w tej kwocie dostanie. Poza tym wytyczne dot. aplikacji podane przez autora tego tematu nie są jednoznaczne, tzn. można napisać dwie aplikacje, które będą je spełniać, ale będą dwoma, zupełnie innymi programami, gdzie pierwszemu bliżej do projektu studenckiego, a drugiemu do profesjonalnej aplikacji biznesowej, co do której ma się 95% pewności, że się nie wysypie na drukowaniu raportu.
No i dla przykładu przedstawiasz klientowi wstępnie (a ci często na początek dają jakieś śmiesznie uproszczone wymagania wskazujące na prostą aplikację) te 6 - 7K netto, później jak się zapoznajesz ze szczegółami śpiewasz mu ostatecznie te 12 - 15K. Przejdzie?
Widełki są po to, aby wskazać pułap, z którego startujemy, biorąc pod uwagę wstępne założenia określone przez klienta, jednocześnie wskazując, że to tylko od jego wyobraźni zależy na jakiej kwocie ostatecznie skończymy. Jeżeli sobie zażyczy stworzenia jakiegoś bardzo wyrafinowanego interfejsu z piękną nakładką w CSS (albo ich kilkoma wersjami), czy niecodziennych rozwiązań zarządzania danymi i ich prezentacji itd., to wtedy jasne jak Słońce jest to, że możemy wyjść poza początkowe widełki. Nikt poważny nie robi z tego wielkiego halo. Jeżeli zdecyduje, że podobną jakość wykonania może otrzymać u kogoś innego za podobną cenę, to nie ma problemu. Osoba, która się ceni i może tą swoją wartość udowodnić np. zrealizowanymi projektami nie powinna zbyt wielkiej wagi przywiązywać do "ofert za 500 zł".
Co do tego czasu na realizację, jakieś 20% tego czasu to zgrubne napisanie aplikacji, zaś te 80% to te testy i poprawki. Tych wydruków i raportów też może być sporo, więc co do tygodnia czasu można by się zastanawiać czy dasz radę, chyba że robisz copy paste z jakichś innych części kodów albo masz generator kodu. Ważna jest też dostępność bibliotek i to czy w ogóle możesz ich użyć, bo wymagania klientów mogą być różne.
Moim zdaniem większą uwagę powinno się przywiązywać do etapu projektu i dobierania rozwiązań, wzorców, które chcemy później zaimplementować. Dzięki temu nie ma czegoś takiego, co można by nazwać "zgrubnym pisaniem aplikacji", tylko "pisaniem aplikacji". Dzięki temu również czas, który poświęcimy na poprawki i testy diametralnie się zmniejszy. Oczywiście, mam całą jedną przestrzeń roboczą z już zaimplementowanymi podstawowymi klockami, np. pojedyncze wzorce, controllery bez funkcjonalności, algorytmy do filtrowania, sortowania, szukania, akcje przycisków itp. Dzięki temu proces projektowania i późniejszego pisania jest o wiele łatwiejszy i przystępniejszy, a także ma się pewność, co do sposobu działania zaimplementowanego i przetestowanego wcześniej rozwiązania.
Ciekawe też czy tak prosto dałoby się wyrobić w tym czasie, biorąc pod uwagę takie zabawy jak model-widok-prezenter, ORM, testy jednostkowe, code review i inne tego typu rzeczy. Ten termin w praktyce mógłby się wydłużyć i do 2 mies. Testów jednostkowych pod JAVA nie wziąłeś tu pod uwagę (a może i tak???). Jak dużo czasu szacujesz na ich napisanie?
To zależy od ostatecznej formy aplikacji, która zostałaby "zaklepana" we spół z klientem. Oczywiście, że termin mógłby się wydłużyć. Co do testów jednostkowych, to każdy ma inne do nich podejście i odmienne sposoby wplatania ich (o ile w ogóle) między etapy powstawania aplikacji. Większa wagę przywiązuję do pracy z debuggerem i profilerem.
Często klient się na tym nie zna a te testy jak robisz samodzielnie, to nawet mogą się okazać niewarte zachodu. Bo co Ci da napisanie testów do już sprawdzonego i poprawnie działającego kodu i to przy założeniu, że więcej już nie będziesz robił rozbudowy aplikacji?
Nie rozumiem ostatniego zdania.