E finalmente, dopo una settimana di influenza spaccacranio, ritorno in ufficio e mi scontro subito con un bel casino. Ne sentivo la mancanza.

Ho gia’ descritto anche troppo il nostro famoso "cluster" di scansione della posta. Basti dire che esistono ‘n’ (con n==4) server di ingresso. Questi non solo accettano la posta ma fanno anche il primo controllo (blacklisting, spf, dkim, graylisting e vari riti voodoo per purificare il contenuto delle mail). Orbene, io arrivo in ufficio alle otto del mattino, attacco il mio lapdog e scopro che tutti e 4 i server di input sono inattivi.

Morti, cadaveri, kaputt. Niente ping, ssh, smtp. Nada!

Mi attacco alla console remota e scopro che tutti e 4 i server sono in Kernel Panic. Prima che il Panic venga ai nostri clienti decido di avvisare subito Bert (cosi’ sa cosa raccontare quando cominciano a telefonare) e poi procedo a riavviare i servers.

Avvia il primo, avvia il secondo ed il primo e’ di nuovo in panic. Riavvia il primo, avvia il terzo ed il secondo e’ in panic… Dopo aver madonnato per una buona oretta continuando a saltare da una console all’altra come un giocoliere che cerca di tenere dei piatti in bilico sui bastoni, i quattro maledetti ripigliano vita e la posta ricomincia a fluire.

Un rapido controllo pare imputare il problema al solito maledetto XFS che si incarta ogni due per tre. Ergo, decido di prendere il toro per le corna, acchiappo DaBoss e gli propongo la reinstallazione seduta stante di tutto l’ambaradan usando la nuova configurazione da me messa a punto.

Quindi acchiappo un paio di server ed 8 (otto) dischi fissi ed installo 4 server (1 server di input, 2 server di scan, 1 server di output) in modo da sostituire meta’ di uno dei cluster in un colpo solo. Dopo di che, mi dirigo rapidamente alla colo ed effettuo la sostituzione dei dischi. Tutto sembra andare per il meglio.

Il mattino dopo ricomincio l’installazione sui dischi che ho rimosso dal cluster il giorno prima per sostituire anche l’altra meta’. A questo punto pero’ arriva l’imprevisto, nella forma di una telefonata da parte di CL di $ditta che lamenta che non gli arriva piu’ posta.

IO – Ma non vi arriva piu’ posta da quando?
CL – Ma, direi da almeno 3 o 4 giorni…
mepensa: e adesso mi telefoni?
IO – Che dominio hai detto?

Guardo sul log e noto che tutte le mail dirette al loro dominio sono in coda con un bel "timed out while sending end of data". Oh che gioia.

IO – Vedo qui che il nostro server prova a mandarvi la posta ma sembra che ci siano dei problemi nella connessione e va’ in timeout. Voi per caso avete fatto qualche cambiamento nella connessione di rete? Aggiunto dei pezzi, cambiato configurazione nel router, cambiato provider… roba cosi’?
CL – No no, noi non abbiamo cambiato niente.

Sicomeno…

Io penso un momento: non e’ possibile che sostituire UN server di output cambi le cose su tutti i server insieme, ed io non ho alterato la configurazione di rete. Ergo, deve essere un problema relativo al networking… hummm fammi vedere un po’… telnet ip.server.cl.qui 25… Connection refused.

Hummm… "connection refused"? Controllo e vedo che questi beduini usano la porta 2525 perche’, apparentemente, il loro provider gli blocca la porta 25. Ok. Telnet … 2525 e mi becco l’HELO del loro server. Ovviamente un bellissimo sexchange 2000.

IO – Il vostro server e’ un po’ vecchiotto… come’ che non lo avete mai aggiornato?
CL – Heeeuuuu…. E’ una storia un po’ lunga…
IO – E la versione corta magari e’ "costo delle licenze"?
CL – Hemmm…

Provo ad inviare una mail da telnet e viene accettata senza problemi. Ooookkeey…. Quindi una mail da telnet funziona mentre una mail ‘normale’ no… dimensione della mail? Mi viene un dubbio atroce. Visto che gia’ ho avuto questo stesso problema piu’ volte, e sempre con in mezzo un qualche server Microsoft, provo "al buio" a loggarmi su uno dei server di output ed a dare un bel ifconfig eth0 mtu 1000 e poi a ri-accodare i messaggi di posta per CL. Ed indovina un po’: Funziona! Con l’MTU a 1000 la posta viene consegnata senza problemi.

