Najgorszy projekt w jakim pracowaliście

Najgorszy projekt w jakim pracowaliście
cpp_beginer
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 2 lata
  • Postów:105
0

Raz przyszło mi pracować w projekcie na szczęście krótko w którym:

  • nie było jakiejkolwiek architektury, każdy programista bym swoim własnym architektem
  • brak unit testów
  • coding standard był, ale mało kto przestrzegał
  • brak code review. Teoretycznie było, ale od razu się dawało Code review +1 bo nie było na to czasu
  • totalne spaghetti. część rzeczy napisana w C++03, część w C++11, inne w czystym C, pliki większe niż 10k linii

Wszystko spowodowane było tym, że było bardzo mało czasu i ludzi na stworzenie programu. Oczywiście nie wszystko było pisane od zera, dużo kody zostało zapożyczone z innych podobnych projektów.
Co najdziwniejsze, produkt finalnie działa całkiem znośnie, jak na totalny brak procesu, klient zadowolony(zagraniczny) a firma zarobiła bardzo dużo.

nowyworek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:świat
  • Postów:174
21

Brzmi jak kazdy inny projekt


Julian
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:5 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
4

Każdy projekt do 2016. W 2016 nastąpiła jakaś magiczna zmiana i ludzie zaczęli pisać testy i używać gita i czasem nawet review robić


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
cpp_beginer
W firmie w której pracujesz/pracowałeś, czy to było globalna zmiana :p ?
Satanistyczny Awatar
Chyba w ogłoszeniach o pracę
KamilAdam
@cpp_beginer: trzy pierwsze firmy w których pracowałem nie znały pojęcia testów innych niż manualne. Potem starałem się wybierać lepiej firmy
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
3
KamilAdam napisał(a):

nastąpiła jakaś magiczna zmiana i ludzie zaczęli pisać testy i używać gita i czasem nawet review robić

Magia kasy, to się w dłuższej perspektywie biznesowo opłaca.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:dzień
  • Postów:2792
1

Każdy projekt w AMBasic. Ależ to było g**no. Nawet Adabas był lepszy...
EDIT: Adabas +Natural.

edytowany 1x, ostatnio: Marcin.Miga
nowyworek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:świat
  • Postów:174
1

Dobra moga napisać. Był taki projekt i ktoś wpadł na genialny pomysł użyć Spring WebFlow.
Takiej kupy to żech jeszcze nie widziol co tedy


Julian
PA
Dobra moga napisać. - a co, już wypowiedzenie wysłane?
nowyworek
niyy. już dawno mineło. jak ktoś na jsfa narzeka,to tego jeszcze chyba nie widzial
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
6

Ze spedżetti czy brakiem testów to nie kłopot sobie poradzić, ale z szefostwem już gorzej, dlatego ja uznaję najgorszy projekt ten, w którym mój szefu postanowił że zacznie projektować architekturę do projektu. Nie będę mówił, że źle projektował bo było ok ale... Wszystko było by spoko gdyby projekt wcześniej nie został wyceniony na dużo prostszą architektur gdzie zrobienie prostego endpointa nie miało zajmować 8h z przejściem przez kilka nikomu nie potrzebnych warstw z wymogiem pisania testów do każdej warstwy. No i wszystko było by ponownie spoko gdyby szefu znał konsekwencje tego co robi a nie najpierw wymagał robienia kodu w wersji 3x dłuższej a potem się pytał "czemu o kilkaset h wyszło więcej niż było wycenione" wraz z groźbą potrącenia kasy za to wszystkim :D Tak to był moment gdy postanowiłem się zbierać z tego miejsca.


It's All About the Game.
DE
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 6 godzin
  • Postów:563
4

Takie rzeczy co niemieccy programiści PHP wymyślali to się fizjologom nie śniły. To nie jest temat do rozmowy przez internet i na trzeźwo.

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
1

