Newsgroup: it.cultura.linguistica.italiano
Titolo: Programmatore informatico e Sviluppatore software

Vorrei capire se qualcuno ha mai codificato o descritto la differenza
tra le due figure professionali in oggetto.
Leggo su Il Sole 24 Ore che nel 2009 mancano in Italia 1850
programmatori informatici e 2260 svilippatori software.

 2260 svilippatori software.
Che hanno il compito di togliere valore al software sviluppato dai 
concorrenti? :) 

GCPillan ha scritto:

Cos�, da profana, a naso e orecchio, direi che lo sviluppatore software 
mi pare una figura che si occupa di creare un programma: perci� pu� 
essere una persona che opera in una o pi� fasi della creazione dei 
software (magari non necessariamente � un asso della programmazione)
.
Il programmatore informatico, invece, mi pare uno che lavora 
praticamente sempre con i linguaggi di programmazione: ma non 
necessariamente per creare software.
Ovviamente, queste sono le mie impressioni.

 Ovviamente, queste sono le mie impressioni.
Ben importanti sono le impressioni.
Quali impressioni ti danno il programmatore software e lo sviluppatore
informatico?
Mi ricordo una signora sull'autobus incuriosita dai miei appunti di
TPCL, così si chiamava in breve la materia. Mi chiese di cosa si
trattava e risposi che era Teoria e Progetto di Circuiti Logici. Al
che replicò: "Ha a che fare con i tubi idraulici quindi?"

 che replic�: "Ha a che fare con i tubi idraulici quindi?"
:)
Eh, sai, le impressioni...


Credo che "sviluppatore software" sia analogo ad "analista software",
cioè qualcuno che non si limita a scrivere un programma ma analizza il
problema e trova una soluzione a livello concettuale prima ancora di
tradurla in righe di codice.

 Quello che detto sopra! :)
Veramente tu mi hai detto che impressioni avevi su programmatore
informatico e sviluppatore software, mentre ora ti chiedevo che
impressioni ti danno programmatore software e sviluppatore
informatico. Questo per associare le varie impressioni ai singoli
termini.

 termini.
Aaaah... Non mi ero resa conto, chiedo scusa!
Dunque, 'programmatore software' lo immagino come un programmatore 
specializzato nella creazione di software.
'Sviluppatore informatico' mi sembra un concetto molto vago... Potrebbe 
fare praticamente qualsiasi cosa legata all'informatica, ma non si 
capisce bene cosa. Mi pare un'espressione tutto sommato priva di senso.

 codice.
Potrebbe essere qualcosa come la differenza tra architetto e
perito edile.
-- 
ï¿œï¿œï¿œ
 O 



Comincio col dire che programmatore e sviluppatore possono 
convivere nella stessa persona, e in una prima parte della
creazione del programma devono convivere necessariamente.
Quando ci sono pi� addetti in un'Azienda di Software, pu�
imporsi una suddivisione di competenze e inclinazioni.
Il programmatore pu� essere lo sviluppatore dei suoi programmi.
mentre lo sviluppatore senza programmi da sviluppare � perduto.
Ci avviciniamo alla mezzanotte, ma se volessimo parlare 
dell'argomento, starei qui fino a domani. Dal 1980 al 1988, sono
stato programmatore-sviluppatore dei miei programmi con il
mio piccolo Spectrum. Quando mi capita di farli funzionare
con un emulatore sul mio Windows 98, mi d� una pacca sulle
spalle e mi dico: Mich�, non eri fesso.
   Ciao. Imes

 wrote in message 
news:61486d5b-163b-40bd...@o15g2000yqm.googlegroups.com...

Programmatori informatici e sviluppatori software esprimono
con inesatta terminologia la stessa generica funzione:
produzione di "programmi" per computer.
Laddove, quando hai detto "programmi" hai detto
tutto e non hai detto niente.
Definizioni date da chi ha un'imprecisa infarinatura delle
funzioni e terminologie usate nel campo informatico.
Io mi trovo ad operare nel settore come programmatore
e consulente IT da oltre un trentennio, quindi un po' di
esperienza credo di averla maturata.
Nell'ambito di una softwarehouse si distingue normalmente
fra analista e programmatore.
Provo ad esemplificare con una circostanza che mi � molto
famigliare.
Si debba produrre un programma di contabilit� aziendale.
L'analista � colui che, con qualche cognizione di contabilit�,
traduce in flussi di programma (flow chart) le richieste del
committente (o del mercato).
Il programmatore (pi� spesso i programmatori) traducono
il flow chart in segmenti di programma, secondo il linguaggio
che si � scelto di utilizzare.
Nell'ambito dei programmatori si considera poi la categoria
dei programmatori che attendono alla produzione dei segmenti
di programma della contabilit� (semplicemente definiti
programmatori), da quelli che attendono alla produzione
dei segmenti di programma che debbono in qualche modo
interagire - in maniera non standardizzata dal sistema operativo -
col sistema operativo stesso ovvero con l'hardware specifico.
Tali ultimi vengono definisti sistemisti.
Consulenti IT sono esperti di informatica (normalmente esistenti
nell'ambito di una softwarehouse, ma anche professionisti
ovvero dipendenti di aziende che nulla hanno a che fare con
l'informatica ma che per dimensione, complessit� delle reti
informatiche aziendali, etc, necessitano di tale personale
specializzato).
Bruno
 

 con inesatta terminologia la stessa generica funzione:
Che sollievo: temevo di essere rincretinito visto che non riuscivo a
cogliere la differenza.
Resta però il fatto che, impressioni a parte e razionalità dall'altra,
se hanno fatto una statistica dove hanno contato separatamente le due
professioni, allora una qualche differenza l'hanno ipotizzata o
presunta ed è probabile che con "programmatori informatici"
intendessero gli "analisti" (ovvero il livello progettuale), mentre
con sviluppatori software intendessero i programmatori (chi scrive il
codice).

 tutto e non hai detto niente.
Tuttavia mi sono fatto l'idea che la parola "sviluppatore" venga 
utilizzata per identificare una figura un po' pi� qualificata di un 
semplice "programmatore".
-- bb

 capisce bene cosa. Mi pare un'espressione tutto sommato priva di senso.
Utilizzo su web stando a Google:
73.100 per "Programmatore informatico"
43.900 per "Sviluppatore software"
26.400 per "Programmatore software"
22.500 per "Analista software"
18.500 per "Analista informatico"
10.400 per "Sviluppatore informatico"
1.380.000 per Sviluppatore
Al 99% si parla di software, nonostante il dizionario Treccani citi
solo lo sviluppo di pellicole.

 semplice "programmatore".
Forse perché un tempo la programmazione si riferiva ad una specifica
macchina ed era costituita da operazioni elementari. Sviluppo invece
sa tanto di evoluzione, quindi a programmi più sofisticati, tanto da
chiamarsi "soluzioni".
Però nei libri di informatica, sviluppatore traduce /programmer.

 Per� nei libri di informatica, sviluppatore traduce /programmer.
Al contrario, credo proprio che sviluppatore sia un calco dell'inglese 
"developer".
-- bb



Programmazione e sviluppo sono termini abbastanza diversi.
Il programmatore informatico � una figura professionale ben precisa e
codificata, ed �, diciamo cos�, l'equivalente informatico del muratore o
dell'operaio. 
Sviluppatore software non credo sia un termine "ufficiale" ma
presumibilmente si pu� riferire a chiunque in qualche modo contribuisce
allo sviluppo del software, soprattutto ad alto livello, quindi in
particolare l'analista.
Programmatore software, per quanto diffuso, non ha senso, visto che ad
essere programmato non � il software ma l'hardware.
Sviluppatore informatico invece non pu� che essere sinonimo di sviluppatore
software, visto che nell'ambito dell'informatica non c'� molto altro da
sviluppare. Lo sviluppo dell'hardware � di pertinenza dell'elettronica.

 produzione di "programmi" per computer.
 
Io credo di no: a rigor di logica, l'atto del programmare un qualunque
dispositivo (un videoregistratore cos� come un computer) non ha niente a
che vedere col cercare la soluzione di un problema, elaborare un algoritmo,
o anche solo scegliere quale tra diversi algoritmi gi� esistenti si vuole
applicare. Mentre per lo sviluppo di un software tutto questo �
fondamentale.
L'inesattezza, semmai, � confondere "programmazione" con "svilppo di
software".

 sviluppare. 
Io pensavo al web. In ingliese esistono le espressioni "web-development" 
e "web-developers".
Ma l'espressione 'sviluppatore informatico' a me suona molto vaga, e in 
ogni caso non la userei.
Se in un annuncio di lavoro vedessi 'cercasi sviluppatore informatico' 
non riuscirei a capire che cosa stanno cercando. Dovrei approfondire in 
cerca di altri dettagli.

 Io pensavo al web.  
Vero, non avevo pensato al web. 

 sviluppare. Lo sviluppo dell'hardware è di pertinenza dell'elettronica.
Lavoro nel settore informatico dal 1978 e permettimi alcune
precisazioni.
1) Il "programmatore informatico" è un termine che tra gli addetti ai
lavori non ho mai sentito.
Esiste il programmatore (tout court) , l'analista, il responsabile di
progetto, e passando alla terminologia anglosassone (che non so come
tradurre) il database designer, il software architect etc.
Collettivamente potremmo chiamarli "sviluppatori software",  ma in
genere con "sviluppatori" si indende parlare degli analisti-
programmatori (termine desueto sostituito appunto da "sviluppatori").
Gli analisti puri e i programmatori puri ormai sono una razza quasi
estinta, sopravvissuti di un modello di sviluppo (del software) che
ormai non si usa praticamente più.
2) Non credo esista per queste figure una "terminologia ufficiale".
Non c'è un consenso unanime tra gli autori che scrivono di software
engineering. La terminologia dipende molto dal modello di sviluppo che
si adotta (Waterfall, Extreme Programming, Model Based, Aspect
Programming, etc - vedi Google per le definizioni).
3) Sul fatto che sia l'HW  a essere programmato e non il SW, non ci
piove. Ma stiamo parlando del linguaggio utilizzato nell'IT (ho capito
male ?), e quando si dice "programmare" si intende "scrivere un pezzo
di software in un determinato linguaggio di programmazione".
Perdonami la pignoleria ;-))
Francesco

 cerca di altri dettagli.