IO – Okey, ho trovato il problema…
CL – Adesso riceviamo posta!
IO – Si’, ho appena detto che ho trovato il problema…
CL – A bene, benissimo grazie ta…
IO – AHO’ MA FAMMI PARLA’! Il problema e’ che la vostra connessione di rete ha un MTU troppo basso e non invia correttamente i messaggi ICMP per la negoziazione in modo automatico…

Ovviamente, di tutto questo CL non capisce un accidente. Mettete qui’, se vi pare, una lunghissima spiegazione delle intricazioni del TCP/IP, il tutto fatto cercando di non mandare il cervello di CL in kernel panic ovviamente. Dopo un bel po’ un pelo di luce rischiara le tenebre nel suo cranio.

CL – Quindi… cosa dovremmo fare?
IO – Contattare il vostro provider o chi vi fa assistenza sulla vostra rete e fargli controllare i parametri di connessione.
CL – Ma se io resettassi il cosi li’ per la connessione ad internet?
IO – Lo avete resettato di recente?
CL – No, noi non abbiamo toccato niente.

Sicomeno.

IO – E allora lascialo stare e chiama chi vi gestisce la rete.
CL – Ma non possiamo lasciare le cose come sono adesso che funziona?
IO – No, perche’ in questo modo sprechiamo un terzo della nostra banda per consegnare la posta a voi. E dato che di oltre 8000 clienti voi siete gli unici che hanno questo problema, ritengo che la cosa migliore sia per voi scoprire cosa c’e’ che non va nella vostra connessione di rete e metterla a posto. O farlo fare al vostro isp che pagate per questo.
CL – Ah-hummm… vabbe’…

Passa una mezz’oretta e mi ri-suona il telefono.

CL – Allora, ho provato a riavviare il router…
IO – Ma hai parlato prima con il vostro provider?
CL – No.
mepensa: ecchemipareva…
CL – Solo che adesso non riusciamo piu’ a connetterci ad internet…

Io controllo e noto che, in effetti, il server di CL adesso e’ completamente irraggiungibile.

IO – Ma perche’ non lo dici al vostro provider?

Ovviamente, loro non hanno mai toccato niente…

Davide

legenda personaggi

[SdSM] Script Man alla riscossa

Avevamo lasciato il nostro eroe a pattugliare le strade di Unixcity combattendo il crimine e proteggendo la serenita’… no, in effetti lo avevamo lasciato a cazzeggiare mentre reinstalla il famoso database-server che dovrebbe sostituire il famoso cluster-che-non-e-un-cluster ed a bestemmiare contro chi produce e vende controller RAID che non sono RAID manco per un po’ e pensando a cosa fare per cena. Ma gli eroi non conoscono riposo, specialmente quando sono dei sysadmin e c’e’ un qualche SL di mezzo.

Ed ecco che, qualche nefario e nefasto individuo (un SL a caso) ha deciso che la cosa migliore per i suoi 400 uffici e’ di avere 400 router per la connessione ad interdet, ed ovviamente tutti e 400 con la stessa password. Una bambolina a chi indovina la password. Ecco, lo sapevo che era troppo facile.

Questo fino alla mattina quando a qualcuno e’ venuta la bella idea di provare a fare un bel ssh in uno di quei router, digitare la passwordina e si e’ ritrovato dentro. Il problema e’ che il tipo arrivava dalla korea. O sarca$$o. Comunque non avrebbe dovuto fare login in quel coso.

Ovviamente all’SL in questione e’ venuto un mezzo collasso quando e’ stato informato della cosa da Bart e non ha avuto altra giustificazione che "rende la manutenzione e la gestione piu’ semplice". Dopo di che ha rigirato la palla e con una maillina di 25 righe ha semplicemente detto "Ok, cambiamo tutte le password su tutti i router e blocchiamo l’accesso via SSH da ip non autorizzati".

Sicomeno, facile per lui dirlo, il problema e’ che dovremmo essere noi a farlo. Ovviamente a Bart e’ venuto un mezzo infarto quando ha letto la cosa. Che di passare dei giorni a riconfigurare 400 router non e’ ci avesse una grande voglia.

