Il progetto bicicletta
Com’è possibile che un soggetto completamente a digiuno in materia di software sia capace di dirigere un progetto senza che nessuno se ne accorga? Non dovrebbe essere evidente la sua incompetenza? Ed il progetto, non dovrebbe fallire clamorosamente? Eppure, questi loschi figuri conservano il loro posto di lavoro per anni (normalmente fino a quando l’azienda fallisce). La chiave di questo mistero risiede nel progetto bicicletta.
A grandi linee, le fasi di un progetto bicicletta sono: Analisi dei requisiti, progettazione, implementazione, fase di prova, consegna, revisione. Durante la fase d’analisi dei requisiti, il cliente dà informazioni sulle sue richieste, durante la fase di progettazione si da forma al prodotto, durante la fase d’implementazione si programma, durante la fase di prova si verifica che tutto sia andato per il meglio.
Le prime quattro fasi possono sembrare le più importanti, ma in un progetto bicicletta, si rivelano del tutto trascurabili. Viene lasciato invece tutto alla fase di revisione (quella che di solito ci tocca).
In queste prime fasi il nostro amico manager non lavora (ricordiamo infatti che semplicemente non ne è capace), si limita a trascinare i piedi. Fino alla fase di consegna non c’è nulla di cui preoccuparsi, basta fare il finto tonto. Ma certo, bisogna avere poi qualcosa di tangibile, qualcosa da far vedere alla direzione durante le riunioni. Da dove lo si recupera? Basta scaricarlo da internet o comprarlo. Poniamo che il cliente abbia bisogno di un sistema di workflow, accessibile via internet e che sia scalabile. Bene, si va allora su un motore di ricerca e si digita “cheap web-based workflow system java source code download”. Si naviga un pó, si cerca un prodotto colorato in modo futuristico, si estrae la carta di credito, e voilà. Il progetto bicicletta ha preso forma.
Dopodichè, il nostro amico manager sceglie una squadra di sviluppo per le fasi due, tre e quattro. L’esperienza gli ha insegnato che per progetti bicicletta bisogna scegliere sviluppatori tra i più idioti meglio, affinché non si rendano conto del fregatura (qui si segui il principio del “re nudo”).
Si comincia a sospettare che nelle scrivanie vicine si sta eseguendo un progetto bicicletta quando il team di sviluppo-merdoso si fa dei bei pompini. Si scambiano delle perle pompose, del tipo: “i canali di intercambio d’informazione sono molto chiari”, “il fattore usability è determinante nel disegno dei javabeans”, “ho incrementato i parametri del costruttore, ti mando il file punto class via mail”, o ” questo JSP ha tremila righe perché ho applicato un pattern FACADE di accesso concentrato”.
Due mesi dopo arriviamo alla fase di prova. Ovviamente il prodotto è una merda. Però le prove sono a carico della stessa squadra, e ogni scarrafone è bello a mamma sua. Quindi con la testa ben in alto, si crea un file zip, un manuale d’installazione, e consegna tu, Carletto, che a me mi vien da ridere. Stato del progetto? Consegnato. Venerdì notte. Cenone per il progetto. Applausi, risate, altri pompini. Lunedì arriveranno le sorprese.
Adesso illustriamo la fase di revisione con un esempio grafico:
Il progetto porsche.
Arriva il lunedì e apri la posta. Oggetto: “Problematiche nel progetto Porsche”. T’ingaggiano per “un paio di giorni” per “dare una mano” con “qualche bug”. Riunione tra un quarto d’ora. Entri nella sala riunioni. Lì c’è il nostro amico manager. Ti spiega la storia: il progetto porsche è di importanza vitale per l’azienda. Hanno applicato moderne techiche di disegno e implementazione è sono riusciti a consegnare al cliente un prodotto perfettamente compatibile con i requisiti del cliente: un Porsche decapottabile, sicuro, leggero, veloce, a basso consumo energetico e di basso costo. E’ stato fatto rapidamente e bene. Un successo. Nella fase di revisione sono sorte alcune piccole problematiche che bisogna sistemare.
Bene. Vediamo il prodigio. Entriamo nell’hangar del progetto porsche, e lì c’è la creatura: una bicicletta. Da passeggio. Senza cambi nè niente. Ha un adesivo dietro al sellino con il logo dell’azienda e la parola “PORSCHE”. Nella cesta ha un certificato ISO9000. A questo punto normalmente tu vai in collera e cominci a gridare che vuoi vedere l’amministratore, i soci fondatori, i clienti, gli azionisti, il papa. Desideri veder impiccati tutti i responsabili in pubblica piazza.
In seguito ti portano al ufficio di Risorse Umane, ove tisomministrano la terapia combinata “Ludovico/Stanza101″. La bambola delle R.U., che sovente ha nomi del tipo “Maika” o “Ivon” e si veste con quei tailleur di pantalone nero e tacchi stile puttanone-in-carriera-con-MBA, ti interroga con la sua voce Valium 500:
[Ivon] Signor Fuckowski, quali sono le sue lamentele rispetto al progetto porsche?
[io] MA QUALE PORSCHE?!?!
[Ivon] Il progetto Porsche, uno dei più importanti…
[io] [io] Massì, massì!! Guardi che l’ho imparata bene la filomena! È una bicicletta del cazzo! E io devo farla diventare una Porsche in due giorni, con un cacciavite ed un pennello Cinghiale!!
[Ivon] Signor Fuckowski, è vero che il porsche presenta alcune problematiche, ma….
[io] BICICLETTA!! BICICLETTA!!
[Ivon] Signor Fuckowski, sta attraversando una crisi personale? Dev’esserci un motivo che giustifichi il suo atteggiamento negativo circa il porsche.
[io] No. Sto divinamente. O almeno stavo, fino a quando ho visto la bicicletta.
[Ivon] Stanza 101, signor Fuckowski .
Stanza 101. Sedia con cinghie. Camicia di forza. Loghi dell’azienda. Certificati di qualità. Proiettore XGA. Schermo panoramico che presenta un’enorme bicicletta da passeggio. Lì ti aspetta l’amministratore dell’azienda.
[amministratore] Signor Fuckowski, descriva per cortesia questo porsche.
Mi risparmierò i dettagli della tortura, ma dico solo che c’entrano dissertazioni sull’atteggiamento positivo, l’adesione alla visione dell’azienda, l’auto-motivazione, le scritte in piccolo sul contratto. In sintesi, se non vedi il porsche sei disoccupato.
Dopo il pranzo sei già perfettamente motivato, assistendo a una conference call tra l’azienda, nella persona del manager, e il cliente, nella persona di un consulente con l’abito nero e la cravatta allucinogena, assunto ieri, che guadagna 100 all’ora più le commissioni, e che non ha nessun interesse nel dire “mettetevi la bicicletta dove sapete” e prendere 25 euro per quindici minuti.
[consulente] Bene, vediamo di chiarire le problematiche riguardanti il porsche. La prima cosa che abbiamo notato è che mancano due ruote.
[manager] Sí, ci siamo decisi per il disegno minimalista che si accorda meglio alla nostra visione d’azienda: “pratico, funzionale, ottimo”..
[consulente] Vedo. Ma un porsche di due ruote non si sposa bene con il nostro modello di business. Ci serve con 4 ruote.
[manager] Credo che potremo rifattorizzare il porsche e fare un clone per aggiungere due ruote in più, vero? - stavolta guarda me.
[io] Sí, hahaha!! In cazzeggio!!! Dammi un’ora.
[consulente] Perfetto. Bene, il secondo problema. Non troviamo la capotte.
[manager] Sí. Lo volevi decapottabile, no? Beh, noi abbiamo semplificato molto l’usabilità eliminando la capotte.
[consulente] bene ma, non solo volevamo toglierla all’occorrenza, ma vorremmo anche poterla rimettere.
[manager] Ah. Questo non era specificato nei requisiti iniziali, quindi lo consideremo come funzionalità extra e quindi la fattureremo a parte. Che impatto ha questo nuovo requisito nel sistema? - mi guarda di nuovo.
[io] Fortunatamente le interfacce sono molto pulite, quindi possiamo modificare lo strato esterno senza intaccare il kernel, hahahha.
[consulente] Perfetto. Un’altra cosa, dove sono la serratura e la chiave? chiunque potrebbe rubarci il porsche.
[manager] Ci siamo decisi per un modello multiutente per l’implementazione iniziale, pero potremo aggiungere un modulo di sicurezza al sistema, no?
[io] Sìììì!! Precisamente ho qui un modulo di encriptazione SSL per porsche!!
[consulente] Ottimo. Solo due problemini ancora. Viene richiesto troppo sforzo all’utente per utilizzare il sistema. Potreste sostituire i pedali con un motore?
[manager] Inizialmente volevamo che l’utente avesse la massima libertà d’azione, e per questo motivo abbiamo scelto un modello di utente pesante.
[consulente] Va bene, ma troviamo che la quantità di lavoro lasciata all’utente sia eccessiva.
[manager] Possiamo arrivare a un compromesso ragionevole tra la libertà dell’utente e l’automatizzazione dei processi, non è vero?
[io] Indubbiamente. Sostituiremo il motore a giri assistito da pedali per uno compatibile assistito da pistoni. Forse bisognerà aggiungere un modulo di stoccaggio esterno per carburante, ma lo potremo sempre mettere nella cesta, hahaha.
[consulente] Sono con te al cento per cento. L’ultima cosa: il sistema non ha superato le prove di rendimento. Tra i requisiti figura che il sistema deve raggiungere i duecento all’ora.
[manager] Il rendimento è sempre variabile, a seconda della piattaforma. Le specificazioni di questo sistema sono “autostrada di ghiaccio con 70% di pendenza discendente”.
[consulente] Bene, verificherò quale piattaforma stiamo utilizzando. Ma credo che avremo bisogno di più velocità.
[manager] Possiamo sempre perfezionare il kernel, non è vero?
[io] Vero com’è vero che mi chiamo Fuckowski
[consulente] Molto bene signori. E’ stato un piacere.
Tre del mattino. Un thermos di caffé. Un secchio di vernice, un cacciavite. E una bicic… un porsche.