Trochę tego było. Jeden z gorszych to był jak pracowałem w utrzymaniu projektu napisanego początkiem lat 90 poprzedniego stulecia dla elektrowni atomowej. Krążyła legenda, że pierwsi twórcy mieszkali w namiocie na terenie elektrowni jak go pisali. Potem jak urośli wysłali developmnet na Sri lankę to kod to był poklejony na sznurkach i gumie do żucia a do tego na to wszystko nakładanie były modyfikacje dla klienta. Po prostu poezja czasem człowiek ja debugował to się czuł, że to szambo go przykrywa. Do tego proces wdrożenia był mega zepsuty. Część logiki była napisana w PL/SQL front w takim nikomu nieznanym narzędziu, które potem sportowali do C# co skutkowało, że to był najgorszy kod w C# jaki widziałem. I tam jeszcze były kary umowne na poprawę błędów co powodowało, że poprawa bardzo często kończyła się odpaleniem jakiegoś skryptu co naprawiał skute, a nie przyczynę. Wytrzymałem tam 1.5 roku.

Zobacz pozostały 1 komentarz
UglyMan
To było wczasach kryzysu i nie było łatwo zmienić i moja ówczesna sytuacja życiowa tez nie sprzyjała zmianom. Poza tym ja zawsze najpierw próbuje coś zmienić, a potem dopiero się zawijam.
somekind
Próby zmiany jak się domyślam zostały całkowicie olane?
UglyMan
Aż mi się ciepło zrobiło.
PerlMonk
@UglyMan: Na nietrzymanie moczu są sposoby :]
UglyMan
To nie był mój mocz. Dowcip: Sika dwóch dżentelmenów. I jeden pyta - Dlaczego nie słychać jak sikasz? - Bo sikam po spodniach -A nie szkoda ci spodni? - Nie, bo nie sikam po swoich.
JS
JS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:63
5

Najgorsze projekty to były takie, jak rekrutowano mnie na programistę a potem kazano zajmować się czymś innym (kłamanie na rozmowie).

edytowany 2x, ostatnio: janek_sawicki
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:6 dni
  • Postów:3168
1

Ale najgorszy technicznie czy taki co mi sie najmniej podobal ?

Bo paradoksalnie, najgorsze technicznie legacy w jakim siedzialem (XSLT, wlasny system regulowy, bardzo skomplikowany proces budowania, praca bezposrednio z klientem ktory nie do konca wiedzial co chcial) bylo najlepszym projektem pod katem zespolu, ludzi i atmosfery.

IK
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 2 lata
2

Mieliśmy (ja + 3 juniorów) do naklepania coś jak google forms, ale z logiką - jak wybierzesz odpowiedź A to idź do pytania 3, jak wybierzesz B to idź do 4. Deadline - miesiąc. Nie wiem jakim cudem ktoś w ogóle przyjął taki projekt.

mar-ek1
Hmm, ale Google Forms ma dokładnie taką logikę dostępną więc w sumie to mieliście zrobić to samo co GF tylko żeby nie było przetestowanym narzędziem?
IK
Było tam jeszcze kilka smaczków (pewnie przy odrobinie kombinowania dałoby radę to ogarnąć w GF) no i klient koniecznie chciał "kastom soluszyn". Nie wiem jak to wyglądało od strony byznesu, ja tam tylko klepałem kod i słuchałem jak to budżet się kurczy ¯\_(ツ)_/¯
purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
3

O Panie. No to siadamy i nie tyle do samego projektu co do całości.

