2014-10-12 2:43 GMT+02:00 Flavio Visentin <THe_ZiPMaN@xxxxxxxxx>: > > Non dovrebbe essere scontata, perché salvo generalizzazioni, la conoscenza > del problema non è elemento né necessario né > sufficiente per la scrittura di un buon programma, mentre l'essere buoni > sviluppatori è un elemento necessario per scrivere codice > funzionante correttamente. Sul fatto che non sia elemento sufficiente sono d'accordo: ma che non sia neanche necessario mi crea parecchie difficoltà digerirlo. > In molti gruppi di sviluppo di programmi complessi, lo sviluppatore non ha > nemmeno la conoscenza del motivo per cui sviluppa un > determinato codice. Gli vengono commissionate delle funzionalità specifiche > ma non ha alcuna conoscenza del disegno complessivo > del programma. Un team ha la competenza sul disegno globale, ma diverse > funzionalità sono assegnate a diversi team che hanno > visibilità solo sulla propria limitata parte. Tutto viene assemblato dal team > centrale che tiene il contatto anche con il committente ed > eventualmente con l'utente. > Chiaramente non è una prassi nel modello di sviluppo Opensource, ma nelle > aziende che sviluppano codice proprietario avviene più > spesso di quel che si pensa. Non so le percentuali, ma so, anche per > conoscenza diretta, che moltissime commissioni di codice a > sviluppatori indiani o ucraini o polacchi o comunque esterni all'azienda, > sono strutturate proprio in questo modo. > E il programma che ne esce è comunque un buon programma, anche se chi lo ha > sviluppato non l'ha nemmeno mai visto o usato. Questo modello di organizzazione ricalca in pieno quello in uso nell'industria: non ci sono dubbi che seguendo il modello della catena di montaggio si possano ottenere artefatti - oggetti o anche software - di livello anche ottimo. Però forse state trascurando una cosa: il modello industriale nasce con uno scopo molto preciso, aumentare la produzione ovviando alla carenza di manodopera qualificata senza far lievitare troppo i costi. In questo vostro schema, il programmatore che non "non conosce il disegno complessivo" è trattato alla stessa stregua dell'operaio in catena di montaggio: gli viene richiesto qualcosa di più complesso che non avvitare gli stessi bulloni tutto il giorno, ma non ci si aspetta affatto che sia particolarmente bravo. Guarda caso, i "programmatori bravi" nelle industrie del software non stanno in catena di montaggio - sono analisti, architetti, designer o tester: e si trovano molto spesso a contatto con clienti o con utenti rappresentativi. Gli altri sono mera manodopera a basso costo, usati come pigiatasti a comando: appena si dimostrano abbastanza bravi, vengono promossi e spostati dove sono più utili. Antonio -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx