|
|
|
![]() |
|
Strumenti |
![]() |
#61 | |
Senior Member
Iscritto dal: May 2001
Messaggi: 12819
|
Quote:
Ha team composti da 3-8 persone e ad ogni programmatore è affiancata una persona che testa il codice (anch'esso programmatore), l'attività di testing è condotta in parallelo con lo sviluppo. In ogni caso la teoria è una cosa, la pratica ben altra. Non esiste un modello che vada bene per tutti, la bravura sta nel prendere un modello e plasmarlo sulle proprie esigenze ed esperienze, come dice lo stesso Jacobson, bisogna concentrarsi soprattutto sulle persone. Ultima modifica di WarDuck : 29-03-2009 alle 18:20. |
|
![]() |
![]() |
![]() |
#62 | ||
Senior Member
Iscritto dal: Aug 1999
Città: Vares
Messaggi: 3831
|
Quote:
Io parlo di ruolo che uno ha e deve sviluppare fin dai primi giorni di lavoro, non passare dal programmatore, all'architetto software al consulente per la creazioni di nuove applicazioni. Quote:
In realtà un ingegnere informatico dovrebbe farsi le ossa imparando a seguire un team di programmatori seguendo il loro lavoro per capire se è aderente alle specifiche. Per fare questo lavoro di testing delle specifiche non occorre essere programmatori, ma occorre uno schema di lavoro differente e più rigoroso, normalmente mal digerito dalle aziende correnti; che preferiscono puntare di più al marketing e alle campagne di vendita, sperperando soldi tra persone che hanno poco apporto tecnico. Ad oggi in qualsiasi azienda di sviluppo software, l'iter è quello che descrivete: ingegnere del software che inizia a sviluppare, impara e fa esperienza, dimentica tutto quello che sa, regredisce ad un mero programmatore e quando arriva a fare il project manager non è più capace di fare quello per cui è nato. Solo in aziende dove si producono applicazioni nelle quali non è concesso errore (es: applicazioni militari) si programma con queste medotologie più rigorose, proprio perchè il valore aggiunto è dato dalla affidabilità e dalla rigorosità del software.
__________________
Quanto tutti sono d'accordo con me ho l'impressione di avere torto. |
||
![]() |
![]() |
![]() |
#63 | |||
Member
Iscritto dal: Apr 2003
Messaggi: 146
|
Quote:
![]() Ma poi, dopo un po di anni a fare questo lavoro da pseudo certificatore, per quale magia acquisisci le competenze per curare il design di un software complesso? Quote:
Quote:
Io non ci ho lavorato nel militare ne' nell'aerospaziale, ma mi riesce difficile immaginare una industria che non viva primariamente in funzione delle deadline (se lavori su un nuovo missile teleguidato, hai interesse a completare lo sviluppo prima possibile perchè la concorrenza non sta certo con le mani in mano). Ed è quando devi rispettare dei tempi stringenti, svolgendo un lavoro che è sostanzialmente R&D, che sorgono i cavoli amari da cui nessuna metodologia di sviluppo appresa sui libri, per quanto rigorosa, ti può rendere immune.
__________________
cpu I7-4790K | mobo AsRock Z97 Extreme4 | ram G-Skill ARES 16GB DDR3-1600 | gpu MSI R6850 Cyclone | storage Samsung 850 EVO 500GB / WD Red 3TB | psu Corsair TX650W | case Thermaltake Core V31 Ho trattato con: Salvys, andyus, methis89, pinc0, bubbi, uazzamerican |
|||
![]() |
![]() |
![]() |
#64 | |||
Senior Member
Iscritto dal: Aug 1999
Città: Vares
Messaggi: 3831
|
Quote:
Un po' come dire che dopo anni a fare il muratore puoi permetterti di costruire un palazzo: impresa non impossibile perchè con l'esperienza si guadagna molta capacità. Però se tu avessi una azienda edile con una grossa commessa, faresti progettare un palazzo da un capocantiere o da un architetto/ingegnere edile? La creazione di un software dovrebbe essere in mano ad un team intero in cui ci sono persone che scrivono il codice (tante), persone che verificano e sviluppano le specifiche (poche) e persone che adattano man mano le specifiche alle richieste del cliente (poche). Per quale motivo tu dici che una persona che cura le specifiche di un progetto lavori meno di uno che scrive codice? Se poi mi dici che le poche persone che curano le specifiche dovrebbero anche conoscere la programmazione penso sia plausibile, la gavetta la deve fare chiunque. Però penso sia importante sviluppare una professione che non sia nè il programmatore nè il creatore di fuffa, che faccia da collante tra chi non comprende la programmazione e chi troppo legato al codice non sia capace di avere una visione più ad alto livello di un progetto. Questo perchè il programmatore non può andare dal cliente a trattare, come non può essere chi tratta dal cliente che detta le specifiche ai programmatori. Quote:
![]() Quote:
Faccio l'esempio di un elicottero da guerra ma possiamo anche parlare di una centrale nucleare o l'elettronica di un sistema di controllo ferroviario...
__________________
Quanto tutti sono d'accordo con me ho l'impressione di avere torto. Ultima modifica di Dreadnought : 29-03-2009 alle 23:53. |
|||
![]() |
![]() |
![]() |
#65 |
Member
Iscritto dal: Dec 2007
Messaggi: 182
|
Lotto da 1 anno per l'applicazione di un sistema simile!!!!
ora sono riuscito ad ottenere un progetto basato su una archittettura semplice e aggiunta di Add-on su necessità/richeista. ...ma ancora mi chiedono "prima di iniziare fammi un preventivo di tempi e costi"... non impareranno mai. |
![]() |
![]() |
![]() |
#66 |
Member
Iscritto dal: Jan 2008
Messaggi: 109
|
bah io di informatica ho fatto solo l'esame di Fondamenti di java fino all'hash table insomma(30/30 =D) siccome studio elettronica.Ma devo dire che le idee che ha espresso ci sono state spiegate,poi dipende dal docente,il mio era parecchio qualificato(laureato ad Howard e programmatore in una azienda).Cmq non sono totalmente d'accordo con il fatto di non usare i Tester: creare 1 programma è come creare una piccola creatura a cui vogliamo bene e quindi cerchiamo di non fargli male(anche inconsciamente!)
![]() |
![]() |
![]() |
![]() |
#67 | |||||
Member
Iscritto dal: Apr 2003
Messaggi: 146
|
Quote:
Quote:
Tutta la parte hardcore viene DOPO che hai disegnato il simpatico diagrammino use case, e parte dalla configurazione dei macro-sistemi che compongono l'applicazione fino al design delle singole micro-componenti. In fondo il software ha una struttura frattale: ad ogni livello di astrazione avrai sempre un mucchio di scatole nere che comunicano con altre scatole nere, che hanno un ciclo di vita, esibiscono behavior eccetera. Il prog entra come junior e si occupa di scatolette piccole, per poi passare a scatole sempre più grandi e cosi' via fino ad avere una visione totale del sistema quando poi diventa lead, direttore tecnico o quello che e'. E in ciascuno di questi livelli si trova ad operare, inevitabilmente, come ingegnere del software con responsabilità sempre più crescenti. Non vedo cosa ci sia di alieno in questo. Quote:
![]() D'altro canto non puoi chiedere a una singola figura professionale di interfacciarsi col cliente, fare da middle management e, nei ritagli di tempo, ingegnerizzarti l'applicazione no? Quote:
Quote:
__________________
cpu I7-4790K | mobo AsRock Z97 Extreme4 | ram G-Skill ARES 16GB DDR3-1600 | gpu MSI R6850 Cyclone | storage Samsung 850 EVO 500GB / WD Red 3TB | psu Corsair TX650W | case Thermaltake Core V31 Ho trattato con: Salvys, andyus, methis89, pinc0, bubbi, uazzamerican |
|||||
![]() |
![]() |
![]() |
#68 |
Member
Iscritto dal: Apr 2003
Messaggi: 146
|
post duplicato, sorry
__________________
cpu I7-4790K | mobo AsRock Z97 Extreme4 | ram G-Skill ARES 16GB DDR3-1600 | gpu MSI R6850 Cyclone | storage Samsung 850 EVO 500GB / WD Red 3TB | psu Corsair TX650W | case Thermaltake Core V31 Ho trattato con: Salvys, andyus, methis89, pinc0, bubbi, uazzamerican |
![]() |
![]() |
![]() |
#69 |
Senior Member
Iscritto dal: Dec 2006
Città: Trapani (TP)
Messaggi: 3098
|
Wow addirittura verso la fine non fa che dire quello che è già passato alla storia come KISS (Keep It Simple, Stupid!) ovvero fare uno scheletro semplice e poi farlo crescere.
Ha sparato un paio di fesserie (tipo criticare la pulizia del codice, e si vede che ha raramente messo mano in prima persona a codice fatto coi piedi da altri) e detto un paio di cose utili che si scoprono con l'esperienza. Nulla di nuovo sotto il sole. |
![]() |
![]() |
![]() |
#70 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
Tu hai qualche esperienza diretta che indichi il contrario? Ce la puoi raccontare?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 30-03-2009 alle 09:09. |
|
![]() |
![]() |
![]() |
#71 |
Senior Member
Iscritto dal: May 2005
Messaggi: 4630
|
Da fek:
------------------- Da Ingegnere del Software, ho difficolta' a gestire un team di 20 ottimi ingegneri pure avendo 20 anni di esperienza di programmazione alle spalle. Non ho la piu' pallida idea di come qualcuno con limitata esperienza di programmazione possa insegnare al mio team a: - scrivere codice semplice e mantenibile - testare il codice - produrre un'architettura semplice - gestire milioni di righe di codice - dare la giusta priorita' ai task E' impossibile. Chi fa affermazioni come le tue semplicemente non ha mai dovuto gestire un team per un progetto complesso. -------------------------------- scusa ma il tuo compito non dovrebbe essere quello di insegnare, tu dovresti solo coordinare persone già capaci di lavorare.... capisco che questa non sia spesso la realtà lavorativa che si deve affrontare in pratica, ma da quello che dici non stai facendo veramente il project manager. In generale non è detto che il prodotto che sati sviluppando sia fatto solo di software, potresti anche avere parti elettroniche, meccaniche, problemi sui materiali, sui processi di fabbricazione ecc... secondo te uno potrebbe essere esperto di tutto? se poi ci limitiamo a considerare una semplice software hause ok, ma in generale le cose sono molto diverse. Da Dreadnought ----------------------------- però ti assicuro che quando devi sviluppare in ADA il controllo dell'assetto di un elicottero, rispettando le specifiche date dall'elettronica e dal funzionamento del velivolo, oltre al rispettare le deadline avresti ben chiaro in testa che il tuo software deve funzionare alla perfezione: altrimenti vendono gli altri al posto tuo. Faccio l'esempio di un elicottero da guerra ma possiamo anche parlare di una centrale nucleare o l'elettronica di un sistema di controllo ferroviario... ------------------------------- non conosco l'ambito militare ma non penso che si discosti molto da quello medicale di cui mi occupo. Mi viene difficile pensare per questo tipo di applicazioni modelli "rigidi" come quello a cascata, qui tanto criticato, visto che per queste applicazioni non è sufficiente verificare semplicemente che il software funzioni ma bisogna invece documentare molto pesantemente tutto il processo di sviluppo applicato per dimostrare la bontà del software prodotto. Da Marziano ------------------------------- Insisti su questa conformita' alle specifiche come se fosse il cuore dell'ingsw, ma per come la vedo io l'analisi dei requirement è solo la punta dell'iceberg. ------------------------------- Scusa ma i requirements sono l'input di tutto, se sbagli quelli non puoi di certo ottenere il prodotto che desideri. Forese bisognerebbe ricordare che se voglio produrre una macchina rossa, non mi interessa svilupparne una blu perchè alla fine del processo mi accorgo che rossa non riesco a farla! Che poi spesso nelle aziende la realtà non sia questa è un loro grosso problema, che sprecano soldi e risorse in modo inutile... ciò non toglie che quello che viene insegnato sia il modo corretto di fare. Cia Ale, spero che la discussione continui perchè interessante... |
![]() |
![]() |
![]() |
#72 |
Senior Member
Iscritto dal: May 2005
Messaggi: 4630
|
Scusate:
Mi viene difficile NON pensare per questo tipo di applicazioni A modelli "rigidi" come quello a cascata, qui tanto criticato, visto che per queste applicazioni non è sufficiente verificare semplicemente che il software funzioni ma bisogna invece documentare molto pesantemente tutto il processo di sviluppo applicato per dimostrare la bontà del software prodotto. |
![]() |
![]() |
![]() |
#73 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
Un programmatore che non impara anno dopo anno e' come un Ingegnere del Software che pensa di poter dirigere un team di Ingegneri senza saper programmare: e' inutile. Quindi il mio compito e' anche migliorare il team che ho a disposizione, esplorare nuove metodologie, migliorare quelle correnti e migliorare il codice prodotto dal team, migliorare le pratiche di sviluppo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#74 |
Member
Iscritto dal: Nov 2007
Messaggi: 274
|
DP GOF? Vediamo se la capisci...
__________________
If I Die Tomorrow I'd Be All Right
Because I Believe That After We're Gone The Spirit Carries On |
![]() |
![]() |
![]() |
#75 | |
Member
Iscritto dal: Oct 2007
Città: Trieste
Messaggi: 55
|
ma dai!!!
Quote:
![]() Anche qua? ![]() PGB
__________________
La situazione è migliorata, adesso sono Member! Sono comunque iscritto dal 2003 e forse anche da prima, uffa... ![]() Se proprio non avete nulla da fare passate a visitare il mio sito: http://www.pgb75.eu |
|
![]() |
![]() |
![]() |
#76 |
Senior Member
Iscritto dal: May 2005
Messaggi: 4630
|
--------------------
Quindi il mio compito e' anche migliorare il team che ho a disposizione, esplorare nuove metodologie, migliorare quelle correnti e migliorare il codice prodotto dal team, migliorare le pratiche di sviluppo. -------------------- Vero, se ti riferisci al solo ambito del software. In generale però è impossibile che tu sappia tutto (informatica, elettronica, meccanica...) e quindi è impensabile che sia il project manager a insegnare competenze specifiche, puoi solo far in modo che venga rispettata una metodologia e adoperarti affinchè essa venga migliorata nel tempo. Per il miglioramento dei componenti del team dipende, a seconda del caso e del badget puoi decidere se richiedere altro personale, organizzare un corso per far cresecre la competenza di uno o più membri o semplicemente decidere che il progetto non è fattibile con le risorse a disposizione (da ingegnere sicuramente la cosa più difficile, vista la mentalità da "tutto si può fare!") Ciao Ale |
![]() |
![]() |
![]() |
#77 |
Member
Iscritto dal: Apr 2005
Messaggi: 71
|
il mio prof mi ha fatto na testa con UML,OCL, programmazione strutturata con pre e post condition..........ma debbo dire che son servite :-)
|
![]() |
![]() |
![]() |
#78 | |
Senior Member
Iscritto dal: Feb 2008
Messaggi: 484
|
Linguaggio inutile.
Quote:
Eh ma lo sanno tutti al PoliMi ci sono tutti i più migliori che ci sarebbino potuti essere ![]() ![]() Io comunque, sinceramente, vorrei vederli tutti i corsi in cui le idee che passano solo quelle dell'esimio Ivar. Se si lamenta delle università nordiche, le stesse che hanno dato i natali alle persone che più o meno in Europa hanno fatto la storia dell'Informatica, dubito fortemente che in Italia non troverebbe almeno le stesse anomalie e criticità. L'approccio da noi che va per la maggiore è il Waterfall. Di metodologie agili e affini non se ne parla manco di striscio, neanche in IngSW2. Chi lo fa rappresenta la schiera di mosche bianche sparse sul territorio italiano. |
|
![]() |
![]() |
![]() |
#79 | ||
Senior Member
Iscritto dal: Aug 1999
Città: Vares
Messaggi: 3831
|
Quote:
Prendi l'esempio del programmatore di C/ASM che ha iniziato anni fa e si è fatto per 20 anni le ossa su C diventando un superesperto. Questo però non comprende la struttura ad oggetti dei linguaggi di programmazione moderna, e anzi si ostina a dire che C è più performante quindi migliore di Python, Java e C++ tu lo metteresti a dirigere un team di programmatori? In questo caso il tuo discorso vale ancora oppure inizi a ritrattare dicendo che un programmatore deve anche evolversi e comprendere le strutture software ad un livello più alto? Quote:
![]() Però ti posso dire che l'azienda dove lavoro vende tra le tante cose software (oggetto delle mie consulenze da clienti) sviluppati in india, dove usano le metodologie di programmazione sbagliate indicate da jacobson: senza struttura, senza documentazione e che seguono processi di produzione economici che puntano solo al budget e alle deadline. Per lo più si seguono schemi waterfall, dove non c'è chiaramente dialogo tra chi programma e chi studia l'evoluzione degli applicativi, così ogni anello della catena può solo sperare che chi sta sotto faccia il suo lavoro "correttamente". In caso contrario chi fa testing o chi sta sul cliente apre un "change" e si tenta di risolovere il problema: procedimento lungo che spesso lascia il cliente a piedi fino alla nuova release del software. Non ti sembra un attimo migliorabile questo processo?
__________________
Quanto tutti sono d'accordo con me ho l'impressione di avere torto. |
||
![]() |
![]() |
![]() |
#80 |
Senior Member
Iscritto dal: Aug 2008
Città: Busto Arsizio (Va)
Messaggi: 4381
|
Questo si che è un homo novus!
![]()
__________________
NZXT H7 Flow RGB | CoolerMaster SilentPro M 850W | Asus ROG Strix X370-I Gaming | AMD Ryzen 7 5800x, NZXT Kraken x62 | G.Skill Trident-Z DDR4 2x16GB 3600Mhz | PowerColor Reaper AMD RX 9070XT | WD Black SN850X 2TB | SteelSeries Siberia V2, Logitech G513, SteelSeries Rival 600, Corsair MM200 | Dell U2515H |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:21.