"Powazna" aplikacja do odpalania on-premise i cloud-native z racji specyfiki klientów docelowych. Jedni odpalą instancję na Azure, a inni w piwnicy na stacjonarce.

  • Firma trzepie buzzwordami na prawo i lewo: Docker, Kubernetes, Ansible, Terraform, Helm, Rancher, Redis, Istio, Kto da wincyj!
  • Serwery albo poważne albo laptop stojący w serwerowni
  • Zespół ułomnych programistów robiących projekt od startu opartą o mikroserwisy
  • Brak env w projekcie. Wszystko hardkodowane. Płacz przy każdej zmianie, że coś jest nie tak!
  • Polskie albo polsko-angielskie nazwymetod
  • Architekt od infrastruktury zjada każdego wiedzą, bo przeczytał ponad 100 książek i zna każde możliwe narzędzie (https://landscape.cncf.io/) - Jak wejdziesz w polemikę teoria vs. praktyka, architektowi odcina prąd i nagle ma coś pilnego do zrobienia.
  • Architekt: CentOSy! CentOSy! Wszystko robimy na CentOSach! Mów, że przygotujesz maszynę pod deployment, postaw CentOS, nie potraf otworzyć portu na Docker-Registry
  • Architekt: Zjedz na Linuxie zęby / twierdź, że drugi monitor podpięty Ci nie działa, bo to wina monitora / nie potraf zrobić fixa / pracuj na jednym.
  • Rozkminiaj czy wirtualka z dockerem obsłuży 200 osób - miej ambicje na obsłużenie 2 mln.
  • Notoryczny brak zasobów, problem z dokupieniem porządnego serwera > ktoś w firmie specyfikuje sobie jednorazowe laptopy 2 in 1 za 10k sztuka.
  • Zespół programistyczny na 2 tygodnie przed oddaniem aplikacji wymyśla sobie, że przebuduje jakieś 2 duże moduły (ale super!).
  • Chyba brak zbierania logów w aplikacji, bo za każdym razem gdy coś im nie działa to lecą z awanturą do adminów/devopsów, że to ich wina.
  • Brak kultury pracy: delegowanie tasków na gębę po czym przypieprzanie się, że coś jest zrobione (tak jak zostało zlecone) w taki, a nie inny sposób.
  • Programista wynajduje jedno narzędzie, rzuca temat do opsów żeby sprawdzili, bo może być fajne - jednocześnie sam nie wspomina o tym jaki jego problem to rozwiązuje i jaki jest cel sprawdzania narzędzia.
  • Mógłbym tak wymieniać pewnie drugie tyle ale już mam dośc.

PS. Co wygrałem?


BraVolt
Wygrana: Uścisk Dłoni Prezesa
PerlMonk
"Mógłbym tak wymieniać pewnie drugie tyle ale już mam dośc." - dawaj wszystko.
purrll
@PerlMonk: Byłoby już zbyt personalnie, a nie chce mi się już szarpać z ludźmi.
szarotka
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 2 miesiące
  • Postów:533
3

W firmie mieliśmy Lotus Notes, to taka gotowa platforma, którą można rozszerzać. System był personalizowany przez jednego programistę pracującego w firmie przez lata i zajmującego sie tylko tym. Pewnego dnia ów programista odszedł.

Dostałam na swojego kompa designera (takie oprogramowanie dedykowane do rozwijania platformy) i uprawnienia, żeby móc tam przeglądać kod i coś zmienić w razie potrzeby.

Poczynając od tego, że nie było żadnego środowiska testowego (lokalnego ani zdalnego), każda wprowadzona lokalnie zmiana była na produkcji. Nie było systemu zarządzania wersjami - żaden git, svn nic. Po prostu zapisujesz plik i nowa wersja śmiga na produkcji i już nie cofniesz do starej. Nazwy zmiennych, plików po polsku. Kod masakra. Przeglądam listę agentów (czyli scryptów js) żeby znaleźć odpowiednie powiadomienie mailowe a tam nazwy: powiadomienie1, powiadomienie2, ... powiadomienie21.
Było dużo więcej tego, ale chyba juz trochę wyparłam z pamięci tę traumę :)

nowyworek
czy to ss w katowicach?
szarotka
Generalnie to tam tylko ad hoc robiłam jak coś źle działało, ale to był mega bubel
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0

Mam podobny przykład jak @szarotka . Sam w sobie Notes działa znośnie (wcale nie dobrze, po prostu znośnie), ale z wieloma pisanymi na kolanie dodatkami zrobił się potworek. Dobrze, że jest w firmie ktoś, kto ma tajemną wiedzę jak to działa, bo sam parę razy mocno się zdziwiłem, że nie mogę od tak użyć jakiegoś pola.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Mjuzik
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Postów:710
0