Ora prima di andare avanti, consentitemi una piccola precisazione: Bart, A (di cui ho parlato brevemente in questa storia) ed un paio di altri sono sostanzialmente Network administrator. Il che significa che sanno tutto di Cisco, Checkpoint, Foundry, Juniper e roba cosi’, ma fagli vedere un prompt di bash e non sanno piu’ che pesci pigliare. E’ per quello che ci sono io.

Quindi Bart e’ balzato in piedi, e’ corso sul tetto ed ha acceso lo Script-segnale puntandolo verso le nubi. No, in effetti quello che ha fatto e’ stato di correre nel mio ufficio e corrompermi con una scatola di biscotti al cioccolato e caffe’ (‘azzo devo dire? Sono facile da corrompere).

Il risultato e’ che per prima cosa mi sono fatto spiegare la rava e la fava, poi mi sono preoccupato che, se si fa un qualche errore nella riconfigurazione dei router ci sono potenzialmente 400 uffici tagliati fuori da interdet, cosa che probabilmente provocherebbe un infarto pieno (invece che mezzo) ad SL. Quindi mi sono fatto preparare un router locale per fare manipolazioni. Dopo di che ho rispolverato la mia copia di "tutto quello che non avreste proprio voluto sapere di Expect ma siete stati costretti vostro malgrado ad imparare" e messo insieme uno script per effettuare tutta l’operazione. Ed ora si tratta di estrarre da quella chiavica di database di configurazione tutti gli indirizzi Ip.

Per fare cio’, prendo spunto dalla mostruosa query che gia’ fa quasi tutto quello che mi serve, ed aggiungo un paio di ‘and’ qui e li’ in modo da estrarre solo i dati che voglio.

Dopo di che vado ad acchiappare Bart e mi faccio dare l’elenco dei comandi che dovrei eseguire per fare la riconfigurazione del coso.

Bart – Ah, ma e’ una roba semplice, allora tu fai login cosi’, poi en e poi jargon jargon computery computery jargon jargon e quindi se lui ti domanda se jargon jargon geeky nerdy jargon jargon
IO – Si, ok, e se lui non riconosce il comando che jargon jargon switchy computery jargon jargon

Cosi’ sistemo il mio script e lo verifico un paio di volte sul router di "test".

IO – (rivolto a Bart) Io sono pronto qui… che faccio vado?
Bart – Ok, vai pure.

E cosi’ digito il comandino e sto a guardare 398 linee di "host … ok" comparire una dopo l’altra mentre il mio script macina attraverso internet.

Gli unici due problemi sono stati due router che apparentemente non sono raggiungibili tramite SSH. Bart ha deciso che dovra’ andare la’ di persona a controllare.

..effetto voce fuori campo…
Ed anche questa volta il Cavaliere Mascherato ha riportato la pace nella prate…
Heeee… No, momento… Mi sa che ho fatto casino tra i vari fumetti. Mannagg… vabbe’, chi se ne frega. Buoni i biscottini al cioccolato.

Davide

legenda personaggi

[SdSM] MyMortacciladrischiSQLfosi

RAID 5

E siamo di nuovo qui a parlare del bellissimo cluster-che-non-e-un-cluster di database di cui avevo gia’ parlato tempo addietro.

Dopo un paio di debacle che mi hanno visto bestemmiare assai per rimettere in piedi il marchingegno, DaBoss aveva finalmente ascoltato le mie magagne e mi aveva grandiosamente elargito una macchina di recupero per iniziare l’installazione di un nuovo cluster che questa volte e’ un cluster vero.

Il guaio della macchina in questione e’ che e’ dotata di soli due dischi fissi, mentre io volevo un raid 5 + hot spare. Ok, visto che DaBoss e’ in vena, faccio domanda per due dischi fissi extra, nel frattempo procedo con una installazione di test per vedere come risponde. E risponde bene. Be’, il server "vecchio" e’ un singolo processore, quello nuovo e’ un doppio dual-core… vorrei vedere se non risponde meglio.

Nel frattempo, si appropinqua la fine dell’anno, e DaBoss e’ restio ad ordinare roba alla fine dell’anno perche’ preferisce metterla nel budget dell’anno successivo. Vabbe’, si tratta di aspettare una settimana o giu’ di li’.

