• Búsqueda

  • Últimas entradas

  • Páginas

  • Tags

  • Temas

  • Archivos

  • Activismo

  • Telekomor

  • Meta

  • 02 de febrero de 2005

    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.


    Traducción:
    Sol Kawage [email][web]

    Fabrizio Ferri Benedetti [email][web]

    31 de enero de 2005

    Qual’è la parte più difficile del lavoro di uno sviluppatore di software? L’architettura, l’analisi funzionale, tecnica, la programmazione? No. L’aspetto veramente duro è dover sentire puttanate.

    Ricevi una mail dall’IT manager, quell’individuo che secondo il suo curriculum ha “collaborato nella concettualizzazione di progetti di convergenza” ed è stato ” direttore di espansione di strategie di quarta generazione”, e il cui lavoro consiste in inoltrare le mail dei clienti ai tecnici e viceversa, e leggere cose su internet per avere qualcosa da dire (con Google e un paio di filtri sul client di posta, l’azienda risparmierebbe 80.000 euro l’anno). La mail ha come oggetto “Brainstorming”. Ed è lì che sei fottuto.

    Il “brainstorming” o “tempesta di cervelli” è (o dovrebbe essere) la riunione in cui tutti portano il proprio talento o esperienza per trovare soluzioni ottimali ai problemi. La realtà è che nella tempesta di cervelli, il manager di solito mette la tempesta e tu metti il cervello. E nella tempesta, come nel mare mosso, il guadagno è per i pescatori. Tu pensi, abbozzi, trovi soluzioni, che un motivo c’era se volevi diventare ingegnere. Lui si segna il gol, che un motivo c’era se ha fatto un master in “strategy business JabbaDabba”.

    Così arrivi in sala riunioni con la con la puzza al naso. Lì c’è lui, con il portatile, la tazza di caffé, e un mucchio di carte (di solito stampe delle mail dei clienti con le loro richieste, ovvero, il problema in sé, e neanche un foglio in più che dica che ha impiegato del tempo a trovare soluzioni a niente).

    Sai già a cosa ti esponi. Ti chiederanno il ben noto “e adesso che faccio” ma senza dare nell’occhio. Di soppiatto. Come se tu fossi un imbecille. Ma non finisce lì: sarai la cavia sulla quale testare gli ultimi discorsetti sentiti nei forum o nei “cookbooks”, tu li accetterai o li rifiuterai, li correggerai, ed infine aiuterai il profilarsi di quella superficiale saggezza, quell’arte di “fare finta di avere ragione” (vedasi Schopenhauer) con la quale questi individui giustificano buste paga esorbitanti davanti alla direzione (che normalmente sa solo rendere pan per focaccia).

    Così, te la prendi sul personale. Bisogna mettere in chiaro che
    A) il pane è il pane, e una focaccia è una focaccia, vale a dire, un’idea è un’idea e una stronzata è una stronzata, e tu sai distinguerle bene
    B) Si può fare della demagogia discorrendo sul sesso degli angeli o sull’arte astratta, ma non sul software
    C) non si impara su un forum in un’ora quello che ti è costato diversi anni di università, altrettanti di lavoro, molto caffé e molti straordinari
    D) un imbecille con un libro non è un ingegnere
    E) Un master, una cravatta e un palmare fanno pendant, ma non donano buon senso a chi non ce l’ha.

    Insomma, che cominci il circo. Mettiti le cinture. Aggrapati con forza ai tuoi principi, perché stanno per applicarti la cura Ludovico (vedasi Arancia Meccanica). Ti immobilizzeranno su una sedia, ti drogheranno, ti terranno le palpebre aperte con dei supporti, e ti costringeranno alla visione di due ore di Power Point. Ti sottoporranno a spaventose torture psicologiche con il duplice obiettivo di ottenere informazioni e contemporaneamente convincerti di realtà alternative.

    A seguire riporto frammenti reali (do la mia parola d’onore) di riunioni con il mio attuale IT manager circa diversi progetti Java e VB nei quali “abbiamo” lavorato.

    Perla 1: Hibernate

    [manager] Cosa utilizziamo per i dati?

    [io] Usiamo Hibernate

    [manager] E’ meglio usare Entity Beans

    [io] Perché?

    [manager] Entity Beans sono compatibili con J2EE, e inoltre stanno in un pool, Hibernate non ha pool e quindi va più lento.

    Quando stavo per spiegargli la stronzata che aveva detto, erano così tante le idee che mi si sono accumulate in testa di colpo che mi era subentrato uno stato di shock, e dovetti procacciare un bicchere d’acqua. Credo che questa sia una specifica tecnica di argomentazione, che dovrebbe chiamarsi “è tanto grande la cazzata che non si può ribattere”. Se qualcuno ti dice “due più due fa cinque”, si può argomentare che fa quattro. Se qualcuno dice che “due più due fa una costellazione vicina a Alfa-Centauri”, si può solo rispondere “ma di che minchia parli?”; aloro volte ti possono dire “Si vede proprio che non hai fatto un Master JabbaDabba”

    Perla 2: Easy Upgrade

    Eravamo in riunione con dei clienti americani ai quali avevamo venduto un programma (tanto per chiamare in qualche modo quella monnezza programmato da un “senior con 10 anni d’esperienza” e che io ho dovuto mantenere successivamente). Il processo d’installazione consisteva in decomprimere un file zip nel disco fisso e poi eseguire un setup.exe (non funzionava installando direttamente dal CD). Il file zip includeva le cartelle della base dati. Ogni volta che gli passavamo la nuova versione, se non volevano perdere i dati precedenti, dovevano rinominare la base dati vecchia, installare la versione nuova completa (bisognava per forza installare la base dati nuova, perché parte della logica e delle risorse del programma risiedevano lì – non chiedetemi perché, chiedetelo al “senior”-), e poi importare le tabelle con degli script. (ci ho messo una settimana affinché il tecnico della filiale giapponese lo facesse correttamente).

    [cliente] Potreste semplificare il processo d’installazione?

    [manager] Si, produrremo un processo d’installazione che all’inizio faccia un diff come in Source Safe ed installi solo ciò che si è modificato o aggiunto

    Sono stato lì un attimo a dubitare se quest’uomo sapesse che il codice sorgente vada compilato.

    Perla 3: Interfacce magiche

    In questa riunione mi chiedeva di disegnare un portale (una specie di carrello della spesa con i servizi dell’azienda), e per risparmiare tempo voleva che lo facessi pensando alle necessità e alle specifiche di un solo cliente, il primo che eravamo riusciti a inchiappetare.

    [io] Ma se faccio il portale specificamente per un cliente, non potremo riutilizzare il codice. Vuoi che disegni la logica in forma generica, anche se mi porterà via un pò più di tempo?

    [manager] No, non abbiamo tempo.

    [yo] Allora quando avremo un secondo cliente, dovremo fargli un altro portale diverso.

    [manager] No, riutilizzeremo quello che faremo ora

    [io] Allora, lo faccio generico, no? Più tempo….

    [manager] No, fallo specifico, ma tenendo ben presente che lo riutilizzeremo

    [io] Scusa, spiegami con quale tecnica creo velocemente qualcosa di specifico ma riutilizzabile

    [manager] Unicamente tiene pulite le interfacce.

    Mi son chiesto se esisteva un “Omino Bianco Design Pattern”. Poi ho cercato di farmi spiegare come si fa a programmare una logica specifica che implementi un’interfaccia valida per tutti, e ammesso e non concesso che ci riuscissimo (qualcosa come definire uno standard tipo JDBC e creare diversi drivers), alla fine avremmo riutilizzato solo l’interfaccia (mezz’ora di lavoro?) e quindi eravamo al punto di prima. La sua risposta è impossibile da riprodurre.

    Perla 4: Override autoincremental keys

    Questa volta dovevamo disegnare una logica di business transazionale che operava su due sistemi diversi, un workflow e un software di preventivi (entrambi con il proprio API). Bisognava mettere in relazione entrambi per far sì che quando un cliente chiedeva un preventivo, si creasse un compito nuovo nel workflow e un preventivo nuovo a lui associato.

    [io] Dobbiamo creare un metodo che automaticamente inizi una transazione, aggiunga un compito al workflow, conservi l’ID, poi aggiunga un preventivo, conservi l’ID, registri la relazione tra i due ID e faccia “commit”

    [manager] Per risparmiare tempo facciamo sì che l’ID del compito e l’ID del preventivo siano sempre uguali, così non dobbiamo metterli in relazione. (QUesta da sola potrebbe essere la Perla 4, ma non è finita)

    [io] Guarda, anche se potessimo specificare noi le chiavi, dovremmo sapere quali ID abbiamo usato per generare i nuovi, e ciò sarebbe peggio che mettere in relazione due ID. Inoltre, le chiavi sono campi autoincrementali sia nel workflow sia nel sistema dei preventivi, per cui non possiamo specificarle noi a nostro piacimento.

    [manager] Ma c’è un meccanismo negli Entity Beans che permette di specificare le key dei registri inseriti.

    Dopo essermi ripreso dallo shock, mi sono fatto un trip col meccanismo:

    EntityBean: InsertTaskWithKey(55)
    DataBase:SQLException:KeyViolation
    EntityBean:CazzoTiHoDettoDiInsertTaskWithKey(55)
    DataBase: e va bene!

    Perla 5 – Java Word Parser

    A volte gli utenti del portale di servizi suddetto caricano file formato Word affinché l’azienda (che si occupa di ricerca di contenuti) li traduca a diverse lingue. Bisogna stimare il costo della traduzione automaticamente, per dare al cliente un preventivo immediato. Bisogna unicamente contare il numero di parole nel documento e moltiplicarle per il prezzo per parola stabilito.

    [manager] Come possiamo rendere automatici i preventivi?

    [io] Devo cercare una libreria Java per file doc, integrarla nel portale, e creare una funzione che mi renda il numero di parole.

    [manager] No, sai che ti dico? facciamo una cosa ancora più veloce. Possiamo riutilizzare le macro di Word che hanno nella sezione di Prova.

    Facile. Abbiamo bisogno di un semplice “Enterprise Word Server” che possa girare su Solaris, che possa essere installato in cluster, e al quale si possa accedere via RMI.

    Spero che grazie a questi esempi il mondo capisca la mia sofferenza. Alla prossima.


    Traducción:
    Sol Kawage [email][web]

    Fabrizio Ferri Benedetti [email][web]

    06 de diciembre de 2004

    “Plantez la graine de l’avarice dans la fertile terre de la stupidité et vous obtiendrez la belle fleur de la merde”.
    (Confucius)

    Tout commence avec un délire de grandeur d’un nain mental qui a toujours envié tout ce qu’il ne méritait pas. Peut-être un complexe d’infériorité chronique, peut-être avoir vécu à l’ombre d’un grand frère à qui tout réussissait, ou alors trop de télévision. Toujours est-il qu’un jour fatidique arrive ou notre nain mental, avec beaucoup d’efforts, obtient une licence. Ce soir-là, il monte sur une colline, diplôme en main, le rouge crépuscule dans son dos, lève les yeux et crie au ciel:

    “Avec Dieu comme témoin, je jure qu’un jour je serais quelqu’un !!… Avec Dieu comme témoin, je jure qu’un jour je donnerais des conférences!!…Avec Dieu comme témoin je jure qu’un jour j’aurais une armoire pleine de costumes d’Armani!! Avec Dieu comme témoin je jure qu’un jour, je boirais le café avec un président!!”

    Alors se produit le miracle de la métamorphose, mais à l’envers. Dans ce cas un frêle papillon meurt et une grosse chenille gluante naît. Souhaitons la bienvenue à Monsieur Don Capullo(1), visionnaire, entrepreneur, directeur. Une cravate, un peu de gel, un attaché-case noir avec fermeture dorée, un balai dans le cul. Un déséquilibre dans le système vient de naître: l’alter ego Don Capullo achètera des choses que Nain Mental ne pourra pas payer. Et jusqu’a ce que quelqu’un s’en rende compte, des dettes seront crées. Des dettes que nous devrons payer.

    Don Capullo est un type très culte. Il a lu cette oeuvre d’art de la littérature universelle, “qui m’a volé mon fromage?”. Ça lui a pris du temps, mais il a compris le message: pédé le dernier, et celui qui arrive derrière, qu’il fasse avec. Don Capullo veut le fromage. Où est à l’heure actuelle le fromage? Sur Internet. La graine en forme de modèle de commerce a été plantée dans l’attaché-case noir. La fleur de la merde ne se fera pas attendre. Smoke Solutions est né, que la représentation commence!

    Le pas suivant c’est monter la scène. Il faut louer une cage pas chère dans n’importe quel zoo technologique et il faut déposer un nom de domaine aguicheur, quelque chose qui suggère expansion, valeur, futur, en définitive “nous somme encore petits, mais bientôt nous allons doubler votre investissement”. Il est recommandé de lui donner un air impérial (Rome, ou alors l’Egypte) qui suggère grandeur culturelle et un nuage anglo-saxon qui suggère nouvelle technologie. Entelequisys, Intelectis, Singergius, Keopsolutions, Evolucius, Netsupreme… les combinaisons sont infinies.

    Maintenant il faut les acteurs. L’acteur idéal est celui qui croit réellement en son rôle. Les petits poussins fraîchement sortis de leurs coquilles et les vieux corbeaux malades sont les profils idéaux. Don Capullo va s’entourer d’adeptes et leur racontera sa vérité : «Je suis le fils du futur, j’ai vu la lumière du demain. Celui qui croira en moi découvrira la vie éternelle. Mais vous devrez avoir foi et ne jamais succomber à la tentation.» C’est-à-dire, tant qu’on va croire au conte de fée, on va avoir un emploi à vie (ha, ha), et que si un jour quelqu’un affirme «ce type n’est qu’un nabot mental et un comédien» on va le condamner au bûcher. C’est le démon qui apparaît sous la forme d’un programmeur qui se croit intelligent. C’est l’ange déchu, qui veut arriver plus haut que dieu.

    L’histoire nous montre l’effectivité de ces structures basées sur le «on change le pain et la consolation par la foi aveugle». Quelques unes durent déjà depuis deux mille ans.

    Arrive le grand jour de la première. Tous les acteurs connaissent leur rôle, qui a été repartit en Power Point, et ils l’adorent. Celui qui à acheté le switch est l’expert en réseaux intelligents, celui qui a mis en marche le serveur l’expert en déploiement de projets distribués, celui qui a mis le “s” derrière l’http notre expert en sécurité de l’information, celui qui a inclus “encoding=UTF-8″ dans l’XML notre expert en internationalisation, et celui qui a écris le JSP de mille lignes sans un seul include ou usebean, notre gourou Java. Trac. Le rideau se lève. Le public, les possibles investisseurs, remplissent la salle. Les lumières s’éteignent, le projecteur s’allume. F5, commencer présentation.

    Pendant deux heures nous nous promenons dans le demain. Automatisation, intelligence artificielle, navettes spatiales. Téléphones mobiles avec vidéoconférence holographique en 3D. Télé transporteurs dimensionnels. On va vous positionner dans le futur. On va vous rapprocher de vos clients. On va vous éloigner de votre concurrence. Encore mieux, on va désintégrer votre concurrence ! On va vous mettre dans le lit de vos clients ! On va doubler, tripler, MILLIONIFIER VOTRE INVESTISSEMENT ! JUSQU’OÙ VOULEZ VOUS ARRIVER?

    Fin de la représentation. Applaudissement, larmes d’émotion. Quelques investisseurs se frottent déjà les mains. On dit que l’assesseur financier d’un président qui veut investir les fonds publics pour améliorer la qualité de vie de son pays est là incognito, seulement en échange d’un paquet d’actions au nom de son beau-frère, qui va dévier le cinq pourcent de l’investissement à des mains amies au même instant de sa sortie en bourse (on n’est jamais contre une petite îles aux caraïbes ; ce sont les petits plus qu’offre le fait de sacrifier sa vie pour autrui et le bien-être de son peuple).

    Avalanche de questions. De quelle couleur vont être les navettes spatiales? Platine avec des nervures dorées. Quelle portée auront les télé transporteurs? D’un bout à l’autre de la planète en une nanoseconde, en combinant les super cordes et les trous noirs. Quelle autonomie auront les mobiles holographiques? Illimitée grce à la fusion froide. Et comment allez-vous faire tout ça? demande quelqu’un. Silence gêné. Les petits poussins et les vieux corbeaux regardent Don Capullo, qui se lève avec son meilleur sourire d’auto complaisance et leur parle des synergies, des convergences, David et Goliath, les pyramides, Apple et le garage de Steve Jobs, Yahoo et la camionnette de Jerry Yang et David Filo. La graine est là -il pointe son attaché-case- il faut juste l’arroser.

    Et voilà, presque comme si de rien n’était, on a cinquante millions d’euros dans un compte des îles Caïman. Maintenant il faut faire preuve d’ingéniosité et commencer à bien arnaquer. Il faut justifier chaque pincée prise au sac, alors il faut de l’imagination. Le premier canal de détournement de fonds c’est le salaire (vous me direz si 8.000 euros nets par mois n’est pas un salaire excessif pour un simple balai truffé de gel). Mais on s’habitue vite au salaire, la maintenance de la Mercedes est chère, et la villa dans la montagne n’est pas donnée. Il arnaquer plus, et mieux.

    À ce moment on utilise la méthode facile, le donuts égyptien. On sort les donuts (ces cinquante millions d’euros des Caïmans), et des plein d’amis sortent de nulle part(2). Un ami qui te fait un software, un autre qui te vend le hardware, et un troisième qui te décore le bureau.

    Alors on se met et position égyptienne et pendant qu’avec une main on caresse le dos à notre nouvel ami, avec l’autre on choppe la commission en noir. Si les commissions sont trop petites, on peut toujours s’acheter soi-même moyennant des entreprises fantômes au nom du cousin Eustache. Exemples pratiques : projet de décoration de bureau (une tableau et deux pots de fleurs), douze milles euros. Système de CRM (une base de donnée Access faite en une heure) cent mille euros. Et on continue.

    Pendant quelques temps la vie est merveilleuse. On donne des conférences, on porte des costumes d’Armani, on prend le café de temps en temps avec le président. Escapades à la montagne, aux caraïbes, balades en décapotable. Voilà un triomphateur. Mais les donuts ne se multiplient pas. Un jour, quelqu’un se gratte la poche et demande : «où sont mes millions?». On commence à tirer du fil et on arrive à la pelote : l’attaché-case. Montrez vos cartes, monsieur Don Capullo. Ouvrez l’attaché-case.

    Don Capullo convoque une macro réunion. Employés, assesseurs, directifs, investisseurs. Même le cousin Eustache est là. La boîte de Pandore va s’ouvrir. Don Capullo monte à l’estrade, dépose l’attaché-case devant un ventilateur de dimensions considérables, marque la combinaison, et l’ouvre.

    Tout le monde est noyé par la merde. Les têtes tombent, les sanctions volent, les dénonces sont légions. Ceux qui finissent le plus mal sont les poussins, leur rêve d’experts-en-dérivation-de-forloies est fini. Dans la prochaine entreprise il faudra revenir sur Terre, apprendre à coder, et transpirer sec. Certains ne s’en remettent jamais.

    Une fois le cirque est démonté et la tempête est passée, il faut récupérer le fric. Don Capullo se cramponne au trop connu «Tatata, tout investissement est un risque», et se lance à nouveau dans le fromage, peut-être dans le brevet des gènes. Alors c’est comme toujours. On informe la presse du classique «CRISE DANS LE SECTEUR», «L’ÉCONOMIE ENTRE DANS UNE NOUVELLE PHASE RÉCESSIVE», «ÉTAPE DE MÉFIANCE», etc. Si l’investisseur était une banque : on baisse les salaires et on monte les intérêts. C’était une entreprise téléphonique : on baisse les salaires et on monte les prix des communications. Nous, on est baisés comme d’habitude, avec le chantage habituel : on se serre la ceinture ou on ferme l’entreprise.

    Il y a un cas extrême : quand il s’agit des fonds publics d’un pays et que l’arnaque est à grande échelle, la fleur de la merde est arrosée en abondance et finalement il donne ses fruits : les casseroles.

    _______
    (1) NdT : Capullo en espagnol veut dire chenille, mais aussi, plus vulgairement, gland
    (2) NdT : référence a une pub espagnole : «sacas los donetes y te salen amigos de todas partes»

    Traducción:
    Leo Lozes [mail]

    04 de noviembre de 2004

    Comment est-ce possible qu’un individu complètement ignare en matière de software soit capable de diriger un projet sans qu’on se rende compte de son incapacité? Son incompétence ne devrait pas être évidente? Le projet ne devrait pas échouer misérablement? Au contraire, ces individus conservent leur poste pendant des années (normalement jusqu’à la faillite de la boite).

    La clé de ce mystère est dans le projet bicyclette.

    Grosso modo, les phases d’un projet bicyclette sont : Analyse, design, implémentation, phase de test, livraison, révision. Dans la phase d’analyse, le client explique ce qu’il veut, dans la phase de design on donne forme au produit, dans la phase d’implémentation on code, dans la phase de test on vérifie que tout marche bien. Les quatre premières phases peuvent paraître les plus importantes, mais dans un projet bicyclette en fait on peut en faire abstraction sans problèmes. On attend la phase de révision pour s’occuper de tout (mon boulot normalement).

    Dans ces premières phases notre ami manager ne travaille pas (je vous rappelle qu’il en est juste incapable), il essaye simplement de s’en tirer. Jusqu’à la phase de livraison du produit il n’a rien à craindre, il faut juste dissimuler. Mais bien sûr, il faut avoir quelque chose de tangible, quelque chose à montrer à la direction dans les réunions. On sort ça d’ou? On le downloade d’Internet ou on l’achète, simplement. Mettons que le client à besoin d’un système de workflow accessible par web et qui soit scalable. Bon, alors on va sur un chercheur web et on introduit “cheap web-based workflow system java source code download”. On navigue un peu, on cherche un produit avec des couleurs futuristes, on sort la carte de crédit, et voilà. Le projet bicyclette prend forme.

    Ensuite notre ami manager manager désigne une équipe de développement pour les phases deux, trois et quatre. L’expérience lui a montré que pour des projets bicyclette il faut choisir des développeurs aussi demeurés que possible pour qu’ils ne se découvrent pas le pot aux roses.

    On peut commencer à se douter qu’à la table d’à côté un projet bicyclette prend forme quand l’équipe de développeurs-demeurés joue au 69 professionnel. Il s’échangent des commentaires-perles très pompeux, comme par exemple “les canaux d’échange d’information sont très propres”, “le facteur d’usabilité est déterminant dans le design des javabeans”, “j’ai incrémenté le numéro de paramètres du constructor, je t’envoie le point class par mail”, ou “ce JSP contient trois mille lignes parce que j’ai appliqué un patron FACADE d’accès concentré”.

    Deux mois après on arrive à la phase de tests. Évidemment, le produit, c’est de la merde. Mais les tests sont effectués par la même équipe, et nos propres enfants ne sont jamais moches. Alors avec la tête bien haute, on prépare un zip, un manuel d’installation, et toi, Carlitos, livre le produit, moi je ne peux pas, je suis mort de rire. État du projet? Livré. Vendredi soir. Souper de projet. Applaudissements, rires, encore plus de 69. C’est lundi que les surprises vont arriver.

    Illustrons la phase de révision avec un exemple graphique :

    Le projet Porsche

    Arrive le lundi, et tu ouvres le courrier. Sujet : “Problèmes avec le projet Porsche”. Ils ont besoin de toi “deux-trois jours” pour “donner un coup de main” avec “quelques bugs”. Réunion dans un quart d’heure.

    Tu entres dans le bureau. Notre ami manager est là. Il t’explique l’histoire: le projet Porsche est un des plus pointus de l’entreprise (on songe que c’est plutôt un pointeur à null). On a appliqué des techniques novatrices de design et implémentation et on a réussi à livrer un produit qui s’accorde parfaitement aux pétitions du client : une Porsche décapotable, sûre, légère, rapide, de faible consommation et faible coût. Un succès. Dans la phase de révision quelques petites incidences ont été détectées et il faut les réviser.

    Bon. Allons voir la merveille. On entre dans le hangar du projet Porsche, et la créature est là: une bicyclette. De promenade.
    Sans changement de vitesse, rien. Il y a un autocollant derrière la selle avec le logo de la boite et “PORSCHE”. Dans la corbeille il y a un certificat d’AENOR. Là normalement on pique une gueulante et on commence à crier qu’on veut parler avec le directeur, les membres fondateurs, les clients, les actionnaires, le pape de Rome. On veut voir quelqu’un pendu sur la place publique.

    Ce qu’il se passe juste après c’est qu’on t’amène dans un bureau des ressources humaines et on t’applique à nouveau le traitement combiné “Ludovico/Chambre 101″. La nana de RRHH, qui normalement s’appelle Maika ou Yvonne et est habillée avec l’uniforme pantalons noirs et talons aguille, style femme corporative avec master en direction d’entreprises, nous interroge avec sa voix de Valium 500:

    [Yvonne] Monsieur Fuckowski, quelles sont vos plaintes par rapport au projet Porsche?

    [moi] MAIS QUELLE PORSCHE!??

    [Yvonne] Le projet Porsche, un des plus pointus de…

    [moi] Oui oui, je connais l’histoire!! Mais c’est que “ça”, c’est une bicyclette, et on suppose que je dois la transformer en Porsche en deux jours, et on m’a donné un tournevis et un pot de peinture!!

    [Yvonne] Monsieur Fuckowski, c’est vrai que la Porsche présente quelques incidences, mais…

    [moi] BICYCLETTE!! ¡¡BICYCLETTE!!

    [Yvonne] Monsieur Fuckowski, vous traversez une crise personnelle? Il doit y avoir une raison pour votre négativité face au projet Porsche.

    [moi] Non. Je me trouve parfaitement bien. Où je l’étais, avant de voir la bicyclette.

    [Yvonne] Chambre 101, monsieur Fuckowski .

    Chambre 101. Chaise avec harnais. Camisole de force. Logos de la corporation. Certifications de qualité. Projecteur XGA. Écran panoramique qui montre une énorme bicyclette de promenade. Là nous attends le directeur de l’entreprise.

    [directeur] Monsieur Fuckowski, décrivez-nous cette Porsche.

    Je vais vous économiser les détails de la torture, mais elle implique des dissertations sur l’attitude positive, la croyance en la vision de l’entreprise, l’auto-motivation, les petits caractères du contrat. Bref, si tu ne vois pas la Porsche, tu te retrouves à la rue.

    Après la pause on est parfaitement motivé, en train d’assister à une conférence-call entre l’entreprise, représentée par le manager, et le client, représenté par un consultant en costume noir et cravate flashy, embauché hier, qui touche 100 euros de l’heure plus les diètes, et à qui ça n’intéresse pas de dire “votre bicyclette vous pouvez vous la mettre là ou je pense” et gagner 25 euros pour un quart d’heure.

    [consultant] Bon, on va réviser les incidences que présente la Porsche. La première chose que nous avons remarqué c’est qu’il lui manque 2 roues.

    [manager] Oui, on a opté pour le design minimaliste qui va avec notre vision de l’entreprise: “pratique, fonctionnel, optimal”.

    [consultant] Je vois. Mais une Porsche avec deux roues ça ne colle pas avec notre modèle de commerce. On a besoin de quatre roues.

    [manager] Je crois que nous pouvons refactoriser la Porsche et faire un clone pour ajouter deux roues extra, n’est ce pas? -il me regarde.

    [moi] Oui, hahaha!!! Facile!!! Donne-moi une heure.

    [consultant] Parfait. Bon, la deuxième incidence. On ne trouve pas la capote.

    [manager] Oui. Vous vouliez une décapotable, non? Alors on a beaucoup simplifié son utilisation en retirant la capote.

    [consultant] Bien, mais on ne veut pas seulement l’enlever, on veut aussi pouvoir la mettre.

    [manager] Ah. Ça n’est pas spécifié dans vos pétitions initiales, alors on va considérer ça comme une fonctionnalité extra et on va le faire payer séparément. Quel impact représente cette nouvelle nécessité ? -il me regarde à nouveau.

    [moi] Heureusement les interfaces sont très propres, alors on va pouvoir modifier la couche externe sans impacts sur le kernel hahaha.

    [consultant] Parfait. Une autre question, ou sont le contact et les clés ? Tout le monde pourrait nous voler la Porsche.

    [manager] On a choisi le modèle Multi-Utilisateur pour l’implémentation initiale, mais on peut rajouter un module de sécurité, non ?

    [moi] Ouiii !! J’ai justement un module d’encryptage SSL pour Porsche ici !

    [consultant] Brillant. Plus que deux incidences. L’utilisateur doit faire beaucoup trop d’efforts pour compléter les tches sur ce système. Vous pourriez changer les pédales par un moteur ?

    [manager] En principe on voulait donner un maximum de liberté d’action à l’utilisateur, alors on a opté pour un modèle de client lourd.

    [consultant] Bien, mais on trouve que la quantité de travail laissé à l’utilisateur est excessive.

    [manager] On peut arriver à un compromis raisonnable entre la liberté de l’utilisateur et l’automatisation des processus, n’est ce pas ?

    [moi] Tout à fait. On va remplacer le moteur giratoire assisté par pédales par un moteur compatible assisté par pistons. On va peut-être devoir rajouter un module de stockage externe pour le combustible, mais on peut toujours le mettre dans le panier, hahaha.

    [consultant] Je vous rejoins cent pour cent. La dernière : le système n’a pas passé les tests de rendement. C’est stipulé dans les requits que le système doit atteindre les deux cents km/h.m

    [manager] Le rendement peut toujours varier selon la plateforme. Les spécifications de ce système sont « route gelée avec pente de 70 degrés ».

    [consultant] Bien, je vais vérifier quelle plateforme on utilise pour l’exploitation. Mais je crois qu’on va avoir besoin de plus de vitesse.

    [manager] On peut toujours optimiser le kernel, n’est ce pas ?

    [moi] Aussi vrai que je m’appelle Fuckowski.

    [consultant] Très bien messieurs. Ce fut un plaisir de traiter avec vous.

    Trois heures du matin. Un thermos de café. Un pot de peinture, un tournevis. Et une bicyc… une Porsche.

    Traducción:
    Leo Lozes [mail]

    Quelle est la partie la plus dure du travail d’un développeur de software? L’architecture, l’analyse fonctionnelle, la partie technique, la programmation? Non. La partie vraiment dure c’est de devoir écouter des conneries.

    Tu reçois un mail de l’IT manager, cet individu qui, selon son curriculum, a “collaboré dans la conceptualisation de projets de convergence” et à été “directeur d’expansion de stratégies de 4ème génération”, et dont le travail consiste à renvoyer les mails des clients aux techniciens et vice versa, et à lire des articles sur Internet pour avoir quelque chose à dire (avec Google et quelques règles d’Outlook la société pourrait économiser 80.000 euros par année). Sujet du mail : “Brainstorming”. Et là tu est déjà baisé.

    Le “brainstorming” ou “orage de cerveaux” c’est (ou devrait être) la réunion dans laquelle tout le monde apporte son talent et son expérience pour trouver les solutions idéales aux problèmes. La réalité c’est que dans l’orage de cerveaux, le manager normalement apporte l’orage et toi tu dois apporter le cerveau. Et dans l’orage, comme dans la rivière agitée, les bénéfices sont pour les pêcheurs. Toi tu réfléchis, trouve et modélise des solutions, c’est bien pour ça que tu voulais être ingénieur. Lui il rafle la médaille, c’est bien pour ça qu’il a fait un master en “strategy business trucmuche”.

    Alors tu arrives méfiant à la salle de réunion. Il est là, avec le portable, la tasse de café et plein de documents (normalement les mails des clients avec leur conditions, c’est-à-dire le vrai problème, et pas un seul mémo en plus qui puisse indiquer qu’il a passé un peu de temps à chercher une quelconque solution).

    Tu sais à quoi tu t’exposes une fois de plus. Il va te demander le typique : “Et maintenant je fais quoi?” mais sans que tu t’en rendes compte. Par derrière. Comme si t’étais un imbécile. Mais ça ne s’arrête pas là : tu vas être le cobaye sur lequel on va expérimenter les derniers discours appris sur les forums ou dans les “cookbooks”, pour que tu les valides ou les rejettes, les corriges, et en définitive aide ton manager à améliorer cette sagesse superficielle, cet “art de feindre d’avoir raison” (voir Schopenhauer) avec lequel cet individut justifie son salaire exorbitant devant la direction (qui normalement ne sait pas distinguer une sardine et un thon.

    Alors tu prends ça comme une affaire personnelle. Il faut expliquer clairement que
    A ) une sardine est une sardine et un thon un thon, autrement dit qu’une idée est une idée et une connerie, une connerie, et qu’on sait les distinguer;
    B ) on peut faire de la démagogie en parlant du sexe des anges ou peut-être d’art abstrait, pas de software;
    C ) on apprend pas dans un forum en une heure ce qui nous a pris quelques bonnes années d’université, quelques autres de boulot, beaucoup de café et autant d’heures supplémentaires;
    D ) un incapable avec un bouquin n’est pas un ingénieur; E ) Un master, une cravate et un PDA c’est joli, mais ça ne donne pas de bon sens à qui n’en a pas.

    La représentation commence. Attachez vos ceintures. Accrochez-vous avec force à vos principes, parce qu’on va vous appliquer le traitement Ludovico ( voir “Orange Mécanique” ). On va vous immobiliser sur une chaise, vous administrer une drogue, accrocher des supports à vos paupières et vous obliger à regarder 2 heures de Power Point. On va vous faire subir des tortures psychologiques avec le double objectif de vous extraire de l’information, et de vous convaincre de réalités alternatives. Ci-dessous je reproduis des fragments réels ( je vous donne ma parole d’honneur ) des réunions avec mon IT manager sur différents projets Java et VB dans lesquels « nous » avons travaillé.

    Perle 1 : Hibernate

    [manager] On utilise quoi pour la couche de données?

    [moi] Utilisons Hibernate

    [manager] Il vaut mieux utiliser des Entity Beans

    [moi] Pourquoi?

    [manager] Les Entity Beans sont J2EE standard, et en plus ils sont dans un pool, Hibernate n’a pas de pool alors il est plus lent.

    Quand j’ai voulu lui expliquer l’énormité qu’il avait dit, les idées ont fusé à une telle vitesse dans ma tête que j’ai subi un choc, et que j’ai du aller me chercher un verre d’eau. Je crois que c’est une technique délibérée d’argumentation, qui devrait s’appeler “la connerie est tellement grande qu’elle devient irréfutable”. Si quelqu’un dit que “Deux et deux égale cinq”, on peut argumenter que c’est quatre. Mais si quelqu’un dit que “Deux et deux est une constellation proche d’Alpha Centauri”, on peut seulement répondre “Mais de quoi tu parles!?”, et on peut te répondre “On voit vraiment que tu n’as pas fait un Master trucmuche”.

    Perle 2 : Easy Upgrade

    Cette fois nous étions réunis avec des clients américains qui avaient acheté notre « application » (pour donner un nom à ce désastre programmé par “un Senior avec 10 ans d’expérience” et que j’ai du maintenir après coup). Le processus d’installation consistait à décompresser un ZIP sur le disque dur et après exécuter un Setup.exe (ça ne marchait pas en installant depuis un CD). Le ZIP contenait les fichiers de la base de données. Chaque fois qu’on leur donnait une nouvelle version, et s’ils ne voulaient pas perdre les anciennes données, il leur fallait renommer l’ancienne base de données, installer la nouvelle version complète (la nouvelle base de données devait être installée obligatoirement, parce qu’une partie de la logique et des ressources de l’application étaient dedans – ne me demandez pas pourquoi, demandez au “Senior”), et ensuite importer quelques tables par scripts (une semaine d’efforts pour que le technicien de la boite japonaise arrive à faire tout ça correctement).

    [client] Vous ne pourriez pas simplifier le processus d’installation?

    [manager] Si, on va créer un processus d’installation qui au début va faire un « diff » comme avec Source Safe et qui va installer juste les fichiers modifiés ou ajoutés.

    Je suis resté là à me demander si cet individu savait que le code source, ça se compile.

    Perle 3 : Interfaces magiques

    Dans cette réunion, « il » était en train de me demander de faire un portail web (une espèce de caddie d’achats avec les services de l’entreprise), et que, pour économiser du temps, je m’en tienne seulement aux nécessités et spécifications du premier client qu’on avait réussi à rouler.

    [moi] Mais, si je crée le portail spécifiquement pour un client, on ne va pas pouvoir réutiliser le code. Tu veux que je modélise la logique de transaction de manière générique, même si ça va me prendre plus de temps?

    [manager] Non, on n’a pas le temps.

    [moi] Alors quand on aura un deuxième client, on va devoir lui faire un portail différent.

    [manager] Non, on va réutiliser celui qu’on va faire.

    [moi] Alors, je le fais générique, non? Plus de temps …

    [manager] Non, fais-le spécifique, mais en tenant compte qu’on va le réutiliser.

    [moi] Voyons, explique-moi avec quelle technique je fais quelque chose de rapide et spécifique, mais réutilisable.

    [manager] Fais simplement des interfaces propres.

    Je me suis demandé si ça existait, un “Mr.Proper design pattern”. Ensuite je lui ai demandé qu’il m’explique comment faire une logique spécifique qui implémente une interface valide pour tout le monde, et si on arrivait à faire ce miracle (quelque chose comme définir un standard genre JDBC et créer des drivers différents), à la fin on n’allait réutiliser rien d’autre que l’interface (une demi-heure de boulot?), donc ça revenait au même. Son discours de réponse est impossible à reproduire.

    Perle 4 : Override autoincremental keys

    Cette fois il s’agissait de modéliser une logique de commerce transactionnelle qui opérait sur deux systèmes différents, un workflow et un software de budgets (chacun avec son API). Il fallait les associer de manière à ce que, quand un client sollicite un budget, une nouvelle tche se créée dans le workflow et un nouveau budget soit associé à celle-ci.

    [moi] Eh bien on doit créer une méthode qui commence une transaction, ajoute une tche au workflow, garde l’ID, puis ajoute un budget, garde l’ID, fasse la relation entre les deux ID dans une base de données et fasse “commit”.

    [manager] Pour économiser du temps fais en sorte que l’ID de la tche et l’ID du budget soient toujours identiques, et comme ça on ne doit pas faire la relation (ça pourrait déjà être la perle nº4, mais non, ça ne s’arrête pas là).

    [moi] Même si on pouvait spécifier nous-même les clés, on devrait savoir quels ID on a déjà utilisé pour pouvoir générer les nouveaux, c’est qui est plus coûteux qu’associer deux IDs. Mais en plus les clés on ne peut pas les spécifier nous-même, dans le workflow et les budgets, les clés sont des champs auto-incrémentables.

    [manager] Mais il y a un mécanisme dans les Entity Beans qui laisse choisir les clés des registres qu’on rajoute.

    Après le choc j’ai commencé à m’imaginer le mécanisme:

    EntityBean: InsertTaskWithKey(55)
    DataBase:SQLException:KeyViolation
    EntityBean:PuisqueJeTeDisQueInsertTaskWithKey(55)
    DataBase: Bon D’accord.

    Perle 5 : Java Word Parser

    Des fois les utilisateurs dudit portail de services uploadent des fichiers en format Word pour que l’entreprise (qui s’occupe principalement de la localisation de contenu) les traduise en différentes langues. On doit pouvoir estimer le coût de la traduction automatiquement pour pouvoir donner un budget au client de façon immédiate. On doit juste compter le nombre de mots du document et le multiplier par le prix par mot établi.

    [manager] Comment on peut automatiser les budgets?

    [moi] Je dois chercher une librairie java pour parser des fichiers doc, l’intégrer convenablement au portail et créer une fonction qui me rende le nombre de mots.

    [manager] On va faire quelque chose plus rapidement. On peut réutiliser les macros de Word que le département d’Evaluation utilise.

    Facile. On a juste besoin d’un “Enterprise Word Server” qui marche sur Solaris, qui puisse s’installer en cluster, et auquel on puisse accéder par RMI.

    J’espère juste qu’avec ces exemples le monde comprenne ma souffrance. À la prochaine.

    Traducción:
    Leo Lozes [mail]