Oprócz "standardowych" braków takich jakich code review, brak testów czy słaba komunikacja z biznesem to najgorzej jakościowo z kodem było:

  1. Modyfikacja skryptu do baselinkera:
  • wszystko funkcyjnie,
  • zmienne global,
  • same czyste SQL'e,
  • funkcje po kilkaset linii kodu,
  • ręcznie napisane funkcje json_decode i json_encode
  • konfiguracja wpisywana na sztywno w pliku

Jakimś cudem to działa i działa całkiem w porządku. Ale modyfikacja tego to jest koszmar. Gdyby ktoś był ciekaw jak wygląda taki plik integracyjny mogę podesłać na priv :)

  1. Modyfikacja wtyczki do revolution slider. Spaghetti w którym widziałem funkcje z 1000 liniami kodu.
Zobacz pozostałe 7 komentarzy
cerrato
No to w takim razie niezła archeologia :D
Mjuzik
@KamilAdam: Definicje nigdy nie były moją dobrą stroną :) Doczytałem i wydaje mi się że jest to programowanie strukturalne
nullpt4
@Mjuzik: też niekoniecznie, jeśli procedura ma więcej niż jeden punkt wyjścia, to nawet nie jest to programowanie strukturalne ... :D
KamilAdam
@Mjuzik: po prostu wielka kula błota ze zmiennymi globalnymi nie jest paradygmatem tylko antywzorcem więc nie nazywa się programowanie funkcyjne/strukturalne/wielkobłotne itd.
nullpt4
Najgorszy projekt w jakim pracowaliście -> wszystko funkcyjne :D
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
2
Mjuzik napisał(a):

Oprócz "standardowych" braków takich jakich code review, brak testów
Jakimś cudem to działa i działa całkiem w porządku. Ale modyfikacja tego to jest koszmar

Dlatego te wszystkie review tracenie cennych 30 minut na omówienie kodu, nikomu nie potrzebne testy dostają magicznej odmiany dopiero wtedy gdy projekt musi się zmieniać, ewoluować i dostosowywać do aktualnej sytuacji biznesu i rynku.
Projekty "raz postaw i działa" albo "całą kreację i serwisy za rok i tak zrobi inna agencja" nie potrzebują niczego takiego.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
Mjuzik
Zdanie "Oprócz "standardowych" braków takich jakich code review, brak testów" dotyczyło projektów, natomiast " Jakimś cudem to działa i działa całkiem w porządku. Ale modyfikacja tego to jest koszmar" dotyczy konkretnego feature'a, w którym pik integracyjny dostarcza Ci zewnętrzna firma :)
CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:około miesiąc
  • Postów:2284
1

Starszy projekt w C++:

  • polskie nazwy funkcji i zmiennych mieszane z angielskimi
  • pliki po około 15k linii
  • funkcje po 1k linii
  • mieszanka c++98 z c++11
  • winapi + bardzo stary COM
  • kod miał być portable więc w wielu miejscach są ifdefy i mieszanka linuxowo windowsowa
  • makra na każdym kroku
  • brak dokumentacji, komentarzy i wiedzy na temat produktu. Debugowanie żeby dodać jednego ifa nieraz zajmowało dużo czasu.
  • gdzieniegdzie globalne funkcje i globalne zmienne
edytowany 2x, ostatnio: Czitels
purrll
Hmm. Brzmi jak po prostu projekt w C++. Chyba, że moja wiedza odnośnie samych projektów utknęła gdzieś w C++98.
Marcin.Miga
Ech, tak narzekacie na mieszanie nazw ENG i POL... Spójrz tu: https://pomoc.sage.com.pl/Help/ambasic/-/100/27728 "Już ponad 3 miliony firm na całym świecie korzysta z rozwiązań Sage." :)
CZ
AmortyzacjaWykonanaSrodka xD
SH
@purrll: To ja chyba miałem jakiś ultra fart bo moje pierwsze projekty nie miały tych problemów(oczywiście nie były doskonałe).
azalut
  • Rejestracja:około 12 lat
  • Ostatnio:ponad rok
  • Postów:1129