Arriva il nuovo anno e DaBoss se ne va in vacanza (schifoso b…), io domando alla nostra segretaria se sono in ordine i due dischi extra e lei mi casca dal pero… quali dischi extra? Quelli che avrebbero dovuto essere ordinati un paio di settimane fa…

Nope, ovviamente nessuno ha pensato ad ordinare niente. Ok, rimanda la mail con i numeri di serie e passa ad occuparti di altro.

Passa una settimana, DaBoss rientra, io faccio la domanda.

IO – Allora, sono stati ordinati questi dischi per il nuovo db-server?
DB – No, non ancora.
IO – E che aspettiamo?
DB – Queste cose qui me le gestisco io, dunque, che dischi ti servono?
IO – Gli stessi che ti ho richiesto 2 settimane fa e due settimane prima.
DB – Hummm… ma questi sono normali dischi sata giusto?
IO – Si’, questi sono i dischi che vanno in quel coso.
DB – Perche’ ieri ho provato a montare un disco PATA sul mio laptop e va moooolto piu’ veloce, non e’ che sarebbe il caso…
IO – Senti, io voglio mettere quel coso in produzione al piu’ presto, non me ne frega niente delle performance in questo momento, prendiamo i dischi che noi sappiamo che funzionano e che vanno su questo controller.

Passano un paio di giorni. Al martedi’ io vedo un paio di messaggi di errore piovere nella mia mailbox, errori che sono dovuti alla pletora di server di scanning della posta che cercano di accedere al foxxuto database per leggersi la loro black & white list e non ci riescono.

Un controllo mi dice che la procedura di lettura della lista genera una tabella temporanea, ed e’ questa generazione che fallisce.

Al giovedi’ i messaggi di errore sono diventati 5 o 6 al giorno.

Siamo a lunedi’ e siamo al meeting settimanale.

IO – Allora? Dove sono i miei dischi?
DB – Ah, si… non li ho ancora ordinati.
IO – ?? Come sarebbe a dire?
DB – Hemmm… e’ che ero occupato con altre cose …
IO – Guarda che abbiamo dei seri problemi con il maledetto arnese, quindi prima lo sostituiamo meglio e’.
DB – E che cosa possiamo fare nel frattempo?
IO – Potremmo provare un fail-over sul secondario, ma prima devo verificare che la foxxuta replicazione stia facendo il suo dovere.

Un rapido controllo mi conferma i miei sospetti: la foxxuta replicazione non sta replicando un tubo. Il che significa che dovro’ fermarmi di nuovo in ufficio per farla ripartire. Poi, visto che mi fido di questo coso come mi fiderei di un serpente a sonagli incazzoso e rabbioso assai, giro tutti i server di scansione in modo che leggano i dati dal secondario ma continuino a scriverli sul primario. Il risultato e’ che, se non altro, i messaggi di errore svaniscono.

Il giorno dopo ricevo un paio di lamentele che un indirizzo in white-list continua a non essere ricevuto. Io vado a vedere e, indovina un po’… la foxxuta replicazione si e’ incatastata un’altra volta!.

A questo punto arriva DaBoss.

DB – Allora, ho ordinato i dischi nuovi.
IO – Ed era anche l’ora!
DB – Problemi?
IO – Il foxxuto db server ha un qualche problema sui dischi ed il foxxuto server secondario ha sempre le mestruazioni ogni volta che decido di usarlo.
DB – Possiamo fare qualche cosa?
IO – Si’, sostituirlo al piu’ presto. E magari smetterla di usare questa merda di MySQL.
DB – Cosa ha che non ha MySQL?
IO – Niente. E’ perfetto. Se quello che vuoi fare e’ farci funzionare il tuo blog o magari un sitarello-ello-ello senza pretese. Ma se vuoi farci andare un’intera azienda con applicazioni commerciali e’ una cagata.
DB – Eh… e tu cosa useresti allora?
IO – (alzo una rivista che giace da illo tempore sulla mia scrivania sulla cui copertina campeggia la scritta "oracle")
DB – Orpo… ma quello costa…
IO – Se vuoi robustezza la devi pagare. E questo mi ricorda: noi le paghiamo le licenze di MySQL?
DB – Licenze? Ma MySQL e’ gratuito…
IO – Le palle. Sta’ scritto chiaramente nella licenza. Se lo usi per scopi commerciali (e noi lo usiamo senza alcun dubbio per scopi commerciali) devi pagare la licenza.
DB – Ma e’ GPL…
IO – La "g" di GPL non vuole dire ‘Gratis’ ed anche il tuo foxxuto CRM e’ GPL ma lo hai pagato salato se mi ricordo bene.
DB – Hemmm… ma… vabbe’, senti, io i dischi li ho ordinati, il db server funziona al momento no?
IO – Funzionera’ se mi ri-fermo stasera a farlo ripartire. Quindi sotto con questi dischi.