Su questo ti do pienamente ragione e, se non fossi alla frutta,
skippe... pardon... ignorerei l'annuncio.

 sfigati :-((
Oh, certo, lo so bene! Per quanto mi riguarda, ammiro sinceramente i 
programmatori, sia software sia web; fanno un lavoro molto difficile, ma 
davvero affascinante (almeno secondo il mio punto di vista).
Stavo solo rispondendo a Posi, che diceva che praticamente "sviluppatore 
informatico" coincide con "sviluppatore software"; gli ho ricordato che 
esistono anche gli sviluppatori web.
In realt�, credo proprio che, nel sentire comune, quando si dice 
'programmatore' si pensi subito al software; credo siano in pochi a 
rendersi conto che anche certe applicazioni web hanno alle spalle un 
ingente lavoro di programmazione.
A volte ho anche la sensazione che i programmatori web siano un po' 
snobbati, che non siano considerati allo stesso livello di quelli 
software. Forse a torto o forse a ragione, non so; conosco poco della 
programmazione web e praticamente niente di quella software, per cui non 
posso avere un'opinione precisa.

 posso avere un'opinione precisa.
Stiamo andando terribilmente OT, speriamo di non essere cazziati ;-))
Si, hai ragione, ci sono alcuni miei colleghi che guardano dall'alto
in basso gli sviluppatori web. Loro usano framework (non so proprio
come tradurlo in italiano) di alto livello. Una volta che hai imparato
a usare Eclipse, Struts, Spring, Hibernate e una manciata di altri
strumenti (parlo di Java, per chi usa strumenti Micro$oft non so)
sviluppati da sfigati come noi, la programmazione web diventa
un'attività abbastanza ripetitiva.
Noi invece dobbiamo spaccarci la testa a trovare algoritmi di basso
livello sempre più efficienti e veloci.
Io invece penso che vada rispettato il lavoro di tutti, dal presidente
alla signora delle pulizie, e se mi trovo a fare il lavoro che faccio
invece di pulire i gabinetti, è solo perchè ho avuto più fortuna nella
vita.
Francesco

vita.
Qui, se permetti, devo "riprenderti" per il linguaggio artificiale che stai
usando: non esiste la "signora delle pulizie" (al massimo esiste la "signora
delle camelie" e, in qualche caso, la "signora in rosso" o la "signora in
giallo"), ma la "donna delle pulizie" e, spesso, la "donna" tout court...
Ciao e benvenuto.
Epimeteo
---
"Jai ho" (?)
http://www.youtube.com/watch?v=eZlWOwGaBn8
(cit. incomprensibile)

 giallo"), ma la "donna delle pulizie" e, spesso, la "donna" tout court...
Hai perfettamente ragione, chiedo venia :-((
Sono qui proprio per cercare di migliorare il mio italiano. In questi
tempi di neo-standard imperante ne sento il bisogno ;-))
Con simpatia
Francesco

 
S�, ma "programmare un software" mi suona linguisticamente sbagliato, un
po' come "domandare una domanda". 
Il software viene sviluppato, realizzato, scritto, messo a punto, non
programmato.

 discussione alla quale partecipa quell'angelo di Fiorelisa?
Caro Epi, con questi complimenti mi metti le ali!
W il nostro Epi! ^^

 vita.
Giusto! E poi, tutto � relativo.

 programmato.
Certamente: "programmare un software" *è sicuramente*
linguisticamente sbagliato. Per me la forma più corretta e "sviluppare
un / il software" - e almeno qui siamo IT :-))
Comunque, quello che volevo criticare nel tuo post (costruttivamente,
si intende, non per polemica) è soprattutto la frase
"Il programmatore informatico è una figura professionale ben precisa e
codificata".
E' su questo che dissento. Forse poteva essere vero negli anni '70
quando esistevano solo le grandi SH che lavoravano su mainframe (ho
iniziato la mia carriera lavorativa in una di queste). Allora esisteva
una gerarchia ben precisa, legata anche ai livelli retributivi, di cui
il programmatore era il gradino più basso (il "muratore" come dici
tu), ma era una fase che durava solo pochi mesi. Poi i primi gradini
erano (quasi) automatici:
Programmatore (= "spina" a militare)
Analista Programmatore
Analista Senior
....
Gran Lup Mannar (cit. ;-))
Oggi, con le moderne metodologie non è più così. Lo sviluppo è un
lavoro di team, in cui ognuno possiede competenze specifiche
(Database, linguaggi, tipologie di algoritmi, UI design, test, ....) e
a "programmatore" si preferisce "junior". O almeno, è così da noi e in
tutte le SH, partner e concorrenti, che conosco.
Come ti dicevo, non esiste una terminologia "ufficiale". Se altrove
dovesse essere diverso (forse lo è nelle piccole realtà, non so, da
noi gli sviluppatori sono oltre un migliaio), smentitemi.
Concludo dicendoti che, se dovessi chiamare qualche mio giovane
collega d'oltre oceano "programmer" invece di "developer" o "junior
software engineer", credo mi tirerebbe dietro una scarpa (alcuni
ragazzotti americani sono molto permalosi).
Lo so, sono un gran pignolo, i ragazzi che lavorano con me lo dicono
sempre |-D
Francesco