5

:( strasznie chce sie w tym wątku wypowiedzieć, ale nie wiem czy chce sobie to przypominać...

edytowany 1x, ostatnio: azalut
Zobacz pozostały 1 komentarz
azalut
chciałbym żeby to było coś ze świata Javy.. :P
CZ
no dawaj, fajnie będzie :P
PerlMonk
Od C# też bym miał Traumę.
azalut
@PerlMonk no właśnie..
wiciu
Wg mnie, świecie javy trzeba się trochę bardziej postarać, żeby stworzyć gniota chyba, że projekt był tworzony 10 lat temu i się nie zmienił za bardzo od tamtego czasu albo piszą go nowicjusze.
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
0

Jak tak czytam te projekty to sobie myślę... kiedy weszła bankowość elektroniczna? Jaka była szansa na jakieś bugi? :D

superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:4 dni
  • Lokalizacja:Kraków
  • Postów:1999
4

Po najgorszym projekcie w jakim byłem do dziś mam traumę, i to nie ze względu na nie wiem, brak testów albo problemy z zespołem. Akurat zgrany zespół to była jedna z niewielu pozytywnych rzeczy w tym projekcie

  • dosłowny CRUD na kilkanaście tabelek, dodaj usuń wyszukaj i do przodu - to jeszcze byłoby do przeżycia, w końcu projekt jak prawie wszystkie
  • projekt to był rewrite dymiącej kupy napisanej w Perlu na JVM (z wieloma błędami, niezrozumiale, bez kontroli wersji, z kodem deployowanym ad-hoc w różnorakim stanie, przekazywanym z rąk do rąk w ZIP, filtrowanie gigabajtów!! danych na froncie) - samo ustalenie co właściwie próbujemy odtworzyć było problematyczne
  • nawet nie to, że baza CRUDa była współdzielona z innymi. Celem CRUDa było dosłownie pożenienie (i konfiguracja tego "żenienia") dwóch krów third-party przez wspólną bazę.
  • nad projektem czuwał wielki pan i władca z USA
  • pan i władca miał problemy z napisaniem zrozumiałego emaila, generalnie dawał takie popisy słowotwórstwa i niedbałej pisowni że zarówno Polacy, jak i inni Amerykanie mieli czasami spory problem z rozgryzieniem, o co mu chodzi
  • jednocześnie trudno byłoby uświadczyć 3 maile z rzędu bez albo nawrzucania komuś, albo traktowania polskich wyrobników i roboli z góry, albo wykłócania się że przecież tysiąc razy tłumaczył nam i Amerykanom coś w mailach (choć w mailach nie było absolutnie nic na dany temat)
  • mając na uwadze powyższe wyciągnięcie jakichkolwiek dokumentacji, informacji "co, jak, dlaczego" wymagało nie lada cierpliwości, gimnastyki, strzelania emailami z karabinu i dodawania pół departamentu do CC, żeby tabun managerów dyszał mu w kark swoją wirtualną obecnością
  • jak już udawało się ustalić "co, jak, dlaczego" przeważnie okazywało się, że ktoś zabrał się do sprawy od d**y strony
  • wszelkie próby usprawnień, poprawek etc. były torpedowane argumentami w stylu "bo tak", "bo ja tak mówię", "macie robić po mojemu"...

somekind
dymiącej kupy napisanej w Perlu - wystarczy napisać "w Perlu", reszta jest oczywista.
superdurszlak
są różne poziomy kupy w Perlu, to było przynajmniej o krąg piekielny niżej od standardowej
E9
  • Rejestracja:ponad 8 lat
  • Ostatnio:dzień
  • Postów:216
5

Jeden projekt trafił do mojej dawnej firmy chyba tylko dlatego, że Panowie od sprzedaży zaproponowali klientowi śmiesznie niską cene i nierealny termin. Oczywiscie odbiło się to na kilku zespołach developerow na przestrzeni kolejnych lat. Nie chodzi mi o to, że jednocześnie pracowało nad projektem kilka zespołów, ten projekt spowodował, że kolejni ludzie po prostu uciekali z firmy, gdy ja do niego trafiłem to nie było w nim już nikogo kto przy nim pracował na początku.

No a co sprawiło, że był to według mnie najgorszy projekt?

  • Backend napisany w typowej architekturze controller/service/repository. Projekt był jednak na tyle duży, że po otwarciu paczki serwis naszym oczom ukazywało się ponad 30 różnych klas. Oczywiście wszystko rozmawiało ze wszystkim, serwisy miały po 15+ zależności, spaghetti w najlepszej formie.
  • Same serwisy miały zawierać konkretną logikę biznesową, trzymano się tego tak sztywno że nie było nawet klas pomocniczych, po prostu cała logika serwisu w jednym pliku, często po 1k+ linii.
  • Testy były, coverage minimum 80%... ale niestety 90% kodu testowego to były mocki. Raz zakomentowałem logikę w kilku metodach jednego serwisu - wszystkie testy nadal zielone ;)
  • No i frontend... mimo tak rozbudowanego backendu, lwia część logiki była sprawdzana na frontendzie. Backend tak naprawdę wystawiał usługi getAll() i updateAll(), których model to było WSZYSTKO. Ponad 80 tabelek na bazie danych zawartych w jednym DTO, który byl ładowany to Reduxa. Następnie ten model był dzielony między kilka ekranów użytkownika. Zmiana wartości na jednym dropdownie, powodowała odpalenie kilkudziesięciu reguł biznesowych, ktore również mogły zmienić inne wartości. Zmiana tych innych wartości triggerowała kolejne reguły, często więc aplikacja wpadała w infinite loop. Dodatkowo, część komponentów działała na lokalnej kopii modelu, czyli zdarzało się że po zmianie tej wartości na dropdownie i przeliczeniu 100 różnych reguł i przeliczeniu 10 innych wartości, tylko ostatnia z nich została zapisana w store, bo komponent za nią odpowiedzialny pracował na starszej wersji zmian... ciężko to mi nawet wytłumaczyć, do tej pory nikt chyba do końca nie wie co się działo wewnatrz tego systemu, ale sam fakt że zaczęto stosować timeouty, żeby to jakoś skleić, mówi chyba za siebie.
  • Z powodu powyższego, zmiana na ekranie Z mogła całkowicie zepsuć ekran A. Ale nie zawsze, czasami timeout zadziałał jak powinien, czasami nie ;) Żadnych testow na froncie też nie było tak więc jedyna opcja by przetestować jednego małego ifa dodanego na ekranie Z, to było dokładne przeklikanie całej aplikacji kilkukrotnie, co zajmowało ponad pół dnia.
  • Mimo wszystko, kolejne feature'y były sprzedawane jak wcześniej. W efekcie cały zespół musiał siedzieć przez dwa tygodnie przed releasem do 19:00 - 20:00, rekord to było jakoś 01:00 ;) ostateczna paczka była zazwyczaj gotowa na godzinę przed ostatecznym deadline. Następnie startował kolejny stage, którego jednak nikt nie miał czasu ruszyć przez tydzień bo spływały błędy od klienta z poprzedniego release, a naprawa jednego błędu == zrobienie przypadkiem dwóch kolejnych.