E DB se n’e’ andato portandosi via la rivista di Oracle… che sia la volta buona che butto via questa MySQLMerdaccia?

Davide

legenda personaggi

(continua dalla parte precedente)

…dov’e’ che ero rimasto? Ah si’. Quindi dopo un buon sei mesi circa passati a fare tutto meno che correzioni sul mio programma (che era quello che avrei dovuto fare), sono a consulta con DaBoss per il da farsi nel futuro.

DB – …quindi per il momento tu dai una mano alla tua collega e se CL dice qualche cosa mettilo per iscritto e poi vediamo il da farsi. Se non sono oggettivamente vere correzioni ovviamente.
IO – Scusa la domanda scema, ma perche’ accidenti diamo corda a quel coglione di CL?
DB – Perche’ ci pagano.

E che vuoi dirgli a quel punto? Quindi io continuo a girare le stesse 3/4 versioni del mio programma (sempre le stesse) in risposta agli "errori" di CL (sempre gli stessi) e sostanzialmente a scaldare la sedia.

<intermezzo>
$formaggini era (non so se lo e’ ancora) fondamentalmente un IBM-shop, che non e’ che la cosa fosse poi tanto anormale a quell’epoca.

Tra la fine degli anni ‘80 e l’inizio degli anni ‘90 le cose o erano IBM o non erano. Erano gli anni in cui le societa’ si staccavano dalla dipendenza dai mainframes e micro-computers per spostarsi sempre di piu’ verso reti di PC, attratte dai costi minori (veri o presunti).

In quell’epoca si avevano tre scelte fondamentalmente: tenersi su IBM, il che voleva dire AS/400, PS/2 e TokenRing, fare il salto della quaglia e portarsi sui cloni, di cui ce ne erano migliaia e c’era solo l’imbarazzo della scelta, con Novell o Lantastic o simile per attaccarli insieme, e questo significava sostanzialmente Ethernet, oppure fare il balzo gigantesco ed andare verso Apple.

Il "balzo" era reso sostanzialmente impossibile, dal punto di vista manageriale, per via dei costi altissimi dell’hardware e del software. Mentre i programmatori DOS venivano via un soldo alla dozzina, fondamentalmente nessuno programmava per Apple. Almeno, IO non ho mai trovato un programmatore Apple.

E voi, se avete meno di una quarantina d’anni, probabilmente state pensando: "e Microsoft?".

Microsoft cominciava appena appena a mettere fuori la testolina, Windows era alla versione 2.0 e le prime copie di 3.0 cominciavano a circolare. D’altra parte all’epoca, se non volevi finire seppellito da citazioni e contro-citazioni firmate da Apple conveniva stare calmi e cercare di passare inosservati. Cosa che aziende come Digital Research non fecero, e Digital ne pago’ il prezzo quando mise in circolazione GEM. Apple trascino’ Digital in tribunale ed il blocco di piu’ di un anno allo sviluppo del prodotto ne decreto’ la morte.

Nel caso di $formaggini la scelta era piu’ o meno obbligata. Dai micro e mainframe di IBM si passava verso AS/400 e PS/2 con Token Ring. Ed il bios delle schede di rete andava in conflitto con il bios del pc una volta su due, costringendo ad almeno 3 reboot consecutivi prima che qualche cosa funzionasse.

Anche $ditta comunque era nel mezzo del cammino. Il 60% dell’attivita’ in quegli anni era costituita dall’interfacciamento tra micro/mainframes ed AS/400 e reti di PC. Il resto era sviluppo di applicazioni ad-hoc su base DOS, installazione e gestione di reti Ethernet/Novell. E DaBoss era li’ che pensava se restare con IBM o abbandonare "big blue" ed andare con il vento del nuovo e vendersi anima e corpo a Microsoft.
</intermezzo>

