Je tohle v SW firmě normální?

Just another Udrzbar

Re:Je tohle v SW firmě normální?
« Odpověď #15 kdy: 06. 11. 2015, 20:41:08 »
10 let a ještě k tomu Java?!? Jsem zvědav, co budeš psát, až dostaneš něco ze sedmdesátých let :-)

Ani s jinýma jazykama si moc nepomůžeš, zmiňovaný C# je reálně jen o pár let mladší než Java (s ohledem, kdy se skutečně začala Java používat), navíc je splácaný tak, že co bylo ve verzi 1, je dneska dávno deprecated. Ani s "moderníma" jazykama to není žádná výhra neboť vše je otázkou kompromisů a nový jazyk je dobrý tak pět let. Hezké jsou různé více akademické jazyky, ale uplatnění je malé. V Javě máš navíc výhodu, že i do takhle staré aplikace (upgrade aspoň na 1.6 by to chtělo) můžeš zakomponovat moderní framework a snadno inovovat, což je dobré jako pro aplikaci, tak pro tebe.

Nefňukej  ;D

http://web.mit.edu/humor/Computers/real.programmers

When I got out of school, I thought I was the best programmer in the world.  I
could write an unbeatable tic-tac-toe program, use five different computer
languages, and create 1000-line prograns that WORKED. (Really!)  Then I
got out into the Real World.  My first task in the Real World was to read
and understand a 2O0,OO0-line FORTRAN program, then speed it up by a
factor of two.

Tohle tesat do kamene. Teď mám aplikaci z 90. let, kde se mezitím prostřídaly (jen) 3 obskurní technologie, dnes je to z větší části Java, cca 2 miliony řádků. K tomu integrační framework pro parallelní processing, asynchronní framework pro síťovou komunikaci a další technologie, které ten project dělají zajímavým. Minulý týden jsou zdvojnásobil code coverage z 0.001% na 0.002%. Předtím to byl project 1.5 milionů řádků jenom client-side, bloatware plný znovuvynalézání kola, jen 10-15 let starý.

V tom citovaném odstavci to není napsané, ale v zásadě stáří ten project dělá zajímavým. Je hezké začínat něco from scratch, ale po dvou či třech takových projektech se člověk cítí jako dělník u pásů, protože ten výsledek je podobný jako vejce vejci. Spousta lidí sice bude tvrdit, že příště to udělají líp, ale ve skutečnosti ta kvalita návrhů zůstává stejná. Ty zajímavé části se implementují až když se ten project nějakou dobu používá, rožšiřuje, má zlepšit performance, spolehlivost, atd.


Re:Je tohle v SW firmě normální?
« Odpověď #16 kdy: 06. 11. 2015, 20:51:45 »
.net nebo java to je v celku jedno, v .net můžeš vyfasovat třeba nějakou srandu v radstudiu a si na tom stejně. Ale abych i něco poradil:
 - To jestli něco přepsat nebo ne se řídí penězi kolik se ušetří vs kolik bude stát přepis, akorát si to musíš umět obhájit
 - Když už ne přepsat, tak si to zkus vylepšit aspoň částečně, přepsat ten nejhorší marast
 - A hlavně to mít u ( ).( ), Jinak zšedivíš, vyplešatíš, chytneš tik do oka a budeš žrát prášky na tlak. Taky mě dřív štvalo že co trvá když hodně možná 2, 3 minuty u jiných jazyků, u .net ty **** celý ***** deň ale co zaplacené to dostanu

Lucas

Re:Je tohle v SW firmě normální?
« Odpověď #17 kdy: 06. 11. 2015, 21:03:18 »
Ano, je to naprosto normální. Už jsem se musel vrtat v takových hovnech(s prominutím), že se mi o tom dřív ani nesnilo. Kdysi jsem se to vždycky pokoušel aspoň nějak zkultivovat, ale časem člověk stejně dospěje k poznání, že nějaká krása kódu je zadavatelům naprosto ukradená(je zajímá jedině to, za jakou dobu dokážeš aplikovat požadované úpravy) a že když nepromarníš půlku času refaktoringem cizího kódu, tak si můžeš vydělat 2x tolik. Vlastní kódy piš s nejlepším vědomím a svědomím a na zvelebování cizích neplatných pokusů se vykašli, pokud tě za to vyloženě někdo neplatí.

TVL

Re:Je tohle v SW firmě normální?
« Odpověď #18 kdy: 06. 11. 2015, 21:53:51 »
Není to normální, že to tak mají úplně všude. Ale je to normální v tom smyslu, že v mnohých firmách se s tím setkáš.
Moje hlavní rada je - nedej na rady místních chytrolínů a nic nerefaktoruj! Tedy ne, pokud k tomu nedostaneš přímý pokyn.
Ten starý kód je možná šílený - ale nějak funguje. A správně jsi podotkl - není k tomu dost dokumentace, aby se vědělo, jak to má přesně fungovat. I když ten kód funguje třeba špatně, tak rozhodně tvoje předělávka nebude fungovat lépe, pokud nespotřebuješ spoustu zdrojů jak na straně tvé firmy (kromě své práce i práce starších kolegů), tak na straně zákazníka (definování co a jak má fungovat). A pokud to je reálná aplikace, tak se bude muset před uvolněním nové verze spustit baterie testů ke které budeš potřebovat hodně zdrojů na straně adminů (nejspíš vašich i zákaznických). A stejně se 100x dostaneš do situace, že nějakou konstrukci nepochopíš, co má jako řešit - a pak zjistíš, že to byl neobratný bugfix na nějakou chybu. A je málo věcí, které zákazníka naštve více, než když se do SW vrátí chyba, která se už jednou opravila.

Tohle je úkol pro vedení vaší firmy, aby rozhodlo, co s tím chce dělat a na co chtějí alokovat zdroje. Nechat něco hnít, ti může znít jako proti programátorskému pánubohu, ale i to je reálné ekonomické rozhodnutí.
Pokud jsi ještě nemluvil se svými šéfy o jejich záměrech s daným kódem, tak to udělej. Pokud se ti ty záměry nelíbí - nebo se ti celkově nelíbí, co tam děláš, tak dej výpověď. Ne všude se píše nový krásný kód na základě kvalitní analýzy, ale máš dobrou šanci, že jinde budeš oprašovat aspoň něco novějšího. A do příště už budeš vědět na co se ptát u pohovoru - a nebudeš tam řešit stravenky a teambuildingy :-)

asdfasdf

Re:Je tohle v SW firmě normální?
« Odpověď #19 kdy: 06. 11. 2015, 22:28:22 »
Změna architektury nepřinese méně chyb, ale pouze nové chyby. Bude se to lépe udržovat vám, protože to budete znát.
Prinesie menej chyb a aj lahsiu udrzbu, ked sa to spravi rozumne a nebude to len prepis aby sa nieco robilo. Napriklad nedavno som upravoval jednu cast mojho programu, rozdelil som jeden modul a jeho cast som nahradil kniznicou, ktora este neexistovala v case vzniku kodu.

Kolko bugov asi obsahuje kniznica, ktoru pouzivaju miliony ludi na vsetky mozne ucely a kolko ich obsahuje custom-coded sucast programu, po ktoru sa dostane radovo menej ludi?


Zdenek Henek nereg

Re:Je tohle v SW firmě normální?
« Odpověď #20 kdy: 07. 11. 2015, 11:29:25 »
Lidi, potřebuju píchnout. Je to normální dělat povětšinu času v práci údržbáře docela dost starého (přes 10 let) databázového sw napsaného v Javě 1.4, pro který: mám strašně blbě a nejasně napsané zadání a co je horší, je to tak staré, že se to nedá ani debugovat, problematicky se to spouští (takže píšu kód naslepo) a vývojový nástroj mi ustavičně padá? Ke kódu navíc není dokumentace a komentáře kódu se vyskytují velice sporadicky. Ptal jsem se kolegy, co už je tam delší dobu, a vypadá to, že je to podobné i u dalších projektů. Je to běžný stav vyskytující se u českých firem, co se zabývají tvorbou rozsáhlých IS už řadu let?

