Visualizzazione post con etichetta cattiva programmazione. Mostra tutti i post
Visualizzazione post con etichetta cattiva programmazione. Mostra tutti i post

martedì 1 dicembre 2020

Blast from the past

Mi e' venuta in mente una vecchia esperienza che risale al lontano 2013...

Avevo trovato lavoro per questa azienda il cui prodotto di punta risaliva agli anni 80 (ma forse anche prima).
Un accrocchione multilinguaggio (tra cui cobol e si mormorava pure Pascal) per la gestione di libri (chi e' stato negli anni 90 in un qualsiasi negozio di libri un po' grosso, si ricordera' i terminali in cui l'operatore "operava" da riga di comando, ecco una roba cosi').

Vennero (e passarono) gli anni 90, vennero gli anni 2000 e i nostri eroi si resero conto che esisteva una cosa "magica" chiamata internet, e che sarebbe stato positivo se il loro sw avesse potuto interagire con esso.

Il che non sarebbe male, se avesse comportato una riscrittura del sw su un linguaggio piu' moderno (e possibilmente anche con concetti piu' moderni).
Invece l'ideona fu di lasciar girare il sw su un "server" e di creare pagine html statiche e agganciare i due con una pletora di batch (come se ci fosse qualcuno seduto alla tastiera). Sorvoliamo su quanto fosse "veloce" questa cosa, inoltre questa configurazione rendeva tutto l'ambiente non aggiornabile.

Che ruolo avevo io in tutto questo? Io avrei dovuto proseguire lo sviluppo di una gallery multimediale in java.
Questa gallery era in ritardo di due anni dalla data prevista, il precedente programmatore (quello che per tutto questo tempo non aveva fatto un emerito), sarebbe andato via 10gg dopo il mio arrivo, e ovviamente non si e' degnato di spiegarmi alcunche'.
Fortunatamente abbandonava lo sviluppo sw per dedicarsi all'attivita' vinicola, almeno li' i ritardi giovano al prodotto.
Inoltre gia' sapevamo che la versione 2.0 di questa gallery sarebbe stato un prodotto open-source (ma allora perche' non passare direttamente alla versione 2 visto che siamo in ritardo clamoroso? Ma da questo orecchio il management non ci sentiva).
Pressioni tutti i giorni perche' il cliente era arrabbiato per il "nostro" ritardo (ue ma farlo presente al genio mio predecessore no? Inoltre se proprio hai furia passiamo alla 2 che si fa sicuramente prima).

Ma la goccia che ha fatto traboccare il vaso e' stato quando ho saputo che pagavano solo me tra tutti i dipendenti perche' ero l'unico in prova. Non ho fatto finire il periodo suddetto e me ne sono scappato a gambe levate...

venerdì 4 ottobre 2019

Hard lesson

Allora quando entrai in $POSTO nel lontano 2015 avevano un applicativo J2EE sviluppato per Java 1.6 (rilasciata intorno al 2005) e Jboss 5 (c.ca 2007). Erano gia' all'epoca versioni "diversamente nuove". Oltretutto che java 1.6 e' afflitta da vulnerabilita' parecchio pesanti.

Il mio senso del dovere ha fatto si' che ho iniziato molto presto a fare presente i problemi derivanti da usare roba EOL (quindi non aggiornata ne' aggiornabile) e affinche' si prendesse in considerazione uno svecchiamento. Svecchiamento che consiste in una riscrittura. Perche' se cambi java devi cambiare jboss (non e' certificato). Se cambi jboss devi cambiare struttura al progetto (perche' i wildfly adottano un'architettura modulare) e devi cambiare jsf perche' wildlfy vuole jsf2.

Di conseguenza piu' che un porting e' una riscrittura. Riscrittura che molto pazientemente ho portato avanti in maniera praticamente "carbonara". Senza nessun appoggio di nessuno perche' nessuno ne vede(va) l'utilita'.

Esiste gia' un prodotto che funziona perche' devo spendere tempo e soldi per riscriverlo da capo? - Questo fondamentalmente l'atteggiamento di tutti, dalla responsabile al cliente al Digerente...

A niente e' valso lo spiegare che essendo prodotti EOL il loro supporto da parte di chiunque potrebbe cessare di botto e senza preavviso.

Fast forward ad oggi: l'applicativo non invia piu' la pec.

Mi guardo i log e
La versione del client di posta che stai utilizzando non rispetta i requisiti di sicurezza minimi richiesti dal servizio PEC. Per maggiori dettagli sui requisiti di compatibilita' vai su verifica.pec.it
Aka la versione del client con cui fai hand-shake e' troppo vecchia.

...ma guarda un po'...

Riunione stile Fuher-Bunker con gli alleati alle porte. Non riesco a smettere di ghignare lo ammetto. Ovviamente faccio presente che sul porting (che nessuno s'e' caato da anni) la pec funziona Mi rispondono che c'e' bisogno della pec SUBITO

$ME_PENSA: se mi avevi dato retta in tutti questi anni non ti saresti trovato in questa situazione.

Faccio presente che comunque la colpa e' nostra che usiamo una Java geriatrica e anche se non pronuncio le parole "te lo avevo detto" - il sorriso da stregatto lo fa al posto mio.

Dopo vari ravanamenti, spiego che le nostre macchine di sviluppo sono su jboss 5 + java 1.8 e che se anche se questa soluzione non e' certificata (jboss 5 e' certificato per la 1.6) potrebbe essere un modo per sopravvivere. Anche se per inciso non e' detto che funzioni perche' usiamo un componente "custom" sviluppato per $ENTE per autenticare la gente tramite smart card/spid & co. Questo componente la versione vecchia non funziona con la java 18 e quella nuova non e' detto che funzioni con jboss 5 (il sistemista di $HOSTING_PAMPERS in questo momento sta bestemmiando parecchio)... Vi terro' aggiornati

Quello che spero e' di riuscire a fare capire la necessita' di passare a qualcosa di piu' "nuovo" (java 1.8 e' fra i requisiti minimi e su oracle c'e' la 12 quindi non e' che sia poi cosi' nuova) lasciando perdere totalmente il vecchio, e soprattutto riuscire a far capire la necessita' non solo di aggiornarsi ma anche di rimanere aggiornati.
Tanti piccoli passi costano meno di uno gigantesco...

Aggiornamento (15/08/2021):
Non sono piu' in quella gabbia di matti (grazie a Chtulu). Quando sono andato via (quasi 2 anni fa) erano ancora a madonnare. Avevo anche proposto una soluzione "tampone" che avrebbe permesso di non cambiare la configurazione, in soldoni un applicativo REST da sviluppare su wildfly e che facesse da ponte tra il vecchio e la pec. La risposta era stata che ci sarebbe voluto troppo tempo (secondo la responsabile almeno 1 mese per andare in produzione), sono stati quasi 2 anni senza inviare pec.
Questo per farvi capire come ragiona certa gente...