giovedì, marzo 29, 2012

Analisi dei requisiti? Parte quarta

Siamo quasi giunti alla fine di questa epopea.

Eravamo rimasti al sottoscritto in attesa di "qualcuno" di $aziendaEsterna.
Penso si sia già formata nelle vostre menti l'immagine di me ricoperto di ragnatele nella vana speranza dell'arrivo di qualcuno. A richiesta di spiegazioni la risposta era sempre "Stiamo organizzando la cosa" ed il tassativo divieto di scrivere anche solo mezza riga di codice.

Fast forward di tre mesi.

In piedi su di una nuvola di bestemmie al punto di sembrare Son Goku sulla nuvola Kinto ecco il Capo che sfreccia in corridoio in direzione della "Sala Programmatori".
Piccolo escursus: la "Sala Programmatori" è in effetti il locale in cui si trovano tutti coloro che sono in grado di scrivere del codice funzionante ($collegaSveglio, $collegaPelato, $collegaCheHaLavoratoCinqueAnniAGenova e, da quando è stata assunta anche $nuovaCollega), i nostri due prodi che da soli si occupano dell'assistenza di tutto il parco macchine (più di 600 client) e $collegaAddettoTelefoni. Tale stanza sarebbe anche la giusta postazione del sottoscritto che però è relegato nel loculo in quanto unico essere di sesso maschile in grado di sopportare $collegaFancazzista.
Seguo quindi la scia di santi spiattellati sul linoleum ed arrivo in tempo per sentire il Capo che sta spiegando a tutti che $assessore ha deciso che il servizio tributi avrebbe usato solo ed esclusivamente i software forniti da $aziendaEsterna.

È quindi iniziato il processo di migrazione dei dati: gli accordi erano che tutti i dati dovevano essere trasmessi in formato xml, la pratica è stata che noi abbiamo docuto scrivere degli script per generare dei file con tracciato richiesto da $aziendaEsterna. Perché? Perché a quanto pare nessuno aveva le capacità o la voglia di importare un file xml.
Abbiamo dovuto sostituire il parco macchine del servizio poiché a quanto pare la "webapp" di $aziendaEsterna necessitava di client iper carrozzati.
A tale scopo hanno inviato il sottoscritto a valutare quali dei pc già presenti potevano essere usati. Responso?

Gama - 18 (tutti tranne due) pc da sostituire.

$assessore - Sono troppi!

Gama - Lo so anche io ma se i requisiti sono quelli che ha comunicato $aziendaEsterna c'è poco da fare...

$assessore - Sono troppi!


Ripetere ad libitum per dieci minuti fino a che:

$assessore - Prendetene 13

Gama - Ok, riferisco al Capo e a $segretariaIncazzosa


Ri fast forward

- I pc sono stati piazzati... Uno l'ha voluto $assessore.
- L'importazione dati $immondizia ha richiesto sanguinose ere da parte di $aziendaEsterna
- Il gestionale per la gestione dell'imposta sugli immobili presentato con gli screenshot è risultato inesistente
- La quantità di bug rilevati dal sottoscritto in $gestioneImmondizia ha coperto un elenco di 7 pagine
- $gestioneImmondiza è risultato non accessibile e quindi non utilizzabile per legge
- $assessore (responsabile anche delle pari opportunità) disse "un disabile lo metti a fare un altro lavoro, non ci interessa che sia accessibile: state facendo ostruzionismo!"
- $aziendaEsterna voleva che pubblicassimo sul web la porta di accesso al database (yeah, sure! Cit. Davide Bianchi)
- $assessore ha dato di matto perché i pc (non sostituiti per SUA decisione) non facevano funzionare il programma ed i cittadini, giustamente, si incazzavano
- Ogni errore era ovviamente causa nostra e del fatto che non volevamo che il server venisse messo in una location esterna a pagamento (verso $aziendaEsterna ovviamente)


Il Capo e $collegaCheHaLavoratoCinqueAnniAGenova hanno cercato di far notare queste "piccole" mancanze e sono stati minacciati di licenziamento.

Tutto questo per un anno.
Dopo dodici mesi $aziendaEsterna ha rilasciato il programma di gestione dell'imposta sugli immobili.
Una gestione dell'anagrafe dei contribuenti -quella di $immondizia- unita ad un dump dei dati delle dichiarazioni di $exGestoreTributi comprensivo di caratteri separatori presenti nel file di testo della fornitura.

