Aktywne Wpisy

Dorciqch +170
źródło: temp_file8589038139457099639
Pobierz
wjtk123 +217
Słucham Państwa, komu się Polska nie podoba i chciałby ponownie wziąć udział w narodzinowej loterii? xD
#polska #swiat #mapa #ciekawostki #statystyka
#polska #swiat #mapa #ciekawostki #statystyka
źródło: IMG_9995
Pobierz




Opiszę, w jaki sposób straciłem pracę w jedynej mającej oparte na PHP własne produkty (nie software house) firmie w moim mieście. Znalazłem już inną pracę, ale moje pytanie to: co następnym razem przy zadaniu typu aktualizacja frameworka muszę robić inaczej niż robiłem, żeby nie powtórzyła się taka sama lub podobna sytuacja?
Kilka lat temu dostałem w pracy (programista PHP) zadanie: uaktualnienie Laravela (frameworka PHP) w dużym projekcie z wersji 4 do 7.
Mój plan realizowania tego zadania był taki:
- uaktualnię samego Laravela, po czym przejdę do dostosowywania kodu aplikacji
- stworzę na podstawie changelogu Laravela listę rzeczy, których warto poszukać grepem i poprzerabiać, żeby działały z nowym Laravelem (powstała ogromna lista)
- stworzę na podstawie konfiguracji routingu listę wszystkich podstron (aplikacja nie jest typu SPA, tylko z tradycyjnymi podstronami), żeby je przeglądać w poszukiwaniu niedziałających funkcji
Doprowadziłem projekt do takiego stanu, żeby w ogóle coś innego niż biała strona było widoczne w przeglądarce i żebym mógł się zalogować.
I później przez jakiś miesiąc naprzemiennie robiłem dwie rzeczy:
- brałem kilka punktów z listy rzeczy do zmiany stworzonej na podstawie changelogu i je zmieniałem, żeby działały z nowym Laravelem
- brałem kilka podstron z listy podstron i je ręcznie w całości przeklikiwałem, naprawiając każdy znaleziony problem, których było pełno
Każde swoje rozwiązanie oczywiście od razu testowałem, czy działa w pełni dobrze.
Z tego co pamiętam, zmieniałem około 300-500 linii kodu na dzień, w różnych częściach projektu.
Po w przybliżeniu miesiącu przerwano mi pracę nad tym zadaniem, bo "skoro zajmuje tyle czasu, to nie ma sensu, zostaniemy przy starej wersji". Szacuję, że zrobiłem około połowy wszystkiego, co było do zrobienia, tzn. gdybym dostał jeszcze drugi miesiąc na robienie tego, wszystko by się udało.
Teraz niedawno, czyli wiele lat później po tej "nieudanej" (przerwanej mi z powodu zajmowania za dużo czasu) aktualizacji Laravela, jeden z kluczowych klientów zażyczył sobie czegoś, co można prosto w kilka dni zrobić przy użyciu jednego z gotowych dostępnych w internecie pakietów dla nowszych wersji Laravela, ale nie dla starszych, a zrobienie tego samodzielnie od zera zajęłoby więcej czasu niż klient jest w stanie czekać.
Klient ten zrezygnował z oprogramowania (aplikacji SaaS) mojego pracodawcy i przeszedł do konkurencji oferującej potrzebną mu rzecz.
Mój przełożony jakiś tydzień później stwierdził, że okłamałem go kilka lat temu, że uaktualnienie projektu do nowej wersji Laravela zajmuje tyle czasu, a nie mniej, bo pobawił się tym w weekend i niby od początku soboty do końca niedzieli zrobił to, czego połowę ja robiłem w miesiąc. Wyniku swojej pracy nie pokazał, twierdząc że nie ma kodu przy sobie, na pytanie co robił inaczej niż ja odpowiedział że używał wyrażeń regularnych do masowego edytowania kodu (co ja w sumie też robiłem, ale udało mi się w przypadku mniej niż 1% rzeczy, poza tym i tak trzeba sprawdzać ręcznie działanie tego wszystkiego, co np. sed na podstawie wyrażenia zmienił) i że pomijał sprawdzanie działania rzeczy, co do których domyślał się, że działają (co wydaje mi się absurdalne).
Ja powiedziałem, że moim zdaniem nie dało się tego robić znacznie szybciej niż ja robiłem, że w odpowiedniej gałęzi repozytorium widać, co podczas tej próby aktualizacji robiłem którego dnia i ile kodu dziennie zmieniałem, że mogę coś powyjaśniać, powiedzieć w jaki sposób doszedłem do tego, że zmiany wymagało akurat to co zmieniłem, co by źle działało bez konkretnej mojej zmiany w kodzie itd. ale nie chciał ze mną rozmawiać.
Firma krótko po tym zdarzeniu "zlikwidowała moje stanowisko" (co jest w sumie dla mnie lepsze niż np. jakieś bzdury o mojej wydajności wpisane w świadectwo) i chwilę później druga spółka z o.o. mająca biuro w tym samym miejscu zaczęła szukanie kogoś innego na moje stanowisko.
Tak więc, co następnym razem przy zadaniu typu aktualizacja frameworka muszę robić inaczej niż robiłem, żeby nie powtórzyła się taka sama lub podobna sytuacja?
#programowanie #pracait #php #webdev
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰
▶︎ Obserwuj nasz tag #mirkoanonim
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰
· Akcje: Odpowiedz anonimowo · Więcej szczegółów
· Opublikuj swój własny wpis: Mirko Anonim
· Zaakceptował: mkarweta
👉 Z Twoją pomocą możemy działać dalej! Wspomóż projekt
z version history widzę:
→ Laravel version 4.0
→ Laravel version 4.1
→ Laravel
Najwyżej np zatrzymasz się na wersji 5 i już to będzie „coś do przodu”. A nie, że projekt wraca na wersję 4 i cała Twoja praca poszła na marne.
mnie kiedyś wywalono, bo raczyłem wspomnieć, że publicznie dostępne serwery na systemach EOL od 6 lat to nie to czego się oczekuje w IT , klient zrobił audyt, wyszło wszystko (a nie miał dostępu do środka)
manager z mordką do mnie dlaczego to nie załatane i jak to możliwe, żeby tak było zaniedbane, ja przytoczyłem korenspondecję, z zeszłego roku, włącznie z odpowiedzią, że "mamy
Od lat nie siedzę w PHP (a nawet wtedy nie używałem laravel) po prostu wskazałem na podstawową praktykę.
Na pewno na początku trzeba było by przeprowadzić jakąś wstępną analizę jakie zmiany w międzyczasie zachodziły, jaka jest wiarygodność changelogów czy trzymanie się zasad minor/major release i na tej podstawie zaplanowanie wstępnej strategii ale to już jest zależne od konkretnego przypadku.
Edit: Widzę że pisaliśmy w tym samym czasie, bo jak
* postawić apkę w sposób hermetyczny np. z pustą bazą w dockerze
* prosisz AI o wygenerowanie requestów/responsów na bieżącej wersji, które testują mniej więcej wszystko co się da
* patrzysz czy wszystko jest deterministyczne. Szum (np. inny output, ale robi to samo) możesz wyfiltrować przy użyciu bardziej złożonych asercji niż
ma być to samoPo czy każesz AI zrobić migrację. Napisane testy regresyjne w
Miałeś spłacić ~7 lat długu technologicznego najlepiej w 2 godziny? Manager przyjął c-----ą estymatę.
Podczas migracji zawsze coś się w-----e, podszedłeś do zadania odpowiedzialnie, na daily lub weeklu manager powinien statusować Twój progres prac i szybciej podjąć decyzję o zbyt dużym tasku, lub braku zasobów na tak duże spłacenie długu technologicznego.
Testowałeś zmiany, tj. projekt nie miał napisanych testów? Jak nie to