che cosa è il lean software? dove nasce? | nasce dall'ambiente automobilistico della ditta toyota che riesce a ottimizzare i tempi di produzione producendo in serie in casa e riducendo al minimo gli sprechi
vantaggi:
- scoperta degli errori molto presto
- velocizzazione della produzione |
su quale principio si fonda il test driven development? | è una tecnica di progettazione del software che mira a far emergere “dal basso” il design più semplice in grado di risolvere un dato problema. Non si tratta piuttosto un approccio alla scrittura di questi ultimi.
si fonda su due concetti fondamentali:
- test first
- baby steps
mira a stabilire un ciclo di feedback istantaneo e evitare di perdere tempo su una soluzione che non funziona |
che cosa è l'extreme programming? | è una delle metodologie agili
segue perciò il manifesto per lo sviluppo agile di software
si fonda su due principi:
- incrementa quindi semplifica
- sviluppo guidato dal test |
quali sono i vantaggi che porta il test driven development? | scrivere il test prima e il codice dopo aiuta invece a progettare prodotti la cui correttezza può essere provata.
Scrivere prima i test aiuta a definire chiaramente le interfacce del programma e come queste comunicano tra di loro, mentre se non dovessimo farlo potremmo avere delle dipendenze complicate da rimuovere. |
quali sono le variabili in gioco in un progetto secondo Beck? | portata: la quantità di funzionalità da implementare, può cambiare nel corso dello sviluppo;
tempo: che si può dedicare al progetto;
qualità: che si vuole ottenere, principalmente relativa a correttezza e affidabilità. si cerca di avere la qualità migliore possibile a scanso di compromessi
costo: le risorse (finanziare o in termini di personale) che si possono impegnare. |
quali vantaggi porta al cliente uno sviluppo TDD? | Il cliente è certo che lo sviluppatore si sia dedicando al progetto siccome vede il prodotto crescere a poco a poco, inoltre anche il cliente fa parte del team, di conseguenza può accertarsi in prima persona che il team di sviluppo si dedichi al massimo delle possibilità al progetto.
Dà la possibilità al cliente di avere comunque qualcosa in mano se ad un certo punto vuole interrompere la collaborazione.
Permette al cliente di cambiare idea sulla portata e sulle funzionalità richieste in corso d’opera, bandendo la rigidità dei documenti di specifica. |
quali sono le metodologie utilizzate dall'extreme programming? | Planning game
Brevi cicli di rilascio
Uso di una metafora
Presumere la semplicità
Testing
Refactoring
Pair programming
Proprietà collettiva
Integrazione continua
Settimana da 40 ore
Cliente sul posto
Standard di codifica
They’re just rules |
di che cosa tratta il planning game? | È l’attività di pianificazione che viene fatta all’inizio di ogni iterazione e serve per “congelare” il sottoinsieme di requisiti sul quale il team lavorerà per le prossime ~2 settimane.
1) il client scrive le user stories
2) i developer assegnano una stima del tempo necessario per ogni US
3) il manager decide quali US implementare in questo ciclo di sviluppo |
come sono definite le user stories? | - numero identificativo
- il soggetto, ovvero il ruolo dell’utente nell’azienda (può anche essere esterno);
- l’azione che vuole eseguire il soggetto;
- la motivazione che spinge il soggetto a portare avanti l’azione descritta.
- un caso di test per l'accettazione
- il valore che il cliente attribuisce alla user story |
che cosa si intende per velocity nel mondo agile? | è il numero di story point guadagnati nell’arco dell’iterazione corrente, proprio per questo motivo è poco oggettiva e molto variabile in base alle stime proposte.
le storie non compiute al 100% non vengono considerate come fatte! |
che cosa è il team estimation game? | è un metodo di stima del lavoro nello sviluppo software che si basa su confronti tra task anziché su stime numeriche. Esso è suddiviso in tre fasi:
- a turno i developer posizionano una story a destra o a sinistra di una story oppure sotto
- vengono attribuiti dei valori del planning poker per ogni colonna a partire dalla prima !
- viene stimato il tempo di risoluzione di una delle prime carte, il resto delle carte viene stimato di conseguenza |