Che ci crediate o no, per un intero anno la situazione è stata questa unita al rilascio di qualche modulo bacato e rattoppato in corso d'opera. Naturalmente, per tutto il tempo, qualsiasi errore era colpa nostra.

La luce in fondo al tunnel è apparsa doo le elezioni.

Continua con l'ultima parte: il presente.

Gama

martedì, marzo 20, 2012

Analisi dei requisiti? Parte terza

Continua l'epica(?) saga.

Eravamo rimasti al progetto congelato fino ad ottobre.

Giunse l'autunno, caddero le foglie e qualcuno si rese conto che non c'era uno straccio di programma da usare. Panico generalizzato.
Purtroppo il panico non fu troppo: chi di dovere non fece altro che alzare le braccia al cielo urlando fino a novembre. Io, giusto per non trovarmi in questo turbine di delirio, misi in piedi per lo meno un'interfaccia di ricerca dei contribuenti e della loro situazione dei pagamenti... ed una ricerca delle loro proprietà catastali... ed una visualizzazione delle planimetrie se disponibili... ed un po' di tool di ricerca per via, immobile e situazione dei pagamenti. Così, perché i miei sensi di master stavano vibrando.

Giunse il freddo di dicembre ed ancora nessuno aveva la benché minima idea di cosa si dovesse fare poi, come un solitario fiocco di neve, apparve il Capo alla mia porta.

Capo - "Gama, i pezzi grossi vogliono fare una riunione. Dimmi che hai pronto qualcosa!"

Gama - "Ad essere cattivo potrei dire di no, visto che nessuno mi ha dato uno straccio di elenco delle richieste. Per fortuna ho fatto questo, non è il gestionale ma per lo meno dimostriamo che siamo interfacciati con la situazione catastale e dei pagamenti."

Un paio di click e digitazioni dopo il Capo se ne andò palesemente sollevato.

Giunse quindi il fatidico giorno, riunione plenaria dei pezzi più grossi con $aziendaEsterna, $dirigenteTributi, il sottoscritto e, ovviamente, il Capo.

C'è solo una parola per definire quella riunione: fuffa.

Dell'ora e mezza che abbiamo perso in quella stanza più di tre quarti sono stati impegnati dal teNNico di $aziendaEsterna e da una presentazione $puntoPotere piena di screenshot di un'applicazione talmente figa da fare anche il caffè, il cappuccino ed una serie di cocktails alcolici e analcolici.

I pezzi grossi nella loro interezza avevano gli occhi rilucenti, il mio naso fiutava uno strano odore di sostanza organica anfibia. Ho chiesto - a voce palesemente alta, lo ammetto - una cosa al Capo.

Gama - "Bello... ma... una demo invece di una serie di screenshot?"

Se gli sguardi avessero potuto uccidere sarei già morto un paio di volte, non solo gli elementi di $aziendaEsterna mi guardavano con odio: metà dei pezzi grossi mutarono lo scinitllio oculare in rabbia totale.

$direttore - "Ehmmm, vediamo cosa ha da presentare il CED allora!"

Capo - "Abbiamo una versione in ambiente di sviluppo con dati di test da mostrare. Gama, a te il pc"

Scalzo dalle scatole $teNNico e inizio la mia presentazione pratica di quanto sviluppato nei due mesi precedenti con una semplice premessa: "I dati sono aggiornati ad un mese fa in questa versione di prova".
Indovinate un po' le obiezioni che sono state mosse? Ovviamente $direttore e $assessore hanno voluto vedere i loro dati: avendo $assessore pagato il suo bollettino tre giorni prima si ha montato su un casino assurdo per il fatto che "Non è possibile che il mio pagamento non risulta!!!!!".

Gama - "Come dicevamo poco fa i dati in questo ambiente non sono aggiornati: è una versione dimostrativa".

Procedo quindi a collegarmi con l'ambiente di produzione... messo in produzione senza nemmeno un minuti di test su esplicita richiesta di $assessore. Come per magilla i dati erano lì.

$assessore - "Mancano un sacco delle funzionalità che $aziendaEsterna ha sviluppato nel lavoro del CED"

Capo (probabilmente folgorato dallo Spirito) - "Abbiamo visto degli screenshot ma nessun programma, anche noi potevamo fare una presentazione di immagini fatte ad hoc"