Accetto la tua critica, anche perch� io non lavoro in una software house,
programmo solo come hobby, quindi non so quali termini si usino
abitualmente nelle SH.
So che termini come operatore, programmatore, analista, esistono o almeno
esistevano in ambito burocratico per indicare delle qualifiche ufficiali,
mentre sviluppatore software no. Questo, insieme alla differenza tra
"programmare" e "sviluppare", mi ha portato a dare una possibile
interpretazione delle voci usate dal Sole 24 ore.
Sempre tenendo presente che probabilmente n� i redattori del sole 24 ore,
n� i suoi lettori sono "addetti ai lavori".

 abitualmente nelle SH.
E io accetterò volentieri ogni tua critica su Lingua Italiana e
Linguistica, argomenti che mi affascinano, ma di cui la mia ignoranza
è abissale.
Sono qui per imparare.
Con simpatia
Francesco

Aggiungo solo un'ultima cosa, poi la smetto.
Quando mi capita di conoscere qualcuno per cui il computer è solo
"quel coso per collegarsi a Internet" e mi chiede che lavoro faccio,
rispondo:
Il programmatore :-))
Se cerco di spiegare quello che faccio realmente, mi guardano come se
fossi un cretino che cerca di tirarsela (e forse in quei frangenti lo
sono)
Francesco


Facebook: Massimo Bacilieri

 declassarlo.
Stavo parlando di ragazzini freschi di College, appena assunti :-))
Francesco

 ;-))
Questa ï¿œ un'oasi verdeggiante in un deserto marron.
-- 
ï¿œï¿œï¿œ
 O 

 usati da loro.
Non si usa "ambiente"?


 Questa è un'oasi verdeggiante in un deserto marron.
:-)))
Simpatia anche a te.
Francesco

Non si usa "ambiente"?
Anche piattaforma. Per� dipende dal contesto, direi.
Ciao.
Gian Carlo

 sicuramente molti altri.
Giusta osservazione, per� non vedo una sostanziale differenza tra una macro
Excel o uno script di vim e un programma in un linguaggio interpretato come
il basic. 
Si potrebbe concludere che con i linguaggi interpretati si programma il
sofware e con quelli compilati l'hardware?

 Anche piattaforma. Però dipende dal contesto, direi.
In effetti si dice "Eclipse platform", ed Eclipse è appunto un
framework di sviluppo.
Però di dice anche "mainframe platform", che non è certo un framework.
Poi si dice anche Windows platform e Unix platform.
Penso tu abbia ragione, dipende dal contesto, o forse dalle preferenze
di chi scrive.
Credo sia sempre molto difficile tradurre in italiano i termini
tecnici inglesi, soprattutto in informatica, anche perchè 'sti
americani ne inventano di continuo.
Non parliamo poi dei giornalisti e degli analisti del mercato ITC.
Come tradurreste "vaporware" o "buzzword" ?
Io non ci provo nemmeno.
Quando mi chiedono di tradurre qualcosa per qualche cliente italiano
che non ama leggere in inglese mi dichiaro sempre molto occupato.
Francesco

 Stavo parlando di ragazzini freschi di College, appena assunti :-))
Se in qualche modo analizzano le funzionalit� richieste, poi "decidono"
gerarchie degli oggetti, layout, funzionalit� e altro dell'applicazione,
allora sono sviluppatori. E questo � il caso ormai comune.
Se invece si limitassero a "creare in pratica" un'applicazione gi� nei
fatti "progettata" e in cui le relazioni fra gli oggetti sono gi�
definite, allora sarebbero "semplici" programmatori: tuttavia non credo
esistano figure di questo tipo, ad oggi, proprio per la natura degli
ambienti di programmazione moderni.


 "developer".