Wytrzymałem jakieś trzy miesiące.

BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
1
Emdzej93 napisał(a):

Jeden projekt trafił do mojej dawnej firmy chyba tylko dlatego, że Panowie od sprzedaży zaproponowali klientowi śmiesznie niską cene i nierealny termin.
kolejne feature'y były sprzedawane jak wcześniej. W efekcie cały zespół musiał siedzieć przez dwa tygodnie przed releasem do 19:00 - 20:00, rekord to było jakoś 01:00 ;) ostateczna paczka była zazwyczaj gotowa na godzinę przed ostatecznym deadline. Następnie startował kolejny stage, którego jednak nikt nie miał czasu ruszyć przez tydzień bo spływały błędy od klienta z poprzedniego release

To nie projekt był 'do zadka' ale janszerka rządziła w firmie.
Regularne niewyrabianie z czasem i solidne nadgodziny w normalnej firmie oznaczałoby zatrudnienie dodatkowych ludzi.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
E9
W sumie tak, Janusz biznesu był gotów zrobić wszystko by dostac duży projekt, za każdą cene. W efekcie stracił pracowników, zaufanie w oczach klienta, zarobił pewnie grosze, bo nadgodziny oczywiście były płatne ekstra, a projekt był sprzedany za fixed price. No ale nie zmienia to faktu, że przez to ten projekt był najgorszy w mojej karierze.
bkHVYR
  • Rejestracja:ponad 7 lat
  • Ostatnio:około rok
  • Postów:25