Zkušenější kolegové samozřejmě poradí, domluvit se dá, jen jsem prostě čekal něco jiného. Že si budu pěkně psát v NetBeans, používat nové nástroje a technologie, dostanu za úkol něco vyvinout, pěkně si to budu debuggovat atd. Jinak je to v pohodě, Jen jsem z toho docela v šoku. Pochopil bych, když tam nějaký zkušenější na tomhle dělá, protože je to prostě třeba, ale že to dají za úkol nováčkovi? Vypovídá to něco? Protože když se nad tím zamyslím, tak nováčka nechám snad pracovat na nějakém normálním projektu, ne? Mám z toho obavy, že to lepší nebude.

Osobne bych se spis nez jestli je to java 1.4 nebo 8 zameroval na to jestli aplikacni domena na ktere delas je pro Tebe zajimava, jestli mate v praci tym, kde muzes rust a kdyz dojdes s napadem, tak to okamzite nesmete "architekt" ze stolu a kdyz to smete, tak Ti to vysvetli. Pokud je toto splneno == muzes rust tak ze Te nekdo uci, nebo dostavas prostor pro vlastni iniciativu a ta je vyuzivana, tak opravdu verze javy neni zas to nejdulezitejsi pod sluncem. Pokud to tak neni, tak nezoufej a nedavej vypoved. Pockej rok nebo i dva behem te doby se snaz neco menit. Pokud i po roce a pul to nebude nikoho zajimat a opravdu nezapadnes, tak zacni hledat neco jineho. Takto bych postupoval ja.

Predpokladam, ze to na co nadavas je Oracle ADF framework.
Na novy upgradovat nemuzete pravdepodobne kvuli licencni politice, ktera se zmenila. Na druhou stranu Te to uchrani od novejsich verzi JDeveloperu, ktery byl schopny mazat zdrojove soubory :), ted uz se to snad zlepsi kdyz JDeveloper zacina byt vic a vic Netbeans, ale nevim, moc to uz nepouzivam.

A kdyz se clovek podiva na UI ADF frameworku nebo treba na Application Express v Oracle databazi (11g), tak to sice nema hromadu novinek, ale pro uzivatele je to docela prijemne na pouzivani. Timto ADF neobhajuju, jen se snazim odhadnout, proc to co je pod tim nikoho moc nezajima :).

V soucasne praci jsem zastance u naseho frameworku drzet nejstarsi moznou verzi javy (v soucasne dobe java 6, ale dlouho to byla 1.4 ) runtime samozrejme i ten nejnovejsi. Duvodem je, ze se jedna o framework a snazime se mit co nejmene pozadavku na aplikaci se kterou bysme se meli integrovat. Ve chvili kdyz se potka integrator, dodavatel soucasne aplikace, nove casti aplikace a jako ctvrty do ringu nas framework, tak se nemusime ucastnit debat jestli Spring 1.0 nebo uz 2.0 a podobne ale nadruhou stranu nam nedela problem i nejnovejsi Weblogic a Oracle 12c database.

V dalsi nasi aplikaci, kterou si provozujeme sami v mracku jedeme na java 8 (zatim se spetnou kompatibilitou s java 7) snazime se o co nejvetsi pokryti unit testy, buildujeme gradlem, puzivame git, sonarem hlidame kvalitu kodu a na code review (dobrovolna na pozadani vyvojare) pouzivame upsource, ale opet neujizdime na technologiich abysme nedopadli jak pejsek a kocicka ...
Rikame tomu C4BS(Code for better sleep), protoze nejdulezitejsi je pro nas uptime a vetsina z nas je jednou za dva mesice tyden na 24x7 supportu ...

Zelenáč

Re:Je tohle v SW firmě normální?
« Odpověď #21 kdy: 07. 11. 2015, 11:30:47 »
A jaký je běžný úzus ve firmě, když má programátor za úkol něco dokončit - je to klasická věc, že kvůli toho musí být v práci i přesčas, který ale není placený, přičemž si to pak může vybrat jako náhradní volno?

A když mají některé firmy napsáno v pracovní nabídce "týden dovolené navíc" (takže celkem 5 týdnů), bývá v tom nějaký háček? Protože personalistka u nás ve firmě tvrdila (při seznamování s firmou), že přesčasy nejsou proplácené, můžou se ale vybrat jako náhradní volno a že ji to příjde osobně lepší, než u některých firem "týden dovolené navíc". Což jsem teda nepochopil v čem :-)

