Z cyklu #AbsurdyKorpo
Dawno nie było ale dzisiaj mi mózg rozpi..ło więc się z wami tym podzielę.
Firma, w której pracuję prowadzi równolegle wiele projektów, a co za tym idzie pozatrudniali mnóstwo nowych osób. Jako, że pracuję tam już sporo czasu to poproszono mnie o udział w projekcie z dwoma nowymi developerami aby przez jakiś czas ich nadzorować. Sęk w tym, że projekt bardzo duży ilość wiedzy dla kogoś nowego ogromna zatem część ustaleń (np architektonicznych) omówiłem bezpośrednio z PM'em oraz architektem zanim tych nowych ludzi pozatrudniali.
Abyście lepiej zrozumieli poziom absurdu opowiem wam też nieco o procesie wydawniczym, który z takich czy innych przyczyn nie jest dobry ale jest to pewien kompromis między potrzebami biznesu i git flow, który chcielibyśmy mieć. Mianowicie dev robią zmiany na środowisku DEV, jak są gotowi idą z tą zmianą na środowisko TEST1. Tam znęca się nad tym zespół QA. Następnie jak QA klepnie idziemy na TEST2 i tam znęca się nad tym biznes i dopiero jak biznes klepnie, że jest ok to idziemy na prod. Każde środowisko TEST1, TEST2 oraz PROD ma odwzorowanie w GIT tak aby kody z GIT pokrywały się z bazą. No i dochodzimy do sedna problemu. Nowy projekt to nowy biznes, który z przyczyn niezależnych od nas nie ma dostępu do TEST2 i mieć nie będzie. Zatem jakaś mądra głowa wymyśliła kolejne środowisko TEST3. Zupełnie niezależne od wszystkiego z dostępem dla nowego biznesu. Środowisko z pełnymi testami E2E. No dobra ale jak to wpiąć w normalny nasz proces wydawniczy aby sobie kodów potem na prod nie nadpisywać?
Ustaliłem z PM'em i architektem, że Ci 2 nowi developerzy będą developować na tym środowisku TEST3. Jak im biznes potwierdzi, że działa poprawnie to te zmiany dev przeniosą na nasze normalne środowiska czyli DEV (tylko dla formalności), TEST1 (do testów QA) oraz TEST2 ale tu już biznes nic nie robi bo mamy potwierdzenie na TEST3 i idziemy na PROD. Nie jest idealnie ale tak jak wspomniałem wcześniej nie da się inaczej kompromis nigdy nikogo nie zadowala w pełni.
Po mniej więcej pół roku to środowisko TEST3 w końcu powstało. Ja się z projektu już urwałem bo były inne pilniejsze tematy, a dziś na spotkaniu zespołowym (wszyscy developerzy PL/SQL z całego zespołu) mówią nam, że od teraz po testach na TEST2 mamy te zmiany z TEST2 (nie związane z powyższym projektem) wgrywać też na TEST3 tak aby na TEST3 były wszystkie zmiany i pokrywało się to z prodem. No to pierwsze 15 min wytykałem im dziury w tym podejściu, że jeden projekt będzie musiał czekać na drugi, że retesty, że rozjazd kodów, że brak nawet repo pod TEST3 i gdy w końcu się już wystarczająco "wyżyłem" pytam kto to tak spier...lił? No i odzywa się mój kierownik, że przecież było spotkanie i było ustalone. No to pytam kto był na tym spotkaniu i dostaję listę:
I tak o to 11 osób bez absolutnie ŻADNEJ wiedzy na temat procesu przyszło i wymyśliło nowy proces nowe flow i jeszcze nas poinformować zapomnieli. Serio rozglądam się czy gdzieś jakaś kamera nie wisi i ktoś nie ciśnie ze mnie beki w jakiejś ukrytej kamerze
Zainspirowany tematem od @tBane retro gierek ciekawostka:
https://pcmod.pl/quandoom-czyli-doom-na-komputery-kwantowe.html
Doom na komputerze kwantowym. Szacun dla autora
Luke Martimer, naukowiec w Instytucie Nauk Fotonicznych w Barcelonie stworzył Quandoom, czyli Dooma na komputery kwantowe.
https://pcmod.pl/quandoom-czyli-doom-na-komputery-kwantowe.html@superdurszlak: Wygląda na to, że sama gra to zaledwie ok. 10k, na początku myślałem, że bufor ekranu jest zrobiony na tradycyjnej pamięci, a procesor kwantowy po prostu emituje obraz, ale oczywiście mogę się mylić. Skoro jest, jak jest, to starszy Wolf3D, czy jeszcze prostsza gra, jaką jest np. Mario Bros lub Tetris będzie podobnie wymagająca, o ile zrealizowana w podobnej rozdzielczości.
Zupełnie przez przypadek trafiłem na to , ktoś zrobił wersję tej gry w trybie tekstowym. Jak dobrze liczę, jeden znak to 16 bitów, bo 8 bitów na znak, 4 bity pierwszego kolory i 4 bity drugiego koloru. W czasie, gdy rozdzielczość 320x200x1 wymaga 64k bitów, rozdzielczość 40x25x16 wymaga tylko 16k bitów. A jak się ograniczy zestaw znaków i kolorów, to jeszcze mniej. Ciekawe, jaki komputer kwantowy jest potrzebny, żeby uruchomić wersję Doom z tego filmiku.
Witajcie,
Czasami wrzucam tu na bloga #AbsurdyKorpo ale dzisiaj moje spostrzeżenie podyktowane nowym doświadczeniem. Mianowicie nie należę do ludzi, którzy często zmieniają pracę. Jestem dość wybredny jeśli chodzi o pracodawcę ale wynika to głównie z mojej wiedzy, doświadczenia i sporej ilości ofert na rynku w moim zakresie umiejętności. Ponadto jak już rzucam papierem to nagle pieniądze się znajdują, warunki daje się zmienić i przeważnie w danej firmie siedzę po > 5lat. Natomiast jak już wspominałem mam ciepłą posadkę w korpo gdzie jest... jak to w korpo... natomiast poproszono mnie o pomoc w innej firmie. Tu musiałem otworzyć już działalność i miała to być tylko kilkumiesięczna współpraca w konkretnym projekcie dla zewnętrzengo klienta. Praca indywidualna prosta i przyjemna choć czasochłonna żadnych PM'ów, anali czy choćby innych developerów. Bezpośredni kontakt z technicznym ziomkiem od klienta, testy automatyczne, docker, gradle zintegrowane z gitlabem wszystko gotowe wystarczyło kody do repo wrzucać. Po prostu marzenie kontakt międzyludzki zminimalizowany do absolutnego minimum czyli dla introwertyka jak ja ideał. Projekt robiłem głównie po godzinach i w weekendy ale klienta interesował efekt, a nie godziny pracy więc robota niemal idealna (trochę był problem z czasem bo ziomki siedziały w Australii więc różnica czasu spora). Projekt się udał klient był zadowolony, robota skończona, a firma wniebowzięta ... no i tak mnie podeszli ($$$), że sam nie wiem kiedy ale zgodziłem się na pomoc w innym projekcie.
No i tu się zaczęło komplikować. Po pierwsze trafiłem już do projektu kręconego od kilku ładnych lat, zespół kilkanaście osób. Cała struktura scrumowa niby hurtownia danych (pewnie na samym początku tak było) ale teraz to już potężny rozproszony system z terabajtami danych. Kilka ładnych tygodni mi zajęło pokapowanie się co i jak się tu dzieje. Dostałem tylko jeden moduł pod opiekę i byłem tylko ja i analityczka w tym temacie także pierwsze kilka miesięcy mimo mojego zdziwienia co do niektórych elementów udawało się to kręcić do przodu. Do czasu aż główny developer poszedł na 3 tygodnie urlopu i musiałem przejąć jego obowiązki na ten czas. Te obowiązki to głównie reanimowanie produkcji no i się zaczęło... szczegółów wam tu nie będę opisywał bo musiałbym z tydzień opisu robić ale w kodzie i strukturze bazy były / są tak absurdalne błędy, że to się w pale nie mieści.
No i dochodzimy do wątpliwej przyjemności nabycia nowego doświadczenia, a mianowicie pierwszy raz trafiłem do zespołu gdzie ludzie bezpośrednio nade mną mają dużo mniejszą wiedzę techniczną ale wyznaczają kierunki. Nie trafiają do nich żadne argumenty bo są przyzwyczajeni do tego co jest i żaden nowy nie będzie im tu nic zmieniał. Ci na równi ze mną (stanowisko) mimo, iż przyznają mi rację to są na etapie quiet quitting więc się nie odzywają i robią to co im się każe tworząc totalnie bezrefleksyjnie kod. PM i PO nastawieni są tylko na zysk więc o żadnym refactorze nie może być mowy bo klient za to nie zapłaci i tylko nowe featury.
Podsumowując:
Nie do końca wiem jak się w tej sytuacji zachować. Z jednej strony chciałoby się zawalczyć aby tego potwora postawić na nogi bo potencjał jest, z drugiej strony jeśli o wszystko mam się bić i tłumaczyć np architektowi jak działa optymalizator SQL to mi się chyba nie chce. Normalnie bym takiej firmy nie wybrał ale sęk w tym, że osoba, która mnie rekrutowała czyli mój bezpośredni przełożony to bardzo bardzo dobry programista z ogromną wiedzą. Niestety on jest w innym projekcie, a ja początkowo też byłem w innym. Powolutku dochodzę do wniosku, że trzeba skończyć to co zacząłem i grzecznie się pożegnać bo szkoda życia na takie projekty.
Na tyle bagniste, że czuję się jak shrek :D ma swoje plusy i minusy natomiast minusów nie ma, aż tylu abym się zwalniał. Poza tym posiadając JDG i pracując na UoP odpada mi część kosztów związanych z JDG także przechodzić nie mam zamiaru tym bardziej patrząc w którym kierunku to zmierza. Dokończę projekt i spróbuję albo przejść do innego projektu albo po prostu odpuszczę i poszukam czegoś innego.
zaczynało się ciekawie ale potem już jest nieciekawie - co masz zrobić? nic, przecież jesteś tam devem, robisz co masz robić i morda w kubeł, jak się nie podoba to a) kopiesz się z koniem (czy warto za te $$$?) albo b) odchodzisz bo nie warto za te $$$
Z cyklu #delphi
Dzisiaj dostałem info, że Delphi 12.2 jest już gotowe. Będzie webinar więc jak ktoś jest zainteresowany to zapraszam:
https://register.gotowebinar.com/register/111554692095880031?source=news_ticker
@Drunky:
Odpowiadając na test:
"To może dla testu zadaj to swoje pytanie jakiemuś AI i zobacz co odpowie, w jaki sposób, jakim stylem, na czym się skupił, czy jest to odpowiedź ogólnikowa, czy będzie to jednak tak szczegółowa odpowiedź jak moja."
Wypowiedź ChatGPT 4o:
Prompty:
Jeśli sam to napisałeś to spoko i dobrze, że wnosisz wkład w forum. Moją wypowiedź potraktuj po prostu jako test generowania komentarzy przez ChatGPT.
@itou123
Spoko - dziękuję za test generowania komentarzy w ChatGPT. Fajnie, że Ci się chciało z tym eksperymentować.
Co do odpowiedzi jaką uzyskałeś i wkleiłeś, to wypisał sporo zastosowań.
Co do nazw konkretnych firm (czyli klientów), to ja w mojej odpowiedzi ich nie podawałem i bym ich nie podawał na publicznym forum, bo to są jakby nie było dane poufne i tajemnica firmy.
Z ciekawości też przeprowadziłem taki test i na przeklejone bezpośrednio pytanie @WhiteLightning, ChatGPT odpowiadał bardziej ogólnie, z laniem wody, formatowaniem, listowaniem itp.
Odnośnie podejrzenia @WhiteLightning, jakoby to nie była moja wypowiedź, tylko napisana przez AI, to mnie zdziwiło. Zacząłem się zastanawiać: po co ktoś, zakładając, że sam nie znałby prawidłowej odpowiedzi na pytanie, miałby chcieć się wypowiadać w danym temacie i pytać o to np. ChatGPT i potem przeklejać to na forum programistycznym jako swoją odpowiedź? Przecież ChatGPT nie jest ani rzetelnym, ani wiarogodnym źródłem wiedzy i często ma tzw. "halucynacje" i zmyśla coś, co mu się wydaje. Oczywiście, może się zdarzyć, że poda prawdziwe informacje, jednak często podaje nieprawdziwe lub mieszane (częściowo prawdziwe + halucynacje). Zatem przeklejanie odpowiedzi z ChatGPT byłoby niezbyt sensowne i dosyć ryzykowne w kwestii dalszej dyskusji (gdyby coś z przeklejonych informacji okazało się nieprawdą).
Z cyklu #AbsurdyKorpo
Rozmowa na chat między mną i nowym kolegą:
Łukasz, 10:01
oooo fajne rzeczy mi piszesz na ogólnym
a są gdzieś takie rzeczy spisane? Tak dla potomnych?
chętnie dodałbym ewentualnie to co napisałeś do jakiej sensownej wiki, by się trzymać wytycznych
Ty, 10:03
niestety u nas jak w czasach kamienia łupanego historie i mądrości przekazywane są przez starszyznę dla potomnych słownie
Łukasz, 10:04
to jest piękne, dzięki temu to i jest tak jak kiedyś
przeżywamy historię w czasach smartfonów xD
Ty, 10:04
coś w ten deseń
Ty, 10:08,
ma to też swoje minusy np:
Sytuacja dzieje się w klasztorze, młody mnich zaraz po seminarium wchodzi do opactwa i pyta opata:
* Opacie co wy tu cały dzień robicie? Czym się zajmujecie?
* No młody bracie przepisujemy głównie stare księgi, które już się rozsypują tak aby zostało dla potomnych
* Ale jak to tak ręcznie linijka po linijce strona po stronie?
* No tak
* No ale przecież możecie się pomylić?
* Nie bo robimy to bardzo dokładnie i skrupulatnie
* Nie wierzę na bank się gdzieś pomyliliście
* No dobrze młody niedowiarku przyniosę Ci nasz najstarszy wolumen z przed 1000 lat i zobaczysz, że zasady spisane wtedy są identyczne jak aktualnie
Poszedł nie ma go godzinę, dwie w końcu młody zszedł na dół do katakumb, a tam stary opat siedzi nad bardzo starą księgą i płacze
* Opacie dlaczego płaczecie?
* Widzisz bo tu jest napisane: "żyj w celi bracie" 😀
A jak pomyślę ile takiej wiedzy przepadło z ludźmi, którzy się pozwalniali w ostatnim czasie to wolę nawet nie myśleć
CREATE TABLE Wlasciciel (Name nvarchar(32)); INSERT INTO Wlasciciel VALUES ('Arek');...
CREATE TABLE Wlasciciel (Name nvarchar(32)); INSERT INTO Wlasciciel VALUES ('Arek');...
CREATE TABLE Wlasciciel (Name nvarchar(32)); INSERT INTO Wlasciciel VALUES ('Arek');...
Natomiast jak miałbym Ci coś podpowiedzieć i chciałabyś coś bardziej "fancy' to prop...
CREATE TABLE Wlasciciel (Name nvarchar(32)); INSERT INTO Wlasciciel VALUES ('Arek');...
Dobra moi drodzy rozsiądźcie się wygodnie bo będzie jazda bez trzymanki. Kilka mc te...
W GetIt jest gotowy moduł do tego jakby coś
W GetIt jest gotowy moduł do tego jakby coś
AssignFile(We,Src,CP_UTF8); AssignFile(Wy,Dest,CP_UTF8);
AssignFile(We,Src,CP_UTF8); AssignFile(Wy,Dest,CP_UTF8);
Sorry ale takie kolory w konsoli wkurzałyby mnie