Siamo di nuovo a consulta con SL per vedere di tirare le somme.

DB – …quindi dopo sei mesi e girando sempre le stesse 3 versioni o vi decidete e ne approvate una o dobbiamo procedere con una nuova offerta, ma questa volta l’accettazione dell’analisi significa che accettate anche l’interfaccia.
SL – (sempre dividendo la propria attenzione tra il monitor e noi) Ma la nostra procedura standard… (pausa per controllare la posta) …prevede che l’accettazione venga fatta dopo un periodo di prova pratica e non posso… (pausa per controllare la posta) …cambiare lo standard altrimenti…
DB – Si’ ho capito, ma questo sta raggiungendo livelli ridicoli! E comunque, quanto accidenti volete andare avanti con il sistema vecchio? Piu’ tempo ci perdete sopra piu’ complicato diventa il cambiarlo.
SL – Ah, be’, ma per quello… (pausa per controllare la posta) …tanto stiamo gia’ pensando di passare al nuovo sistema…
DB – Quale nuovo sistema?
SL – Ma quello nuovissimo con il mouse… (pausa per controllare la posta) …la grafica…
DB – Windows?
SL – Macche’ Windows… quella e’ una cazzata che non andra’ da nessuna parte. No, io sto’ parlando del nuovo sistema (pausa per controllare la posta) OS/2!

La cosa avrebbe potuto arrivare come uno shock, ma non piu’ di tanto. Comunque, poco tempo dopo, dopo un periodo di lavoro presso un’altro cliente, ho avuto sentore che vi era stata una certa riorganizzazione presso $formaggini ed il processo di "accettazione" (aka: "nonono, e’ colpa tua") doveva riprendere. Nello stesso periodo, dato che $ditta aveva diversi programmatori distaccati la’, e che l’attitudine generale cominciava con l’influenzare seriamente il rendimento, un "responsabile" era stato distaccato per sovraintendere le operazioni. Questo tipo era soprannominato "one". "One" all’italiana eh, non "uan" all’inglese. Perche’ era… hemmm… "one"… cioe’ grosso. Il tipo, dopo aver passato un paio di giorni la’, torno’ in ufficio e domando espressamente a DB l’autorizzazione di menare gli utenti. Autorizzazione che fu, tristemente, negata.

Onde per cui cio’, mi dirigo alla volta di $formaggini. Quel giorno, forse perche’ dovevo andare da $formaggini, forse per altri motivi, ero piuttosto sull’incazzato andante, e proprio l’ultima cosa che volevo era un tete-a-tete con CL. Comunque, arrivo e la prima cosa che mi becco sono gli ascensori. Quegli aborti di elettro-idraulica mi erano sempre stati sui marroni. Prima di tutto, erano lenti da far paura, secondo, tendevano a chiuderti in mezzo alle porte ed a differenza degli altri ascensori, che quando la porta tocca qualche cosa si ritrae, questi figli di un terminator in erba tendevano a darti delle botte.

Io faccio per entrare, ed il figlio di un ingranaggio arrugginito cerca di chiudermi in mezzo, come al solito. Solo che stavolta ho reagito alla Incredibile Hulk. Risultato: l’ascensore si e’ ritrovato con entrambe le porte fuori dai loro "binari" ed io mi sono fatto 5 piani di scale a piedi. Ne valeva la pena comunque.

Giunto al quinto piano vedo che l’intero posto e’ stato riorganizzato e tutte le ‘divisioni’ fatte con cartone e scotch sono state rimosse. Noto anche che il "mio" pc e’ sparito. Acchiappo al volo CL.

IO – Dove e’ finito il computer che usavo io?
CL – Ah, sei arrivato, allora possiamo…
IO – DOVE E’ FINITO?
CL – Ah, penso sia stato riassegnato…
IO – Oh che bello. Voi lo sapete vero che l’unica copia aggiornata del programma stava su quel computer vero?
CL – Ma il backup del sistema…
IO – L’ho messo bene in chiaro e per iscritto l’ultima volta che sono stato qui. Ed il tuo capo ha pure firmato il foglio. Quindi se ve lo siete persi, l’unica e’ ricominciare da capo. E questo non e’ correggere errori.

Detto questo, me ne sono andato e non ci sono piu’ tornato.