3
Emdzej93 napisał(a):
  • Mimo wszystko, kolejne feature'y były sprzedawane jak wcześniej. W efekcie cały zespół musiał siedzieć przez dwa tygodnie przed releasem do 19:00 - 20:00, rekord to było jakoś 01:00 ;) ostateczna paczka była zazwyczaj gotowa na godzinę przed ostatecznym deadline.

Abstrachując od tematu wątku, to ja nigdy nie zrozumiem jak można się dawać tak wykorzystywać. U mnie na umowie jak byk widnieje że mam pracować tyle a tyle godzin dziennie, a że nie jestem akcjonariuszem firmy / klientem a od powodzenia projektu nie zależy życie moich dzieci, to po prostu sumiennie wykonuję swoją pracę 8h i wychodzę do domu nie spoglądając za siebie, niezależnie co się tam dzieje.

edytowany 2x, ostatnio: bkHVYR
wiciu
No i o to chodzi. Czasem można posiedzieć 1h czy 2h dłużej, jak rzeczywiście jest jakieś ciśnienie, ale przy założeniu, że taka sytuacja występuje max 1 lub 2 razy na rok i potem z tego tytułu można kolejnego dnia przyjść później lub wyjść wcześniej. Nie wyobrażam sobie siedzenia od rana do 20 albo 01 dlatego, że jakaś paczka się buduje. To jakiś absurd xD. Niektórzy powinni sobie uzmysłowić, że siedząc dłużej i robiąc darmowe nadgodziny koszt ich pracy spada, bo pracują więcej i zarabiają tyle samo.
DO
Chyba czegoś nie doczytałem. Gdzie on napisał, że te nadgodziny były w ramach darmowego wolantariatu? Ja zawsze chętnie zostaję na nadgodziny jak tylko mogę. Na koniec miesiąca ocieram łzy papierowymi polskimi pesos.
wiciu
Nie napisał, że darmowe. Nie napisał też, że płatne. Są różne umowy. Ponadto, nawet w przypadku płatnych nadgodzin, nie zawsze jest to tego warte. Czasem lepiej jest mieć więcej czasu i zdrowia. Co Ci po tych pieniądzach, jak cały dzień jesteś przyspawany do biurka?
E9
Nadgodziny były płatne 150%, tak więc nie było tragedii. Dodatkowo, akurat zbliżały się rozmowy o podwyżkach tak więc była jakaś motywacja by jednak zostać i skończyć ten projekt. Jak po rozmowach się okazało, że w sumie to nasza (developerów) wina, że projekt wygląda tak a nie inaczej to w ciągu dwoch kolejnych miesięcy cały zespół rzucił wypowiedzenia. Z perspektywy czasu widzę, że faktycznie głupotą było siedzieć tyle w pracy, zastrzyk gotówki się przydał, ale na następny raz już mam nauczkę by być bardziej asertywnym.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)