Vero. Sono stato tratto in inganno da un libro (Hoepli) che si
intitola "C# 2008 - Guida per lo sviluppatore" della collana (Wrox)
"Programmer to Programmer". Il nome della collana è rimasto invariato
in italiano, mentre il titolo inglese era "Professional C# 2008".
Quindi direi che la caratteristica "professionale" è stata resa con
"sviluppatori", in linea con la differenza tra sviluppatori (che
perseguono la soluzione finale) e i programmatori (che perseguono solo
righe di codice).

 capisce bene cosa. Mi pare un'espressione tutto sommato priva di senso.
Leggendo un po' tutti gli interventi, mi pare che la specificazione
"software" o "informatico" sia ininfluente ma necessaria qualora
"programmatore" e "sviluppatore" vengano usati fuori dal contesto
informatico. Invece tra programmatore e sviluppatore mi pare che le
impressioni superficiali, i modi d'uso del settore, le definizioni di
Wikipedia inglese, gli esempi trovati su web siano piuttosto concordi
nel considerare "programmatore" colui che si limita a scrivere e
debuggare il codice (programma) e "sviluppatore" colui che invece crea
un prodotto o una soluzione software, considerando anche aspetti che
vanno ben oltre la scrittura del codice (specifica, progettazione,
documentazione, test...)
http://en.wikipedia.org/wiki/Programmer
http://it.wikipedia.org/wiki/Programmatore
http://en.wikipedia.org/wiki/Software_developer
http://it.wikipedia.org/wiki/Sviluppatore_software
 (abbozzo)
Debuggare o debugare = trovare e togliere i bachi (bug), ovvero
spulciare o debacare.

 allora sono sviluppatori. E questo è il caso ormai comune.
L’insistenza su questo punto mi dà la sensazione che mi stai
polemicamente attaccando per quella che inizialmente voleva essere
solo una battuta. Probabilmente pessima, ma solo una battuta.
Con stima
Francesco

 sofware e con quelli compilati l'hardware?
Secondo me è difficile categorizzare.
Python e Ruby sono veri e propri linguaggi di programmazione OO,
eppure sono interpretati.
E come la mettiamo con Java e C# che si appoggiano su una VM? O il
vecchio Clipper che era "tradotto" in P-Code?
Non saprei davvero darti una risposta.
Francesco

 solo una battuta. Probabilmente pessima, ma solo una battuta.
Non capisco dove leggi l'intento polemico, non ne avevo alcuna intenzione.
ï¿½ solo che dove lavoro l'aspetto dell'analisi funzionale ï¿½ prioritaria
nella propedeuticitï¿½ allo sviluppo di nuovi software o funzioni di essi.
Perciï¿½ ne rimarco l'importanza, visto che ho come la sensazione che
talvolta sia una parte di lavoro oscura e il cui ruolo non sia percepito
fino in fondo.
Immagina di dover fare un gestionale di magazzino, e di trovarti alle
prese con uno che ï¿½ un dio della programmazione, ma non ha mai visto un
magazzino; e conseguentemente non ha idea di come vi si lavori e di
quali siano le esigenze che il software dovrï¿½ garantire. Per quanto
possa essere bravo a programmare, o sviluppare che dir si voglia, gli
manca la base di partenza, cioï¿½ la possibilitï¿½ di fare un'*analisi* di
ciï¿½ che richiesto.
Ecco tutto.


 ciò che richiesto.
Capisco il tuo punto di vista.
Da noi invece il "dio della programmazione" che non sa niente di
parser o di dispatching, non esiste. Prima si studia la teoria e poi
si "tocca la macchina".
Sto cominciando a pensare che forse la terminologia dipende anche dal
tipo di software che si sviluppa. Possiamo concordare su questo punto?
Francesco

Sinceramente mi sfugge il cuore della divergenza di opinioni tra
Crononauta e Curlus.
Che la fase di *analisi* sia ben separata dalla fase di *codifica* mi
pare indiscutibile. Soprattutto nei progetti più vasti,
indipendentemente dal paradigma di programmazione utilizzato. Chi
*codifica* lo fa seguendo dettagliate *specifiche* fatte da altri e
può benissimo non sapere nulla delle funzionalità finali offerte
all'Utente. L'esserne a conoscenza può a volte aiutare, ma può anche
ostacolare il processo per almeno tre motivi:
1) l'analista non cura tutti i dettagli della Specifica, confidando
nell'intuizione, nell'esperienza e nelle competenze del programmatore
2) il programmatore perde tempo su problemi che in realtà dovrebbero
essere risolti da altri e magari prende iniziative personali (ovvero
si hanno eccezioni non documentate al processo top-down)
3) si deresponsabilizza lo sviluppatore.
Concordo che questo approfondimento sia fuori tema su ICLI.
Ma temo che portarlo su un NG di informatici porterebbe ad una
discussione infinita.

 discussione infinita.
Più che discussione infinita si scatenerebbero infiniti flame. Come
dicevo altrove, forse non avete idea della differenza di opinioni che
esistono su questi temi tra i guru dell'ITC (almeno in US).
Francesco

 tipo di software che si sviluppa. Possiamo concordare su questo punto?
