mercato italiano ICT (commento)

se posso prof. mi permetto di rispondere 2 righe al mio collega (in teoria sono anche io studente di questo ateneo…) 😀

ho lavorato per uno dei primi ISP di provincia (1996), per una web agency (1998 / 2001) e dagli ultimi 5 anni a oggi lavoro con partita iva… ho provato anche un paio di esperienze in grosse aziende come H3G (videofonini 3, tramite HP/EMC^2) e Banche Popolari Unite (tramite Accenture)…

quello che ho visto sul mercato _italiano_ è che il 2% delle imprese… i nomi grossi… lavorano come enormi dinosauri… e tutti si fa tranne che lavorare nel modo strutturato di cui parli tu “collega” … software fatto custom, poco documentato, molto spesso poche persone hanno la conoscenza e la tramandano ORALMENTE di collega in collega…

tu parli male del software per la palestrina sotto casa, o per il commerciante o per la piccola società di servizi sotto casa tua… bene… sappi che è il 98% del mercato italiano…

HP, IBM, ACCENTURE… e altri nomoni che ben conosci NON sono in grado di aggredire tale mercato… non mettono in piedi nulla per piccole realtà… ma l’italia è fatta di piccole realtà… bisogna riuscire a fare economia di scala

Buongiorno.it ha fatto soldi mettendo in piedi un’infrastruttura enorme per la gestione delle suonerie e per gli sfondini del cellulare… prodotto ad alto consumo e a basso costo di produzione per singola unità…

quello è il business

o pacchetti pronti, o soluzioni custom per le piccole, piccolissime imprese

e ne hanno bisogno, te l’assicuro… io sono sommerso dalle richieste

per quanto riguarda i vecchi software? beh… ti dico solo che ci sono aziende che vanno avanti ancora con script sed/shell su sistemi operativi del ’95 (Sun OS datatissimo)… e passare tutto al nuovo… costa… parecchio
ho imparato a lavorare come un artigiano… e a saper fare tutto, ad essere elastico… io in primis…

accusi il tuo docente di non esserlo… radicato sui vecchi sistemi… beh… tu come ti muovi? ragazzo non fai scienze dell’alimentazione… hai un problema? su google non c’è? fai come il sottoscritto… apri il codice e vai di grep!

ho ricompilato php/firebird su mac a suon di ricerce nel codice cercando di capire come andava a lavorare il Makefile… su google non c’era NIENTE!!!

cmq, hai sottolineato una cosa… questa università ci insegna un metodo di lavoro strutturato poco applicabile sul mercato italiano… a meno che tu non faccia ricerca in ateneo…