Radovan.

Re:Je tohle v SW firmě normální?
« Odpověď #22 kdy: 07. 11. 2015, 11:33:35 »
Je to normální dělat povětšinu času v práci údržbáře docela dost starého (přes 10 let) databázového sw napsaného v Javě 1.4...
Ano, je. Zelenáče k opravdu důležitému softu v COBOLu nikdo nepustí ;D

Zdenek Henek nereg

Re:Je tohle v SW firmě normální?
« Odpověď #23 kdy: 07. 11. 2015, 11:59:27 »
A jaký je běžný úzus ve firmě, když má programátor za úkol něco dokončit - je to klasická věc, že kvůli toho musí být v práci i přesčas, který ale není placený, přičemž si to pak může vybrat jako náhradní volno?

A když mají některé firmy napsáno v pracovní nabídce "týden dovolené navíc" (takže celkem 5 týdnů), bývá v tom nějaký háček? Protože personalistka u nás ve firmě tvrdila (při seznamování s firmou), že přesčasy nejsou proplácené, můžou se ale vybrat jako náhradní volno a že ji to příjde osobně lepší, než u některých firem "týden dovolené navíc". Což jsem teda nepochopil v čem :-)

2 * 7 hodin je  podle me vic nez 20 hodin v tahu, ale zalezi na Tobe ne na pani z personalniho nebo na tom, co si myslim ja.

Firmy vetsinou muzes rozdelit (nebo jejich oddeleni) na produktove a projektove. V produktovych neni az takovy tlak na dokoncovani na minutu presne, ale zase tam jsou "starsi" technologie, protoze se nebude riskovat pouziti nevhodne technlogie, na ktere pak musi stavet projekty zakaznici, nebo kolegove v projektovych tymech.

Zalezi co Ti vyhovuje a jak jsi na tom s rodinou na cem delat.

ehmmm

Re:Je tohle v SW firmě normální?
« Odpověď #24 kdy: 07. 11. 2015, 16:36:12 »
Co se tyka toho stareho SW, tak kamarad rika, ze "kazdy pracuje do vyse sveho platu". Pokud za to mas prijatelne penize a vylozene se ti to nehnusi, tak to delej. Pokud se ti to hnusi, nebo to je za malo penez, tak si najdi jinou praci.

Psani kodu naslepo bez rozumne moznosti debugovani je neprijemne, ale stava se to.

Jinak koukat do stareho SW muze byt nekdy docela inspirativni. A nekdy naopak k pozvraceni.

Takovychle, co chteli programovat neco noveho moderniho jsem par potkal. Ale chlapci mivali problem s tim, aby to bylo pouzitelne a fungovalo to. Radsi mam ty praktictejsi, kteri jsou tak nejak smireni s osudem, pracujou a funguje to.

Personalistka tam je od toho, aby ti vysvetlila, ze tak, jak to je ted, to je v poradku. Jinak samozrejme je lepsi tyden dovolene, protoze za ten dostanes penize a pritom nemusis pracovat. Zatimco tyden nahradniho volna je tyden, ktery jsi uz odpracoval, akorat mimo beznou pracovni dobu.

Ivan Nový

Re:Je tohle v SW firmě normální?
« Odpověď #25 kdy: 07. 11. 2015, 19:14:06 »
A jaký je běžný úzus ve firmě, když má programátor za úkol něco dokončit - je to klasická věc, že kvůli toho musí být v práci i přesčas, který ale není placený, přičemž si to pak může vybrat jako náhradní volno?
jj
Programátor, který chce chodit domů, snad není ani programátor :-)))

Ivan

Re:Je tohle v SW firmě normální?
« Odpověď #26 kdy: 08. 11. 2015, 12:21:15 »
Tohle je vice-mene normalni. Uvedom si, ze programator je vlastne delnicka profese. Tvoje pohodli nikoho nezajima. A vlastne nikoho nezjima ani efektivita tvoji prace, protoze jako clovek z vychodni evropy jses uz tak dost levnej. Kvalita SW se meri tim, jaky uzitek prinasi a ne tim jak to vypada pod povrchem. PS: existuji firmy, ktere dokazi ocenit(financne), ze se clovek nekde "zahrabe", a dela nezajimavou praci.