Certamente. Credo che questo sia indubbio.
Se devi scrivere p.e. un servizio di sistema, tutto ci� che devi sapere
� interno al sistema stesso. La fase di analisi � in sostanza la
conoscenza della macchina stessa, cio� si da per acquisito in chi ci
lavora sopra.
Se invece devi scrivere un gestionale di magazzino, la prima cosa da
fare � capire che cosa faccia questo magazzino, che � una cosa ben al di
fuori dell'informatica: in questo caso, la fase di analisi diventa ampia
e importante.


 sofware e con quelli compilati l'hardware?
Mah, no, non sono d'accordo: linguaggio interpretato o compilato, alla
fine nella memoria del calcolatore il programma gira comunque in codice
macchina.


 l'algoritmo.
Non sono troppo convinto.
Mettiamo che dobbiamo analizzare le condizioni ambientali, rilevate da
appositi sensori, che determinano un elevato grado di rischio per la
peronospera della vite per il vitigno Cabernet. Il sistema di raccolta
dati dovrà curarne l'integrità e suggerire all'utente i trattamenti da
effettuare. L'analista leggerà dei libri sul tema, si consulterà con
gli esperti e infine definirà dei modelli matematici per trattare i
dati raccolti dai sensori e calcolare soglie di allarme. Saranno
combinazioni di temperatura, umidità e loro variazioni caratterizzate
su una matrice georeferenziata. Il programmatore implementerà in
codice i modelli matematici definiti dall'analista. Il programmatore
non è tenuto a sapere nulla di agricoltura, né di enologia. Può essere
che nel tuo settore nessuno scriva un frammento di codice senza bersi
un bicchiere di vino, ma non è la situazione universale.

 e importante.
Esatto! E' proprio quello che intendevo.
Se, per fare un altro esempio, devi scrivere un Plug-In per Eclipse
che cerchi su Google la parola su cui fai un doppio click e la
visualizzi in una finestra HTML, non metti mano a niente se prima non
conosci la struttura interna di Eclipse e come visualizzare la pagina
HTML.
Non c'è nessun analista che ti dice cosa fare. Hai la tua fetta del
diagramma UML (normalmente hai anche partecipato alla fase di
diagrammazione), puoi eventualmente generare automaticamente lo
"scheletro" dell'applicazione con Rational Rose, e poi sono caxxi
tuoi, o meglio tuoi e del tuo piccolo gruppo di 2/3 persone, come
comanda Extreme Programming.
Credo che la nostra divergenza di opinioni nascesse da questa
differenza.
Francesco

 un bicchiere di vino, ma non è la situazione universale.