Effetto dissolvenza wibblidi-wobblidi

Poco tempo dopo, DaBoss ha deciso che Windows era la scelta giusta ed ha iniziato a proporre sviluppo su Windows ed installazione di reti Windows (NT) invece di Novell. In seguito sono finito "distaccato" presso $succhiasangue, dalle quali sgrinfie sono uscito solo con una lettera di dimissioni nella tasca anteriore ed un nuovo contratto con un’altra societa’ nella tasca di dietro.

Che cosa ho imparato dall’esperienza di $formaggini? Che "perche’ ci pagano" non e’ mai una ragione valida.

Il grosso problema di quel posto (e della loro procedura di "accettazione") era che SL ed il resto del "management" avevano abbastanza autorita’ da starnutire se proprio non potevano farne a meno e, se qualcuno gli controfirmava un ordine apposito, soffiarsi il naso. Ma chi veramente comandava erano i signori magazzinieri, quelli che scambiavano il Grana con il grano. Quelli che semplicemente decidevano cosa volevano e cosa non volevano. E dato che loro portavano i soldi, il loro volere era legge assoluta.

Certo, una figura "ducesca" avrebbe potuto emergere dal marasma ed applicare un certo metodo alle cose, far capire che i magazzinieri si possono sostituire se necessario e che una procedura piu’ efficiente che non richiede infinite iterazioni che non portano a nulla e’ meglio di una procedura che da’ all’utente finale l’assoluto controllo della situazione. Ma dubito che in una realta’ come quella avrebbe funzionato.

Bene, questo conclude la faccenda. Come dite? Cos’e’ sta’ storia di $succhiasangue? Eh… quella e’ un’altra storia.

Davide

legenda personaggi

(continua dalla parte precedente)

Comunque, a parte la personalita’ telefonica di SL e le stramberie del posto le cose procedono, il mio programma viene portato in un paio di magazzini per il test di accettazione ed un paio di giorni dopo mi arriva un CL con il responso. “Responso” che mi viene presentato nella seguente maniera:

CL – Hai sbagliato!
IO – ??ma se non ho ancora fatto un tubo?
CL – Il tuo programma fa’ cosi’ e cosa’, invece dovrebbe fare cosu’ e cose’.
IO – Ma veramente la funzionalita’ era chiaramente scritta nell’analisi che abbiamo presentato piu’ di un mese fa, perche’ non l’avete segnalato allora?
CL – Nononono, e’ un errore tuo.

Ora, che io commetta degli errori non e’ una cosa anormale, comunque acchiappo il foglio e mi metto all’opera, dopo una mezza giornata ho la nuova versione 1.1. Un paio di giorni dopo ri-arriva CL.

CL – Hai sbagliato!
IO – ?? N’altra volta?
CL – Il tuo programma fa’ cosu’ e cose’, invece dovrebbe fare cosa’ e cosi’.
IO – Ma l’altra volta mi avevi detto…
CL – Nononono, e’ un errore tuo.

Grrr… comincio a vedere un certo trend nella faccenda, mi rimetto all’opera e presento la versione 1.2. Passano un paio di giorni…

CL – Hai sbagliato!
IO – Che minchia dovrebbe fare adesso?
CL – Il tuo programma fa’ cosa’ e cosi’, invece dovrebbe fare cosi’ e cosa’.
IO – Ma e’ esattamente come era la prima volta!
CL – Nononono, e’ un errore tuo.
IO – (mostrandogli i fogli delle volte precedenti) Versione 1.0, 1.1 o 1.2, scegli.
CL – Nononono, e’ un errore tuo.

Allora ero molto piu’ giovane ed imbecille (come sempre, adesso sono solo imbecille), per cui mi sono limitato a riprendere la versione 1.0 dal backup ed a ri-presentarla. Piu’ tardi, ho avuto una interessante discussione con un altro “consultante” (PL) alla macchina del caffe’.

PL – …che questa e’ la loro procedura standard eh! Loro ti chiamano per fare un programma e ti pagano per un programma, poi, con sta ca$$o di storia dell’accettazione, te ne fanno scrivere 25 di programmi. Ma ti pagano sempre per uno solo…