anonym128

Re:Je tohle v SW firmě normální?
« Odpověď #27 kdy: 08. 11. 2015, 18:16:21 »
Je to bohuzel normalni.

Pred delsi dobou jsem nastoupil na jeden projekt. Neveril jsem, jak a co se da vyvijet a to jsem si myslel, ze jsem neco uz za svoji praxi videl.

Tak to trosku sectu:

Dokumentace nejaka je. Dokumentace procesu velmi dobra. Komentare v kodu nic moc.
Zadne unit-testy - vsechno se ladi pres main(). Pocet radku kodu ve vetsich statisicich.
Zadne moduly. Jenom jeden velky projekt a 5 minimodulu.

Dany SW = monstrum funguje. V tomto respekt. Nejvetsi sranda je, ze to je bankovni zahranicni soft. Nechapu, ze lidi jeste neplati zlatem/stribrem a ze pouzivaji jeste nejake elektronicke penize.

Bohuzel jsem zjistil jednu kuriozitu. Kdyz uz jsem potkal par firem, ktere byly technologicky na vysi, dobre se pracovalo, tak z Vas vetsinou sedrou kuzi
a po par letech odchazite odstaveny a hlavni je dochazka. Finance tedy nic moc. Pokud ale delate neco, co je silene, jak popisujete, tak financne jste za vodou a maka se relativne v klidu s tim, ze vysledky tedy musi byt.

Reseni je tedy najit si nejaky optimalni mix a ptat se na to u pohovoru, jak to jiz nekdo tvrdil. I kdyz to se taky nedovite hned, co budete delat a jak co vypada.
Anebo jit delat sam na svem = vyvijet vlastni soft, ale to je jeste vetsi rasovina.

Moc neverim tomu, ze se da dany projekt zmenit a prepsat. Na to vetsinou neni "love" nebo ho nechce nikdo zbytecne davat. Ale par veci se Vam povede treba zavest. Urcite bych se podival na google, jak "resit" projekty s milionem/statisici radky zdrojoveho kodu a co to obnasi.

Yarda

Re:Je tohle v SW firmě normální?
« Odpověď #28 kdy: 08. 11. 2015, 21:24:58 »
Zlaté pravidlo umění a vědy:
Kdo má zlato, určuje pravidla.

Zelenáč

Re:Je tohle v SW firmě normální?
« Odpověď #29 kdy: 09. 11. 2015, 21:05:20 »
Díky všem za hodnotné odpovědi.

Ještě bych se chtěl zeptat, na .NET a Java platformu v praxi, protože teď můžu dělat alespoň trochu srovnání. Příjde mi, že v Javě - a je nutno brát v potaz že se jedná o starý, leč myslím vcelku dobře udělaný projekt (jak už jsem řekl, vzniklo to někdy v roce 2004) - se to dělá všechno dost složitěji než v .NETech. Mluvím teď o tří-vrstvé architektuře, už jsem se s ní v .NET setkal u školního projektu. Tj. DB, funkcionální vrstva, a klient k ní připojený přes WCF. V .NET ve Visual Studiu si můžu naráz pracovat na klientské i funkcionální části, zkompilovat si to a kdykoliv spustit - to nepočítám třeba Team Viewer přímo v IDE, ale ten bych oželel. Ale teď s Javou a JDeveloperu (který furt padá, nefunguje mi v něm kurzor a další vymoženosti) je to podstatně náročnější: musím zkompilovat klienta i funkcionální část, potom obojí musím přehrát přes WinSCP na server, restartovat Apache Tomcat a pak teprve si to můžu spustit. Pokud jsem se někde v kódu překlepl, můžu si to dát celé znovu. A to není všechno, oproti ASP.NET je dost komplikovaně řešeno třeba generování dokumentu s fakturami - v ASP.NET si takovéhle věci můžu krásně udělat třeba přes GridView, ale místo toho to musím řešit přes XSL soubory.

V novějších nástrojích okolo Javy jsem nikdy nědělal, je tam v nich nějaký pokrok nebo je to vesměs to samé?