Cercherò di spiegarmi meglio (riconosco di non essere un asso nel
farmi capire).
Negli anni '80 la separazione dei ruoli tra analisti e programmatori
(tipica dei modelli di sviluppo Waterfall in voga all'epoca) ha creato
molti problemi di stabilità e affidabilità del software, ovvero della
cosidetta Reliability, che nel software di base e nel middleware è
fondamentale.
Si iniziò allora a cercare dei modelli si sviluppo che eliminassero
questo problema. Un tipico esempio anni '90 è lo Spiral Model (Modello
a Spirale in italiano? Credo di si). Nello Spiral Model l'enologo e
l'agronomo del tuo esempio *fanno parte* del team, senza dubbio come
consulenti, ma *fanno parte* del team.
Non sono personaggi esterni che raccontano all' "analista" cosa c'è da
fare, il quale poi disegna l'applicazione e passa le specifiche al
"programmatore" (come accadeva nel modello Waterfall).
I modelli correnti sono a volte molto diversi dallo Spiral Model, ma
questa caratteristica fondamentale è rimasta, e ha, in un certo senso,
eliminato la separazione analista / programmatore.
Spero di essere riuscito a spiegarmi (come disse il paracadute
all'aviatore)
Francesco

 eliminato la separazione analista / programmatore.
Mi pare trascurato un problema importante: quello delle competenze.
L'analista può raccogliere i suggerimenti e i consigli di diversi
programmatori, ciascuno esperto nel suo linguaggio, area, interfaccia,
sottosistema. Quindi ciascun programmatore può diventare analista
della sua specifica parte, ma non dell'interazione tra parti che
richiedono competenze diverse e difficilmente coesistenti nello stesso
soggetto.

 macchina.
Ecco, allora, in una maniera che pu� essere pi� o meno diretta, quello che
si st� programmando, alla fine, � sempre l'hardware.

 soggetto.
Scusa, non capisco la differenza con quanto ho espresso io. Le
"competenze diverse e difficilmente coesistenti nello stesso
soggetto", coesistono nei diversi membri del team.
Se vuoi, mettiamola così: le diverse competenze un tempo verticali
(gerachiche) si sono trasformate in orizzontali (paritetiche).
Un esempio sono le pratiche di Peer Review in cui ogni membro del team
controlla che gli altri membri del team non abbiano introdotto cazzate
in quello che è di sua competenza.
Francesco

 soggetto", coesistono nei diversi membri del team.
La differenza è appunto se l'interazione nel team debba esserci o
meno.
Tra due soggetti che non si capiscono tra loro si può interporre una
persona che codifica le informazioni provenienti dai due soggetti e
ciò che diventa importante è solo la perfetta comprensione tra questo
soggetto intermedio e i due soggetti competenti. Addirittura in taluni
casi può essere vantaggioso che il soggetto intermedio sia
incompetente in entrambe le materie (enologia e programmazione nel mio
esempio) in modo che la definizione del prodotto sia "a prova di
stupido" (ovvero esaustiva) in entrambe le direzioni.

 solo dell'analista. 
In effetti questa figura dell'analista-tuttologo che dopo una chiacchierata
con l'enologo � in grado da sviluppare un'applicazione di enologia,
ponendosi a capo di una squadra di persone che al riguardo ne sanno ancor
meno di lui, mi sembra un po' dilettantistica. Sicuramente � un modello che
permette di risparmiare, ma mi sembra poco adatto a progetti di un certo
livello.
Se devi realizzare il software di gestione di un acceleratore di particelle
che cosa fai? Chiami un fisico nucleare e in mezza giornata ti fai spiegare
un po' di elettrodinamica quantistica?
Mi sembra pi� razionale predisporre un team in cui si mettono insieme
persone con diverse competenze. Ovviamente sar� necessario anche un
coordinatore che poi si prenda tutte le responsabilit�.

 stupido" (ovvero esaustiva) in entrambe le direzioni.
Assolutamente NO. Il cosiddetto Monkey User, ossia l'utente che non
capisce nulla dell'applicazione e pigia i tasti e/o clicca a caso
(come una scimmia appunto) interviene solo nella fase di System Test,
e secondo me è giusto che sia così. Nella fase di sviluppo non serve,
anzi.
Francesco

 coordinatore che poi si prenda tutte le responsabilità.
Concordo al 100% con quanto hai scritto.
Francesco

 coordinatore che poi si prenda tutte le responsabilit�.
Anche perch� gli ambienti ad oggetti sono fatti apposta per ridurre il
pi� possibile queste necessit�.
In un ambiente procedurale non si possono sviluppare funzioni o
procedure che non siano collegate a tutto il resto, il che implica che
ci sia qualcuno che abbia una chiara supervisione del progetto a partire
dall'analisi fino ad arrivare al dettaglio delle righe di codice.
In ambiente a oggetti, uno pu� sviluppare un oggetto avendo ben chiaro
solo le propriet� e i metodi che l'oggetto deve avere, anche se poi
ignora nel modo pi� totale a cosa servir� quest'oggetto.
Dall'altra parte, chi si occupa di "mettere insieme i pezzi", pu�
ignorare in modo (quasi) completo *come* gli oggetti lavorino, gli basta
sfruttare le loro propriet� e i loro metodi per svolgere le funzioni che
gli servono. Questo permette di avere da una parte un'applicazione molto
pi� affidabile (se tutti lavorano a dovere, non ci saranno sorprese),
dall'altra riduce i tempi e le necessit� di analisi: non c'� bisogno di
avere una figura che divenga esperto tanto della materia quando del
dettaglio delle righe di codice di ogni funzione.


 coordinatore che poi si prenda tutte le responsabilit�.
Voi, Mr "posi", parlate come un libro stampato.
Soggiungerei solo - alquanto timidamente - che le SWH
(donde provengono gli analisti) o sono dei ministeri
(che poi vanno a fallire) ovvero sono
specializzate solo in uno o pochi settori di attivit�.
Acciocch� non s'abbia che l'analista che si occupa del
settore fosse biologiche sia lo stesso che progetta il SW
di confezionamento di prodotti alimentari per l'infanzia.
Bruno 

 anzi.
Opinioni diverse, spero reciprocamente rispettabili.
Io sto parlando di taluni casi e di ambiti specifici, non in generale.
In particolare ho esemplificato l'incontro fatto tra due persone con
competenze completamente disgiunte: l'utente finale che non sa nulla
di software e il programmatore che non sa nulla di enologia. Vogliamo
farle incontrare? Succede spesso. E probabilmente verrà fuori un bel
pasticcio. Vogliamo invece far parlare l'enologo con chi si intende di
modellazione e di informatica? Potremmo definire tutto quanto serve,
indipendentemente da ogni scelta architetturale e di linguaggio. Il
programmatore implementerà il modello esplicitato con chiarezza senza
dover capire il linguaggio dell'enologo.

 coordinatore che poi si prenda tutte le responsabilità.
Nella seconda frase (terza riga) ho scritto "per applicazioni di
questo livello" e non "per applicazioni di qualsiasi livello".
"Se devo fare la spesa sotto casa preferisco andare a piedi"
"Se devi andare all'outlet fuori città che fai?"
Come è ridicolo prendere la macchina per fare la spesa sotto casa,
così è ridicolo che l'enologo incontri il programmatore e parli di
caldo, freddo, brusco, umido, intenso, rapido, abbastanza, non è
detto, si sa, pare che, bello, valido, intelligente mentre il
programmatore sa solo registrare dati, controllare soglie, fare medie,
visualizzare grafici. E' meglio che un soggetto incompetente in
enologia e incompetente in DB, sistemi operativi e linguaggi di
programmazione traduca le esigenze dell'enologo in grandezze da
raccogliere, modelli da applicare, criteri da applicare e algoritmi.

Perdonami, non volevo assolutamente essere scortese, ma adesso devo
scappare. Ti risponderò stasera o al massimo domani.
Ciao
Francesco

 Opinioni diverse, spero reciprocamente rispettabili.
Ci mancherebbe altro! Tutte le opinioni ragionate (e le nostre credo
lo siano) *devono* essere rispettate.
Vedi che assolutista che sono, con quel *devono* ci sono cascato
ancora ;-))
Alla fin fine cosa vuoi che ti dica, la mia esperienza è quella che ho
già descritto. Stasera mi ha telefonato un amico che lavora su AS/400
(come si chiama adesso xSeries?) in una società decisamente molto più
piccola della mia (e italiana).
Ne ho approfittato per indagare e mi ha detto che ormai usano l'AS
solo come DB Server e Web Server, che non usano più i terminali da
almeno 3/4, i client sono postazioni zero-footprint che accedono
all'AS con un qualunque browser.
Sviluppano applicazioni gestionali per settori verticali che hanno
necessità un po' particolari.
La loro metodologia è Extreme Programming e stanno di passare a Scrum.
La tua esperienza evidentemente è diversa dalla mia, quindi teniamoci
le nostre rispettive opinioni, entrambe rispettabilissime perché
entrambe forgiate dall'esperienza.
Spero senza alcun rancore
Francesco

 La loro metodologia è Extreme Programming e stanno di passare a Scrum.