Messo in guardia sull’andazzo procedo a tenere copia cartacea di ogni modifica richiesta, e faccio anche presente al mio capo di allora che questo che sto facendo non e’ “correzione” degli errori ma e’ sviluppo ex-novo.

Un paio di giorni dopo vengo chiamato dal solito CL e da SL perche’ ci sono “gravi problemi” con l’interfaccia del mio programma.

CL – …quindi se vado in “modifica ordine” lui mi mette in modifica l’ordine.
IO – …e cosa dovrebbe fare altrimenti?
CL – Nooooooo. Questo e’ sbagliatissimo! Che i nostri uomini non sono abituati a questo sistema, quindi noi vogliamo che, premendo F1, metta in modifica i campi 1, 2, 7 e 19, premendo F2, si mettano in modifica solo i campi 5, 12, 43 e 29, premendo F3…
IO – ‘Momento! Tutta questa faccenda e’ completamente fuori standard. Come funziona l’interfaccia stava ben scritto sull’analisi, la stessa analisi che noi abbiamo consegnato due mesi fa e che voi avete approvato. Se l’interfaccia non vi andava bene dovevate dirlo prima. Adesso, cambiare tutto significa sostanzialmente riscrivere la cosa da zero. E questa non e’ “correzione” di errori.
CL – Nononono, e’ un errore tuo.
IO – (il BOFH che era ed e’ in me comincia a svegliarsi) Errore mio un par di coglioni.

In seguito, ho discusso la faccenda con il mio capo di allora, che aveva tanti difetti ma scemo non era. Il suo giudizio della faccenda e’ stato “sono un branco di rincoglioniti”. Comunque, un paio di giorni dopo, siamo li’ con CL, il mio capo (DB) ed SL che discutiamo di questa cosa. In quell’occasione, SL era un po’ distratto perche’ gli avevano appena messo questa cosa magica chiamata posta elettronica e non riusciva a trattenersi dal cliccare ogni 30 secondi per vedere se gli era arrivato un nuovo messaggio. Quindi la sua attenzione era piu’ verso lo schermo del computer che verso di noi.

CL – ..perche’ noi diamo le istruzioni per le modifiche ma lui non vuole apportarle.
DB – (guarda me con aria interrogativa)
IO – Te l’ho detto, quella faccenda sull’input dei campi.
DB – Ma quella e’ una cazzata mastodontica. E comunque e’ completamente fuori standard. Gli standard li avete approvati voi.
CL – Nononono, e’ un errore tuo.
DB – Ma manco pel cazzo. L’interfaccia e’ definita in dettaglio nell’analisi. (guarda SL) Dove’ l’analisi?
SL – (staccandosi per 10 secondi dal monitor e guardandosi intorno nel marasma che circonda il suo tavolo) Ah, l’analisi, si’, deve essere qui da qualche parte (pausa per controllare la posta)… dunque… (apre un paio di scatoloni) Ah, eccola qui.

E procede a ripescare da uno degli scatoloni la nostra analisi, ornata da un paio di segni di tazze di caffe’.

DB – Ma l’avete letta?
SL – Huh? Letta? No, io non l’ho letta…

Dopo l’avvenimento DB mi ha istruito a non fare nessuna modifica all’applicativo ma limitarmi alla correzione di errori comprovati. Cose che non funzionano insomma, per le modifiche di procedere con una nuova offerta.

La cosa non e’ andata giu’ a CL. Un paio di giorni dopo eccolo arrivare alla carica.

CL – C’e’ un gravissimo problema con il tuo programma!
IO – Non fa il caffe’?
CL – Non scherzare che e’ serio! Perde i caratteri!
IO – Che cosa e’ che fa?
CL – Vieni a vedere…

Ci dirigiamo verso il suo tavolo, li’ CL avvia il mio programma, entra in “inserimento ordini”, si prepara ad inserire il codice di un prodotto. Si alza in piedi, flette le dita un paio di volte e quindi si produce in un “frullo” di dita sul tastierino numerico. Ripete la cosa un paio di volte poi esclama trionfalmente:

CL – Ecco! Hai visto? Ha perso un carattere!

Mi rimangio le prime 10-15 risposte che mi vengono spontanee…

IO – Bravo, adesso mettilo per iscritto, che devo andare in ufficio piu’ tardi e questo fara’ ridere tutto l’ufficio per il resto della settimana.

(continua)

Davide

legenda personaggi