Demonical Monk napisał(a)
Serwis wielkości Allegro bez API i części bajerów dałbym radę odtworzyć w przeciągu tygodnia bardzo wydajnej (i bardzo dobrze płatnej) pracy. Firmy które każą czekać kilka miesięcy są po prostu śmieszne.
Ha ha. Brzmi to jak klasyczny przykład programistycznych przechwałek bez pokrycia i świadczy raczej o nie uwzględnieniu wszystkich rzeczy, jakie składają się na dobry projekt. Uważam to za bardzo niebezpieczne: możesz dać klientowi szacunki, że "skończysz robotę w tydzień" i może niby główną funkcjonalność będziesz w ten tydzień miał, ale nie całą i nie dopracowaną. Tzw. "wykańczanie" potrwa zaś miesiącami.
Ten błąd oszacowania i uważanie się za superbohatera a innych za idiotów jest niestety popularne wśród nas, programistów. Jeff Atwood pisał dokładnie o tym w zeszłym roku (polecam ten wpis).
Znasz JAKIKOLWIEK przykład, by ktokolwiek zrobił "serwis wielkości Allegro" w tydzień? Powiedzmy, że chodzi o sam kod -- olejmy już design, którego zrobienie potrwałoby dużo dłużej niż tydzień i który jest przecież ekstremalnie ważny. Nie wiem, może jakby wziąć najlepszych ludzi na świecie, i to nie jednego, a cały zespół, to dałoby się podstawowy szkielet zrobić w tydzień.
Co oznacza "serwis wielkości X"? Moim zdaniem dwie rzeczy. Po pierwsze, samą złożoność serwisu. Mnogość opcji, scenariuszy, podstron oraz ich stopień skomplikowania (prowadzi to do złożoności bazy danych itp.). Po drugie, wielkość widowni -- czyli liczbę użytkowników. A to już rodzi SPORE problemy wydajnościowe; Allegro to największy serwis aukcyjny w Polsce (pamiętaj: napisałeś "serwis wielkości Allegro"!). Ogarnięcie samej bazy danych w tydzień byłoby sukcesem. Sam czas potrzebny na optymalizację byłby spory.
Nie korzystam z Allegro i nie ogarniam prawdziwej wielkości tego serwisu, ale z tego co widzę, to prawdopodobnie nie podjąłbym się samego cięcia layoutów gdybym miał na nie tydzień. A w kodowaniu frontendu czuję się bardzo, bardzo mocno i pierwszym z brzegu kmiotkiem nie jestem.
Prosty design? Dosyć. Ale ile tu może być ekranów? Liczba ta idzie pewne w pierdyliardy ;). Zobacz na stopkę, choćby jej lewą połowę: ile tam jest elementów. Rozbudowaną pomoc wraz z działem Jak korzystać. Skomplikowane formularze z JavaScriptem. Ajax tu i ówdzie. Wiesz ile tam jest CSS? Widzę dwa główne arkusze stylów; nie wiem czy oba są wykorzystywane jednocześnie, czy to dwie wersje do wyboru. Ale jedna z nich ma 3000 linii, druga ponad 3600. I to ma działać jeszcze w IE6, żebyś nie myślał (ponownie: wielkość serwisu = spore grono odbiorców i nie chcemy pomijać np. kilku czy kilkudziesięciu tysięcy ludzi). Sprite'y CSS też mają, ale to oczywiste przy tej wielkości serwisu (wydajność!). W tydzień? Powodzenia.
Szerzej opisałem frontend, bo to widać na pierwszy rzut oka. W backendzie są pewnie co najmniej takie same trudności.
A warto powtórzyć to, co napisał Atwood: serwis ukończony to serwis ukończony. Nie "prawie skończony". Nie "jeszcze tylko kilka drobnostek". Tu wszystko trzeba dopracować.
Nie spodziewałem się takiego posta akurat po Tobie, @Demonical Monk. Przecież programujesz nie od dzisiaj. A jeśli faktycznie jesteś superbohaterem... Cóż, wynajmij się. Albo inaczej: zainwestuj w to. Zrób jakiś pokaz. Wymyśl coś, co by udowadniało, że faktycznie robisz tę pracę w tydzień. Powiedzmy... Podaj wcześniej listę 10 serwisów odpowiedniej wielkości, które mógłbyś "spapugować" w tydzień. Niech inna, niezależna osoba wybierze jeden z nich i da Ci w godzinie zero (przydałoby się, żebyś dostał layout od jakiegoś grafika -- chyba że to też sam zrobisz, oczywiście layout musi być oryginalny).
I poświęć ten jeden tydzień na napisanie "serwisu wielkości Allegro". Jeśli Ci się uda i efekt będzie dobry, to ludzie byliby idiotami nie idąc do Ciebie z takimi rzeczami. I będziesz dostawał przynajmniej parę ładnych tysięcy złotych za te pojedyncze tygodnie pracy. Nawet 2k za tydzień to nie tak mało, prawda? A ludzie zapewne płaciliby więcej, bo i tak opłacałoby im się dać 3, 4, czy 5 tysięcy. Tak naprawdę to cena, którą podał @Krynioo, wydaje mi się raczej niska (nie znam dokładnie stopnia skomplikowania zadania). Na pewno jest bardzo niska za 3 miesiące pracy firmy ;). Może i mógłbyś więc dostawać i 8k za te pojedyncze tygodnie, więc potencjalnie nawet 20-30 k na miesiąc. A to już jak na młodego programistę płaca rewelacyjna. Myślę, że opłaca się zainwestować ten jeden pierwszy tydzień i podjąć wyzwanie.
Lub przyznać się przed sobą do pewnej... przesady w szacunkach :P.
@Krynioo:
@GhostDog:
Panowie, co Wy tu...? To temat założony przez gościa, który mógłby potencjalnie być Waszym/naszym klientem. Moglibyście się powstrzymać od pewnych tekstów i przynajmniej udawać, że my, programiści, mamy pewien minimalny poziom kultury i na co dzień nie wyzywamy się od gnojków i nie mówimy drugiemu, że "pier**li". Nie wspomnę o tym, że takie sformułowania w ogóle są zbędne. Lepiej oszczędzać je na prawdziwie krytyczne momenty typu walka z bugami IE5 (5.0, nie 5.5).
@Krynioo:
Co do Hindusów to chyba nigdy nie widziałem nawet strony internetowej firmy z Indii. Jeśli myślisz o jakiejś konkretnej, możesz dać tutaj link. Zobaczymy, co oni tam wyprawiają. Kiepskich firm na pewno jest mnóstwo. Ale tam w ogóle jest mnóstwo programistów. Więc i tych dobrych powinno parę być. Nie można generalizować i mówić, że Hindusi, Chińczycy czy Romulanie są słabymi programistami.
Tak naprawdę to prawie każdy programista jest słaby jak na zadania, które nam się powierza. Liczba "ruchomych części" w oprogramowaniu jest ogromna. Chyba w żadnym innym biznesie nie ma takiego stopnia skomplikowania i tylu zależności w projektach, które robi tak mało osób w tak krótkim czasie, za tak małe (stosunkowo) pieniądze i przy tak kosmicznie zmieniających się wymaganiach.
Całość sprowadza się do tego, kto napisze mniej lipny kod. Bo gdybyś chciał mieć aplikację, która jest równie skomplikowana jak konstrukcja nowoczesnego samochodu (pomijając soft) czy płatowca samolotu i chciałbyś mieć to robione w takim trybie i takiej jakości jak te fizyczne konstrukcje, to nie tylko zapłaciłbyś np. 100x więcej, ale i nie mógłbyś nagle wprowadzać zmian typu "dodajmy drugą parę silników pod skrzydłami".
Dlatego nawet w Polsce czy w USA większość firm robi stosunkowo słabe i niedopracowane projekty.