Hej, podzielę się z wami moimi wrażeniami po 2 miesiącach pracy nad projektem.
Hej, podzielę się z wami moimi wrażeniami po 2 miesiącach pracy nad projektem. Wiecie, jak jest? Trochę ciężko. Generalnie mój problem jest taki, że ja lubię dopracowywać szczegóły, pastwić się nad czymś, żeby było prawie idealnie, ale staram się zmienić podejście na „wystarczająco dobrze”.
To jest tak, że lubię nad tym pracować, sprawia mi przyjemność siadanie do tego projektu. Jest skończony w 70–80% na ten moment. Kosztowało mnie to dużo pracy, trochę pieniędzy na te abonamenty. Aczkolwiek nie żałuję. Miałem problemy techniczne, ale o tym napiszę na końcu — dłuższa wersja dla chętnych. Kręciłem się w kółko, wiedziałem, że należy wykonać pracę dookoła, zadbać o fundament. Musiałem nauczyć się pracować efektywnie. W korpo nie było to wymagane, bo kierunek w korpo jest taki, żeby wykonać polecenie przełożonego, bez względu na efekt. Inne podejście jest wręcz karane.
Natomiast tutaj musiałem skupić się na efektywności. Jak najkrótszą drogą dojść do zamierzonego celu. Ale jaki jest cel? Trzeba by go dobrze zdefiniować. Ja miałem z tym problem, bo ogólnie cel można zdefiniować dość łatwo, można wyobrazić sobie, co chcę osiągnąć na końcu. Ale co po drodze? Jakie problemy rozwiązać, co zrobić, żeby dojść do końca? Miałem problemy, ale ogarnąłem. Na usprawiedliwienie dodam, że zakładałem 2 lub 3 miesiące na projekt i właśnie mija drugi miesiąc. Natomiast włożyłem w to zdecydowanie więcej pracy i kosztowało mnie to więcej stresu, niż zakładałem. Bo chciałem to zrobić dobrze. Zbliżam się ku końcowi. MVP 1 było najtrudniejsze. Drugi cel jest w połowie, a trzeci zaraz za nim. Było ciężko, ale idę do przodu.
Dłuższa wersja dla wytrwałych:
Najpierw kręciłem się w kółko, zajęło mi to 2 tygodnie. Nie wiedziałem do końca, jak ma to wyglądać, zacząłem rzeźbić system, ale bez planu i ogólnej architektury. Agenci zrobili taki rozpierdol, że dałem sobie spokój. Próbowałem ustalić proces i zasady działania. Ustawiłem pierwszy system agentowy z podziałem na role i komunikacją. Działało częściowo, ale zapanował chaos. Wyciągnąłem wnioski, wywaliłem to do kosza i zacząłem od nowa.
Drugie podejście to już był znany kierunek. Wiedziałem, co chcę osiągnąć, ale nie wiedziałem do końca jak. Było kilka dróg. Kolega, który jest rzeczoznawcą, pokazał mi portal Emmersona, w którym kupuje dane. Postanowiłem iść tą drogą: własna baza danych, ale stabilna, zbieranie danych z kilku źródeł — z GUS-u, Geoportalu, skany lotnicze, bryły LOD. Brakowało powierzchni użytkowej przy większości domów, co uniemożliwiało szacowanie. Opracowałem kilka metod szacowania PU na podstawie różnych danych. Zadziałało. Jedna z metod była bardzo ciężka, głównie pod względem ilości danych. Dawała najlepsze wyniki, ale finalnie z niej zrezygnowałem, bo musiałbym zainwestować kupę pieniędzy w zarąbisty hosting lub własny serwer. To byłoby jakieś kilkanaście tysięcy złotych za serwer z dużą liczbą dysków. Lub drogi hosting, tylko po to, aby mieć lepsze oszacowanie i „fajniejsze” dane. Ale to byłoby 80% kosztów za 10% funkcjonalności. Więc finalnie to wywaliłem i zostawiłem uproszczone metody szacowania, bazujące na statystyce i lekkich danych.
Kryzys numer 2: codebase rośnie. Mam piękną architekturę, modularną, wszystko działa super, optymalnie, nie ma błędów, żadnych regresji. Ale komputer się grzeje. Liczyłem tempo pracy w zadaniach. Agent robił jedno zadanie, zajmowało mu ono zazwyczaj od 30 do 60 minut, rzadko czas był inny. Testy trwały początkowo 4 minuty, zoptymalizowane na maksa, baza testowa i fixtury na RAM-dysku. Problem zaczął się przy zadaniu numer 800 i 10 tysiącach testów jednostkowych, integracyjnych, regresyjnych. Zaczął się koszmar z tempem pracy. Praktycznie wszystko stanęło. Same testy zaczęły trwać 30 minut. System agentowy się zapychał... kolejka integracyjna rosła znacznie szybciej, niż byłem w stanie integrować zmiany.
Nie chciałem tracić jakości... ale chciałem utrzymać tempo pracy... Ufff, co tu zrobić? Zastosowałem metody integracyjne znane mi z dużych korporacji, gdzie zmian i paczek były dziesiątki, a kolejka integracyjna też ciągnęła się w nieskończoność. W skrócie: każda zmiana dostawała celowany zestaw testów, natomiast pełną integrację z kompletem testów przechodziła duża paczka, powiedzmy 50 zmian naraz... Uff, problem rozwiązany.
Mam teraz dobre tempo pracy, stosuję różne metody, żeby zaprzęgać tych EJAJÓW do pracy i idzie dobrze, ale miałem momenty kryzysowe, kiedy myślałem, żeby to wszystko rzucić w cholerę i dać se spokój.
Aczkolwiek to, co mam na ten moment, to nie jest nic, na czym da się zarobić. Są inne portale, które mają takie dane za darmo, takie jak Deweloperuch czy NaMapie. Mam to samo co oni, ale musiałem mieć tę bazę, żeby móc rozpocząć pracę nad właściwą wersją softu. I mam postanowienie, że się nie poddam i skończę to, co zacząłem, bo ja nie zostawiam pracy niedokończonej.
Może będę szukał roboty gdzieś na etacie, ale taki projekt podbija moje portfolio. Zdobyłem dzięki temu dużo doświadczenia i nie żałuję.
Następny projekt w kolejce to platforma do zarządzania produkcją i sprzedażą u kumpla w zakładzie produkcyjnym. Kończę więc powoli pracę nad mapacen.pl — mam nadzieję, że w kolejnym miesiącu — i biorę się za kolejną stronę, a od strony biznesowej MapaCen przejmuje mój wspólnik
#dexterslaboratory #chwalesie #wypaleniezawodowe