Silenzio e gelo hanno accompagnato questa affermazione, il mio ghigno era impossibile da contenere. Il boss di $aziendaEsterna ha quindi iniziato a sbraitare sulla questione della fiducia, dei rapporti di collaborazione e yadda, yadda, yadda....

Morale della favola? Avrebbero mandato qualcuno da $aziendaEstena a lavorare con me per lo sviluppo delle funzionalità mancanti.

Continua.

Gama

martedì, marzo 06, 2012

The sysAdmin song

Per tutti gli addetti ai lavori: ecco una bella canzone per voi! :)


lunedì, marzo 05, 2012

Analisi dei requisiti? Parte seconda

Per sviluppare un software mi hanno spiegato che in teoria:

- Ricevi le richieste del cliente
- Ne analizzi la fattibilità e l'eventuale modularità
- Imposti uno schema di risoluzione
- Fai eventuali disegnini per far capire la tua idea al cliente
- Correggi il tiro in base alle modifiche richieste
- Imposti le priorità ed una timeline
- Generi il database ed i moduli in ordine di priorità
- Correggi i bachi e le imprecisioni
- Implementi le funzionalità aggiuntive

Tutto questo in teoria. Purtroppo.

La condizione in cui mi sono trovato è stata:

Four years ago

Gama - Sono qui per sapere cosa vi serve nel programma per la gestione dell'imposta sugli immobili.

$dirigente - Un programma per la gestione dell'imposta sugli immobili.

Gama - Ok, un po' più di dettaglio?

$dirigente - Sonasegaio, senti $moglie.

Vado quindi da sua moglie che lavora nell'ufficio accanto.

$moglie - Usiamo il programma di $exGestoreTributiImmobili.

Gama - Vabbè, ma per fare pagare la gente come fate? Le cose mi hanno insegnato non si generano dal nulla.

$moglie - Ah, per quello senti $exGestoreTributi: il loro programma che funziona benissimo!

Ed inizia a cliccare come una forsennata in un applicativo che apre un fottigliardo di sottofinestre.

Gama - O_O'


Mesto me ne ritornai nel loculo con un foglio di carta bianco ed un numero di telefono da contattare, avviluppatto nella certezza che "Sicuramente mi diranno tutto quello che voglio appena sapranno che il loro contratto sta per essere reciso come un ramo secco!"

Nessuna risposta per giorni.

Nel mentre, durante un intervento di routine per pc spappolato ho incrociato $exCollegaTributi che, a quanto ho scoperto con il tempo, è una delle due persone che REALMENTE lavoravano sul programma di $exGestoreTributi.

$exCollegaTributi - Tranquillo, va sempre a finire così: io e $collegaTributi carichiamo le dichiarazioni dei contribuenti nel programma ed il resto lo fa tutto l'ufficio di $exGestoreTributi. Il tributo è tutto basato sull'auto-dichiarazione del contribuente, se poi non dichiarano il vero vengono prese sanzioni tramite gli accertamenti.

Gama - Ah.

$exCollegaTributi - Hai presente quella maschera di stampa delle ricevute delle dichiarazioni? Ecco, quel numero progressivo che generi è il numero di protocollo che diamo alla dichiarazione nel programma.

Gama - Ho già scritto un pezzo di programma e non lo sapevo?

$exCollegaTributi - A quanto pare si, sono davvero felice che ci lavori su! Quando vuoi ti faccio vedere come funziona la parte di inserimento ma se riesci cerca di farla meglio perché non ci si capisce nulla ed è scomoda e macchinosa.

Gama - Hai mica uno di quei moduli che consegnano i contribuenti in bianco, mi sembra ci siano sopra tutte le informazioni che vi interessano.

A quanto pare da un colloquio casuale ho ottenuto più informazioni di un incontro ufficiale.

Alcuni giorni dopo riuscii a contattare $exGestoreTributi che, ovviamente, si limitò a mandarmi un dump della banca dati in formato testuale. Record con campi a dimensione fissa e '\0' come riempimento degli spazi inutilizzati. Per i non tecnici '\0' è la trascodifica del carattere che termina una stringa di testo.
Ovviamente dato in pasto a qualsiasi programma di importazione o script scritto ad hoc il risultato era un sonoro sfanculamento.

Non ebbi nemmeno il tempo di iniziare a ripulire il tutto che il progetto venne fermato a causa della decisione del governo di modificare il tutto, cosa che si è risolta nell'abolizione del pagamento per la prima casa.

Tutto rimase congelato fino ad ottobre dello stesso anno.

Continua.

Gama