5 thoughts on “mercato italiano ICT (commento)

  1. “tu parli male del software per la palestrina sotto casa, o per il commerciante o per la piccola società di servizi sotto casa tua… bene… sappi che è il 98% del mercato italiano…”

    io non parlo male del software per piccole realtà.. dico solo che non è necessario essere molto competenti, si può utilizzare la primordiale tecnica code-and-fix, non serve scrivere codice leggibile (tanto lo leggono i 3/4 colleghi), manutenibile e aggiornabile. Non servono tecniche di testing avanzate, non serve seguire le best-pratices o i design pattern, e ci si può permettere pure di reinventare la ruota ogni volta.
    Non voglio generalizzare, ci mancherebbe, ci sarà anche chi lavora con tecniche del 2006..
    il mio commento era che la filosofia del “tanto funziona” nella piccola realtà può anche reggere, si può sopravvivere anche scrivendo codice di scarsa qualità ma che funziona..
    questo è il problema..

    “accusi il tuo docente di non esserlo… radicato sui vecchi sistemi… beh… tu come ti muovi? ragazzo non fai scienze dell’alimentazione… hai un problema? su google non c’è? fai come il sottoscritto… apri il codice e vai di grep!”

    Certo che mi devo arrangiare, e infatti abbiamo sempre dovuto fare così.. è ovvio, ma lo scopo del progetto legato al corso non è imparare come FAR PARTIRE la libreria, ma USARLA per cercare di fare qualcosa di intelligente e nuovo, o comunque di imparare qualcosa. Se metà del tempo lo spendo sbuffando, cercando, e provando a interpretare un segmentation fault allora non ci siamo proprio.
    Quello che tengo a sottolineare è che viene riconosciuto dal docente l’inutilità di usare C++ per uno determinato lavoro; un linguaggio completamente managed, con funzioni di libreria di più alto livello che ci allevierebbe da inutili problemi di memory leak ecc, andrebbe benone. Parole anche sue. Il motivo della scelta del C++ è che “così posso metterci mano”, come se il Java o C# fossero completamente differenti. Capisco se volessi usare Ruby…
    e poi stiamo parlando di un docente.. giovane.. se si pensa che sia giusto di continuare con il C++ fino al 2030 allora non dico niente.. cmq al 5° anno lo scopo NON è imparare il C++, ma scrivere qualcosa di utile.

    Fammi sapere cosa ne pensi!!! Ciao…!!
    Mauro

  2. mi hanno detto che sono sull’acido andante nelle risposte… molto probabile visto che sto facendo troppe cose insieme… per cui per il momento mi mordo la lingua 😀

    cmq tempo addietro cercavano una persone con competenze di C++ in ambiente win32 per sviluppare un’applicazione di voice detection… introvabile! (si commenta da se)

    per quanto riguarda il mercato dei piccoli… secondo me la strada per uno sviluppo strutturato e di qualità c’è… basta vedere come hanno collaborato milioni di sviluppatori in tutto il mondo per realizzare software opensource utilizzato da altrettanti milioni di utenti…

    bisogna riuscire a capire come avere un prodotto unico facilmente adattabile e customizzabile per le singole esigenze, una specie di SAP per applicazioni da PMI 😉

    con questo… beh, riprendo a studiare,
    attendo tue idee e commenti in proposito

  3. Per Guido:

    > bisogna riuscire a capire come avere un prodotto unico facilmente adattabile e customizzabile per le singole esigenze, una specie di SAP per applicazioni da PMI

    Lascia perdere … le PMI sono talmente ‘singolari’ che un tale prodotto non può esistere visto che se va bene per n, la n+1 esima chiederà una personalizzazione non fattibile. Piuttosto devo dire che mi è riuscita una cosa folle… un prodotto per una PMI, usato da 2 persone 2, manutenibile !

    Iniziato come sempre accade da una ‘noce’ è diventato una quercia, ma nel frattempo ho applicato le metodologie di Refactoring tutte le volte che mi chiamavano per ‘aggiungere’. Non è bellissimo nè performantissimo, ma funziona e si può capire che cosa fa !

    x Mauro:

    >Certo che mi devo arrangiare, e infatti abbiamo sempre dovuto fare così.. è ovvio, ma lo scopo del progetto legato al corso non è imparare come FAR PARTIRE la libreria, ma USARLA per cercare di fare qualcosa di intelligente e nuovo, o comunque di imparare qualcosa.

    Benvenuto nel mondo degli sfangatori ! Lo sfangatori sono i poveri programmatori che cristonano sulle librerie di terze parti (detti ‘colleghi alle Bahamas’ o ‘dimessi’, ‘licenziati’, fai un po’ tu 🙂 ) per capire come funzionano perchè, come strano cancro in un codice altrimenti orrib… ehm … funzionante, non è possibile toglierlo e rifarlo senza far improvvisamente ‘morire’ l’intero mega-applicativo. In questo frangente si imparano molte cose :
    – maledire chi non mette i commenti al codice
    – maledire il capo/professore/manager che ha scelto di usare la libreria senza capire a che serve e se funziona pagandola cara (o niente … ma la paghi cara dopo …)
    – dissezionare il funzionamento della libreria cercando di immedesimarti nel decerebrato mangiapizza bevipepsi che ha partorito una roba simile solo perchè LUI non ha una vita sociale
    – buttare la fuffa della libreria, inserire QUALCOSA DI INTELLIGENTE per far funzionare bene, commentando e quindi documentando il pezzo (qui sta il trucco, la cosa ‘innovativa’ ed ‘intelligente’ la puoi inserire come tua piccola perla in parti altrui. Le community che lavorano su progetti Open Source lavorano benissimo così…).
    – rimontare ed inserire questa ‘libreria elaborata’ laddove deve essere usata.

    Personalmente il primo applicativo *professionale* (cioè per un cliente … forse del termine ho abusato) l’ho prodotto dopo 2 mesi 2 di reverse engineering di un altro applicativo che il cliente voleva convertire ad altro strumento ed estendere. Si impara molto a guardare il (buon) codice degli altri, ma anche a capire gli errori *metodologici* di quello cattivo.

    C++ è uno strumento, non te ne crucciare.
    Anche con C# e Java si possono fare cose abominevoli e sono sicuro che ce ne sono in giro parecchie, quindi scrivi sempre come se tu fossi un carpentiere e quello fosse uno dei tanti martelli che puoi usare.

    > Vecchi sistemi.

    Non hai idea di quanto sia alta la richiesta di programmatori COBOL ! Centinaia di migliaia di tonnellate di spaghetti code diffuso nelle più grosse aziende del territorio che, pur brutto, fatto in fretta e furia e rappezzato alla meno peggio deve essere manutenuto perchè rifarlo con le nuove tecnologie significa spendere soldi che permetterebbero all’azienda di trasferirsi sulla Luna ! A distanza di 6 anni dalla nascita di .NET Microsoft tiene ancora corsi per chi vuole fare il ‘salto’ da VB6 a VB.NET, vorrà dire qualcosa, no ?

    E per ultimo, finchè lavorerai in Italia un consiglio : se ti viene l’idea geniale, quella che ti permette di fare un applicativo iperflessibile per le PMI per esempio, non parlarne al tuo capo ma sviluppala da solo perchè se non la capisce, ti ostacola, ma se la capisce te la frega.

    Uno che ha smesso di lavorare come programmatore.

  4. per Guido:
    “per quanto riguarda il mercato dei piccoli… secondo me la strada per uno sviluppo strutturato e di qualità c’è…”
    [..]
    “bisogna riuscire a capire come avere un prodotto unico facilmente adattabile e customizzabile per le singole esigenze..”

    sono d’accordo, nell’ambito “locale” non è facile creare qualcosa che sia flessibile e adattabile alle varie esigenze..
    chi ce la fa ad ottenere un minimo di riuso del proprio codice, tutto di guadagnato..
    cmq con questo discorso sto andando leggermente fuori tema iniziale.. nel post originario volevo sottolineare la forte presenza della filosofia “non è elegante e corretto.. ma funziona!”, che a lungo andare non paga… ovviamente secondo me..

    per Stefano:
    sono d’accordo con te su quasi tutto..
    solo due cose, ma niente di che…

    ” maledire chi non mette i commenti al codice”
    l’uso dei commenti nasconde una non chiarezza del codice.. che i commenti cercano di chiarire.. quando invece non è necessario, visto che basta usare metodi brevi, che vengono specificati “top-down”, con nomi autoesplicativi, con variabili chiare (e non ENOSPC per indicare ErrorNoSpace.. )
    il problema con l’uso dei commenti è che devono essere sempre risincronizzati con il codice.. ogni modifica al codice implica una modifica al commento, e se fai molto refactor, come capita spesso, fai doppio lavoro..

    “C++ è uno strumento, non te ne crucciare.
    Anche con C# e Java si possono fare cose abominevoli e sono sicuro che ce ne sono in giro parecchie..”

    d’accordissimo nel fatto che è uno strumento, ma ci sono strumenti e strumenti.. come il piccone e l’aratro..
    ad esempio, il C++ ha una grammatica talmente contorta che non esistono efficaci strumenti di refactor.. quindi, secondo me, hai già un piccolo handicap..
    per non parlare della gestione manuale della memoria quando non è necessario. perchè mi devo ancora preoccupare di fare malloc e free quando posso delegare al framework? In C#, a differenza di Java ad esempio, se devi gestire la memoria a mano (come in un sw di eleborazione immagini, come mi è capitato) dichiari il codice “unsafe” e usi codice unmanaged..

    però io quando vedo:
    public void writeTextFile( string path, string[] lines )
    {
    using ( StreamWriter sw = new StreamWriter( path ) )
    {
    foreach ( string line in lines )
    {
    sw.WriteLine( line );
    }
    }
    }
    sono contento ;-))

    ciao a tutti!!

Leave a reply to Stefano Grevi Cancel reply