Ho letto con vivo interesse e con una certa
passione questo post di Raffaele e tutti i commenti che ha
ricevuto, compreso il mio. Devo dire che mi trovo d'accordo con parecchi dei
punti che bene o male sono stati espressi, ma volevo aggiungere del mio e
siccome sarebbe stato troppo lungo metterli in un semplice commento, mi son
detto: "Perchè non scrivere un post su questo
discorso?".
Beh, il post è questo qua. Leggetelo, ed insultatemi
pure.
La mia carriera professionale reale è cominciata intorno al 1995, appena dopo
la maturità. Già da molto, molto, molto prima avevo a che fare con home-computer
e programmazione, però la mia prima busta paga risale a quel periodo. Questo per
dire che ho lavorato per molto tempo come dipendente, dove io ero il
programmatore, poi c'era chi faceva il commerciale, il tecnico, l'assistenza
hardware, e così via. Poi, nel 2001 (mi pare), mi sono messo in proprio.
Io ritengo che i parziali fallimenti dell'informatica nel nostro Paese siano
imputabili a diversi fattori:
- il settore commerciale dell'IT,
molto impreparato sia nell'informatica in genere, sia per quanto riguarda il
prodotto specifico che stanno vendendo
- IMVHO il fatto che il software non sia un
prodotto fisico rende più ostico da parte del
cliente dargli un valore reale effettivo, e di conseguenza tendono a
sminuirlo/svalutarlo
- la cultura del clicca qui,
clicca là, tanto è semplice portata avanti da Microsoft (ma non solo), dai
suoi wizard, dal drag'n'drop semplice, etc. è molto, molto,
pericolosa
Il lato commerciale
I commerciali normalmente non capiscono
nulla, per default. Voglio essere chiaro fin dal principio con
questo concetto. Smentitemi pure, insultatemi, ma io la
penso così, so di essere drastico, e mi sta bene. I migliori commerciali, ed io in passato
un paio li ho conosciuti, sono quelli che comunque
hanno avuto un backgroud come ex-programmatori e quindi
hanno una certa idea di quello che hanno di fronte, di quello che stanno
vendendo, e del lavoro che bisogna fare per modificarlo. L'ho già scritto nel
commento che ho lasciato nel post di Raffaele: se un commerciale incontra il
cliente, questo potrebbe chiedergli una modifica così come la pensa lui, senza
pensare però alla fruibilità dell'applicazione, senza sapere nulla di
nulla. Sia chiaro: il cliente ha sicuramente il diritto di chiedere
qualcosa, ma è compito nostro quello di considerare
ed inserire quella particolare richiesta in un contesto più
ampio
. Un commerciale non potrebbe, la sua intelligenza
è troppo limitata. Sinceramente, a me questa cosa
viene spontanea. Come sono altezzoso, vero? Per questo mi sono messo in proprio:
un po' presuntuosamente, forse, ho pensato che nessun commerciale poteva essermi utile
e costruttivo. Forse, ma non ditelo a nessuno, lo penso tuttora.
Il software non è fisico, non si vede, non si tocca,
quindi quanto vale?
Questo a mio modo di vedere è un punto drastico.
E' difficile per il cliente saper valutare il prodotto software che vede
sul monitor. Questo è davvero un peccato, e va in concomitanza con quanto ho
detto con il punto (3): troppe persone pensano che
per realizzare quella UI in realtà hai fatto un paio di click chissà
dove. Però per assurdo credo che adesso ci sia una sorta di
inversione di tendenza, perchè oggi davvero un sacco di persone usano il PC per
i motivi più disparati e quindi toccano con mano le difficoltà che possono
sorgere durante il suo utilizzo. Se è così difficile
usarlo - si chiederanno in molti - come diavolo dev'essere programmarlo? Non
fraintendetemi: oggi è sicuramente molto più semplice usare un PC rispetto ad
una volta: mia mamma e mio papà navigano tranquillamente (ehm....più o meno ...) in Internet, solo che quando bisogna fare
cose particolari, c'è sempre bisogno del mio aiuto o di quello di mio
fratello.
Vi voglio raccontare una mia esperienza diretta.
Mi
capitava, 4-5 anni fa, di lavorare direttamente dal mio cliente diretto per
risolvere diversi problemi precisi. Ad esempio: "Igor,
scusa, riesci ad importarmi questo foglio Excel dentro il tuo database delle
discoteche?", oppure "Igor, ho qui i numeri di
telefono di queste attrici, me li importi nei tuoi recapiti?". Allora, mi
vedevano macinare VBA a go-go in Excel o in Access per fare 'sta cosa.
Mi consideravano un marziano. Sarà
successo anche a voi, credo. Oggi, la situazione è diversa: alcuni miei clienti più smaliziati conoscono
VBA, fanno qualcosa e si rendono conto che in fondo non ero un marziano. Però,
cavolo, anche oggi quando devono fare qualcosa di
difficile (come dicono loro), mi
chiamano ancora e risolvo la situazione. Quindi, per
assurdo, ritengo che le distanze siano ridotte, ma io ho comunque una marcia in
più rispetto a loro che risolve la situazione. Non parlo di me perchè voglio
fare il bullo della storia: questa cosa vale sicuramente per tutti
quelli che si trovano in una situazione analoga alla mia. Quindi secondo me
hanno più - come dire - rispetto per il nostro lavoro, però magari
è solo un'impressione. Che dite? Sono ottimista?
In passato uno dei punti chiave della mia filosofia era: "fate produrre ai vostri software della carta, fateli
stampare, generate dei report gratificanti". Oggi faccio
consulenza a tempo pieno all'interno di una grossa azienda di Milano, ma quando
lavoravo fisicamente per i fatti miei, mi capitava molto spesso di fare
delle demo di un mio software presso agenzie di musica, spettacolo, TV,
cinema ed affini. Mi è sempre piaciuto terribilmente andare dal cliente
perchè vedere il frutto di ore ed ore di programmazione (all'epoca VB6)
trasformarsi in soddisfazione sul volto delle persone è una cosa che mi ha
sempre emozionato. Manco a farlo apposta, il culmine lo si raggiungeva sempre
quando facevo vedere le anteprime di stampa, perchè in qualche modo toccano di più l'utente, perchè forse
riescono a percepire meglio il vantaggio che arriverebbe loro adottando il
software. Oggi non lo so più se questa cosa vale ancora.
I wizard e la cultura del "click
semplice"
Io ho sempre condannato i
wizard, oggi nel 2006 ho quasi paura a fare il drag'n'drop dalla
toolbok per mettere un Button sulla mia WF. Dai, adesso sto esagerando. Però, insomma, la filosofia che voglio
far passare è questa. Però, per assurdo, ritengo che tutti, ma proprio tutti,
debbano inizialmente passare per lo sviluppo di un'applicazione estremamente
RAD, proprio per capire successivamente i vantaggi portati da uno sviluppo
diverso e più accurato. Il mio primo programma
serio scritto da dipendente era un
giga-mega-blocco-megalitico da 5Mb e passa, il cui eseguibile
era winshow.exe. Anche oggi quel software sopravvive, ma l'exe è da 3Mb, ci sono
una dozzina da DLL intorno, ed è strutturato molto, molto meglio. Questa esperienza io non la racconto perchè l'ho letta su
un libro, la racconto perchè ci sono passato personalmente dentro anni ed anni
di programmazione, ed oggi sorrido e mi dico in modo più
infantile: "Cavolo, come sono più belli i miei programmi oggi!". I software
scritti prima, in C/C++, erano forse anche peggiori, anche se risolvevano
problemi più limitati, e quindi passavano inosservati.
Non c'è nulla di male a scrivere un'applicazione poco Object Oriented,
l'importante è saperlo, essere onesti con se stessi e gestire il cliente con
intelligenza e buonsenso. Io ho sempre ritenuto che
un buon programmatore può essere un decente commerciale, ma mai il
contrario. E questa considerazione (in aggiunta a delle altre
che sono un po' OT), mi ha portato ad affrontare la mia carriera come libero
professionista.
Cavolo, questo post è stato di gran lunga il più impegnativo che abbia mai
scritto, ma almeno ne sono soddisfatto! Ritengo di aver espresso a sufficienza
buona parte del mio pensiero!