3. Obiettivi Design Emergente: Più Cambiamenti, Più Profitti Mostrare come il cambiamento dei requisiti aumenti il profitto Trasmettere l’essenza di XP
4. Il software è un “prodotto”? Design Emergente: Più Cambiamenti, Più Profitti
5. Arrivare ad un prodotto innovativo Design Emergente: Più Cambiamenti, Più Profitti
6. Perché i progetti falliscono? Design Emergente: Più Cambiamenti, Più Profitti
7. Come fare profitti con i cambiamenti? Design Emergente: Più Cambiamenti, Più Profitti
8. Perché i progetti falliscono? Design Emergente: Più Cambiamenti, Più Profitti Velocità Complessità
9. La risposta di XP Design Emergente: Più Cambiamenti, Più Profitti Sostituire il motore dei valori con: comunicazione, feedback, semplicità, coraggio, rispetto Applicare pratiche volte a ridurre la complessità: di business, tecnica e di comunicazione
10. Semplice = far crescere il software Design Emergente: Più Cambiamenti, Più Profitti Programma fatturazione v0.1 :-)
11. Facile = la prima cosa che mi viene in mente Design Emergente: Più Cambiamenti, Più Profitti
12. I fondamenti del Design Emergente Meno strutturalmente complesso è il sistema corrente, e meno intrinsecamente complesso è il problema da risolvere, e minore sarà lo sforzo e quindi i costi e i tempi necessari per introdurre la nuova funzionalità Se per complessità marginale consideriamo l’incremento di complessità del sistema necessario per introdurre la nuova funzionalità, al fine di favorire il cambiamento nel tempo, lo sforzo da applicare dovrà essere indirizzato a ridurre la complessità marginale fino a renderla negativa Design Emergente: Più Cambiamenti, Più Profitti
13. Da dove si parte? Design Emergente: Più Cambiamenti, Più Profitti “ Since the whole system development starts from what the users wish to be able to do with the system, we build the system from the users’ point of view. In this way, it will be easy to discuss the requirements model with the users, and changes to the model will be simple to make” --Ivar Jacobson
15. Il videogioco di ChengQi Design Emergente: Più Cambiamenti, Più Profitti
16. Il videogioco di ChengQi Design Emergente: Più Cambiamenti, Più Profitti Movimento orizzontale cannoncino Movimento verticale UFO Movimento orizzontale astronave Balistica proiettile UFO Balistica proiettile cannoncino Incremento punteggio Morte cannoncino Collisione proiettile cannoncino Partita Space Invader Collisione proiettile barriera Collisione proiettile UFO e nave Strategia attacco UFO2 Strategia attacco UFO1 Strategia attacco UFO3 Strategia attacco astronave 4 settimane Rotazione 360° cannoncino Movimento verticale asteroide Collisione proiettile asteroide Collisione asteroide cannoncino Partita Asteroids 2,5 settimane
17. Prosimo passo: ridurre la complessità marginale Design Emergente: Più Cambiamenti, Più Profitti Mantenere bassa la complessità del sistema Mantenere bassa la complessità intrinseca del problema
18. Mantenere bassa la complessità del sistema Il Refactoring : Aumentare la capacità del codice di rivelare le intenzioni di design , a qualsiasi membro del team , alla prima occhiata Migliorare la struttura interna del sistema, consentendo alle necessarie astrazioni di emergere Design Emergente: Più Cambiamenti, Più Profitti “ Our job is to solve problems, not spoonfeed compilers (…) We need clarity so we can communicate using our code. We value conciseness and the ability to express a requirement in code accurately and efficiently”. --Dave Thomas employees.forEach(printSlip);
19. Mantenere bassa la complessità del sistema Malleabilità Continua applicazione di sforzo Assicurare che le strutture dipendono dalle funzionalità Design Emergente: Più Cambiamenti, Più Profitti
20. Design Emergente: Più Cambiamenti, Più Profitti Step 1: Stanze disponibili in un giorno per un albergo con una stanza Step 2: Stanze disponibili in un giorno per un albergo con una stanza con una prenotazione in un giorno Step 3: Stanze disponibili in un giorno per un albergo con una stanza con una prenotazione in un periodo Obiettivo: Fare una prenotazione in un albergo per un periodo di tempo Mantenere bassa la complessità intrinseca del problema
21. Il cambiamento come opportunità di business Design Emergente: Più Cambiamenti, Più Profitti Identificare nuove opportunità di business Assicurare ritorno investimenti rapido e frequente Consentire di cambiare quando necessario