Qui nella tastiera mi è rimasto un "pensando" :
e stanno pensando di passare a Scrum
Francesco

 molto occupato.
Fuffware?
-- 
ï¿œï¿œï¿œ
 O 

 e i programmatori (che perseguono solo righe di codice).
Alfano? Ghedini?


 Fuffware?
;-)))
Io li manderei a Fancware ;-D
Francesco

 La loro metodologia è Extreme Programming e stanno di passare a Scrum.
Io non ho alcuna competenza in queste cose, né di altre che hai
citato.
Ne segue che non ne posso discutere né posso prendermela se non le
capisco. Forse un velo di irritazione può nascere quando si sta
parlando a un livello semplice e l'interlocutore ti contesta
rovesciandoti addosso cose che non conosci di un livello ben
superiore. Quando ho citato i problemi del sistema software
dell'aeroporto di Chicago intendevo *chiedere* e non *contestare*. Il
tema dei grandi errori software infatti mi interessa, ma non me ne
sono mai occupato. Ho cercato informazioni su web senza trovarne.

 sono mai occupato. Ho cercato informazioni su web senza trovarne.
Mi sembra di averti chiesto scusa per avverti irritato.
Come ti ho detto sono entrato qui un po' sul chi vive, viste le
esperienze passate, e ho interpretato male alcune vostre risposte, non
solo le tue.
Avrei dovuto "lurkare un po' prima di postare" come dice la
Netiquette, ma non l'ho fatto.
Ti ho già chiesto scusa e te le chiedo ancora, non amo rimanere in
polemica.
Senza rancore?
Francesco

 Senza rancore?
Non devi chiedermi scusa di alcunché.
Non ho mai avuto alcun rancore...
Se mai l'avrò te ne accorgerai :-)

 Se mai l'avrò te ne accorgerai :-)
:-)))
OK, allora amici.
Francesco

Hitler era uno sviluppatore!
Era un pifferaio che sapeva che musica volevano ascoltare
allora i tedeschi: la musica della rivincita.
Oggi, il nostro PdC annusa l'onda e sa come prenderla.
� figlio del nostro tempo ed anche padre, bravo nelle competizioni 
elettorali, sembra star alle prese con la creazione del mondo,
giorno per giorno.
La sua tesi di laurea fu su "L'elogio della pazzia" di Erasmo da
Rotterdam. Interessante. Mi piacerebbe leggerla e leggere qualche
suo scritto ante-laurea e post-laurea.
Dopo essere stato vittorioso nelle elezioni del 2001, disse in TV:
"Sapete che io non so nulla di politica. Ma imparer�."
Suppongo che volesse fare una distinzione tra politica teorica e 
politica pratica.
   Ciao. Imes