SlideShare une entreprise Scribd logo
1  sur  23
Architettura del software:Architettura del software:
un approccio Agile.un approccio Agile.
Chi sono
• http://blogs.ugidotnet.org/luka
• http://wiki.ugidotnet.org
• http://www.codeplex.com/NSK
• http://www.guisa.org
FFar emergere l’Architettura gradualmente.
IIl ruolo dell’Architettura nell'approccio Agile.
GGli strumenti della Architettura Agile.
UUna visione moderna dell’Architettura.
Il ruolo dell’Architettura
nell’approccio Agile
• Che funzione svolge l'architettura nello
sviluppo software con un approccio Agile ?
Il ruolo dell’Architettura
nell’approccio Agile
La sfida:
• Il sw è Flessibile & Intangibile
• Complessità & Eterogeneità
• Impatto Economico
Il ruolo dell’Architettura
nell’approccio Agile
Gli strumenti dell’Architettura
Agile
• Di quali pratiche e strumenti fa uso
l’Architettura nell'approcio Agile?
• In che modo si applicano durante lo sviluppo?
• Quali competenze ed esperienze servono?
Gli strumenti dell’Architettura
Agile
• CRC Card [Wirf-Brock, 1990]
Classe : nomi, oggetti, concetti del mondo reale
Responsabilità : verbi e aggettivi
Collaboratori : relazioni-dipend. con altre classi
Gli strumenti dell’Architettura
Agile
• Unit Testing / TDD [Beck, 1998]
- aiuta a trovare un disegno semplice
- promuove il disaccoppiamento
- guida la distribuzione delle responsabilità
• Refactoring [Fowler, 1999]
- nuovo disegno stesso funzionamento
Gli strumenti dell’Architettura
Agile
GGli skill sulla Architettura, i presupposti:
• OOP: paradigmi, idiomi, strumenti
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ProgrammazioneObjectOriented
• OOD: attributi, principi, pattern, modellaz.
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/DisegnoObjectOriented
Gli strumenti dell’Architettura
Agile
GGli skill sulla Architettura:
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ArchitetturaObjectOriented
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/LibriSuObjectOrientedDesign
– Requisiti funzionali e non-funzionali +
Attributi di qualità del sw
– Architettura != Disegno != Infrastruttura
– Modelli di strutturazione e controllo
– I Reference Models
– Gli Enterprise Patterns
Gli strumenti dell’Architettura
Agile
GGli skill sulla Architettura:
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ArchitetturaObjectOriented
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/LibriSuObjectOrientedDesign
– Requisiti funzionali e non-funzionali +
Attributi di qualità del sw
– Architettura != Disegno != Infrastruttura
– Modelli di strutturazione e controllo
– I Reference Models
– Gli Enterprise Patterns
La visione moderna
dell’Architettura
• Quali sono i principi della moderna
Architettura del software?
• Che ruolo ha l'architetto in un team Agile?
La visione moderna
dell’Architettura
• Ultimo momento responsabile [M. Poppendieck, 2003]
• Principio di non reversibilità [E. Zaninotto, 2002]
• Disegno continuo [Fowler, 1999]
La visione moderna
dell’Architettura
Nella visione Classica
• Abstract Authority
• Project Oriented Management
• Comprehensive Documentation
• Following a Plan
• Governance
• Rationalization
• Outsourcing
• NDA
• Large Analyst Firms
• Management
• ERP for IT
• ...
Nella visione Moderna
• Community
• Strong Technical Leadership
• Working Software
• Responding to Change
• Stewardship
• Innovation
• Open Sourcing
• Declarative Living
• Small Analyst Firms
• Leadership
• Burndown
• ...
La visione moderna
dell’Architettura
• ...
• CMMi
• Best Practices
• Reference Architectures
• Time Accounting
• Buy vs. Build
• Project Oriented
• Politics
• Polarization
• Buy-in
• Restrictions
• Cathedral Style Development
• Process
• ...
• Agile Methods
• Practical Considerations
• Shared Vision
• Functional Delivery Accounting
• Buy vs. Build vs. Open
• Service Oriented
• Diplomacy
• Dialog
• Enlistment
• Rights
• Bazaar Style Development
• People
La visione moderna
dell’Architettura
• i componenti più rilevantirilevanti per il successo del progetto
• comprensione chiara e condivisa
• contribuirecontribuire a disegnare questi componenti
• questioni più rilevanti, opportunità a maggiore beneficiomaggiore beneficio
• evita le scelte di disegno irreversibiliirreversibili
• studi di fattibilità e raccolta requisiti comunicando
• quantita minimaminima di disegno necessaria, la massima semplicitàsemplicità
• contribuire alla crescitacrescita del team
Far emergere l’Architettura
gradualmente
• Come far emergere l’Architettura invece di
stabilirla a priori?
• Come migliorare l’Architettura invece di
degradarla ad ogni modifica?
Far emergere l’Architettura
gradualmente
• Evolvere un sistema (legacy) migliorandolo
• Decidere dove piuttosto che quanto
• Miglioramenti piccoli e continui invece della
perfezione
• Feature & Refactoring
Far emergere l’Architettura
gradualmente
• Infrastruttura
Far emergere l’Architettura
gradualmente
• Disegno
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ValutareIlDisegnoDiUnaApplicazione
– Tipi raggruppti in Assembly
– Tipi raggruppati in Namespace
– Nomi tipi, membri, parametri pubblici
– Ripartizione responsabilità tra i tipi
– Non-classi di soli dati o sole funzioni
– Dipendenze inutili e cicliche
– Ereditarietà da cambiare in contenimento
– Spezzare tipi e metodi troppo lunghi
– Riorganizzare algoritmi lunghi e complicati
http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/CodeSmell
Q & A
http://blogs.ugidotnet.org/luka/contact.aspx
http://www.agileday.it - 1 Dic. Milano
http://www.xp2007.org/ - Como
Visual Studio 2005 è disponibile: scegli il prodotto più giusto per te
www.microsoft.it/msdn/vs2005/
– Visual Studio 2005 Team Edition
• Visual Studio Team Edition (for Architects, Developers o Testers) con MSDN Premium
• Visual Studio Team Suite con MSDN Premium
– Strumenti professionali
• Visual Studio 2005 Professional
• Visual Studio 2005 Professional con MSDN Professional
• Visual Studio 2005 Professional con MSDN Premium
• Visual Studio 2005 Tools for Microsoft Office System
– Strumenti di base
• Visual Studio 2005 Standard
• Visual Studio 2005 Express Edition
– Altri strumenti
• Visual SourceSafe 2005
• VisualFox Pro 9.0
Dove acquistare:
www.microsoft.it/msdn/rivenditori/
Licenze individuali:
1 sviluppatore = 1 licenza
Per informazioni:
itamsdn@microsoft.com

Contenu connexe

Tendances

Redistributable Intro To Scrum Ita
Redistributable Intro To Scrum ItaRedistributable Intro To Scrum Ita
Redistributable Intro To Scrum ItaLuciano Benetti
 
Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Manuel Scapolan
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie AgiliAlessandro Astarita
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project ManagementGiulio Roggero
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2Giulio Roggero
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiMarco Da Rin Zanco
 
Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshopGiulio Roggero
 
Manifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di SoftwareManifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di SoftwareAmmLibera AL
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
 
Rifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacyRifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacySusanna Ferrario
 
Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013Felice Pescatore
 
Scrum una breve introduzione
Scrum una breve introduzioneScrum una breve introduzione
Scrum una breve introduzionerhubbit
 
Introduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentPaolo Sammicheli
 
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service ManagementITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service ManagementSimone Onofri
 
Agile raccontato a mia nonna
Agile raccontato a mia nonnaAgile raccontato a mia nonna
Agile raccontato a mia nonnaFelice Pescatore
 
Le aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliLe aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliGiulio Roggero
 

Tendances (20)

Redistributable Intro To Scrum Ita
Redistributable Intro To Scrum ItaRedistributable Intro To Scrum Ita
Redistributable Intro To Scrum Ita
 
Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie Agili
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
 
Semplicemente Agile
Semplicemente AgileSemplicemente Agile
Semplicemente Agile
 
Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshop
 
Manifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di SoftwareManifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di Software
 
Agile in 45 minuti
Agile in 45 minutiAgile in 45 minuti
Agile in 45 minuti
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)
 
Rifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacyRifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacy
 
Agile@core - Scrum
Agile@core - ScrumAgile@core - Scrum
Agile@core - Scrum
 
Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013
 
Scrum una breve introduzione
Scrum una breve introduzioneScrum una breve introduzione
Scrum una breve introduzione
 
Introduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software Development
 
Lezione 1: I metodi agili
Lezione 1: I metodi agiliLezione 1: I metodi agili
Lezione 1: I metodi agili
 
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service ManagementITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
 
Agile raccontato a mia nonna
Agile raccontato a mia nonnaAgile raccontato a mia nonna
Agile raccontato a mia nonna
 
Le aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliLe aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agili
 

Similaire à Architettura del software un approccio Agile, Web-cast Microsoft 2006

iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010 iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010 marcocarnesecchi
 
Agile design bricks for buildings - Agile Venture - PN.pdf
Agile design bricks for buildings - Agile Venture - PN.pdfAgile design bricks for buildings - Agile Venture - PN.pdf
Agile design bricks for buildings - Agile Venture - PN.pdfClaudio Saurin
 
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...DrupalDay
 
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023AndreaStagi3
 
Introduzione - Web design
Introduzione - Web designIntroduzione - Web design
Introduzione - Web designgowow
 
LEAN IT - Pensiero snello per migliorare risultati e prestazioni
LEAN IT - Pensiero snello per migliorare risultati e prestazioniLEAN IT - Pensiero snello per migliorare risultati e prestazioni
LEAN IT - Pensiero snello per migliorare risultati e prestazioniProject Group Srl
 
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupalDay
 
Lezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 edition
Lezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 editionLezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 edition
Lezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 editionMarco Buonvino
 
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteUX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteMarco Pesani
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaTecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaMarco Parenzan
 
Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)Andrea Grandi
 
Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)Andrea Grandi
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTMatteo Gentile
 
La governance de iprogetti agili
La governance de iprogetti agiliLa governance de iprogetti agili
La governance de iprogetti agiliinspearit Italy
 

Similaire à Architettura del software un approccio Agile, Web-cast Microsoft 2006 (20)

iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010 iLook ZUI, congresso SIE 2010
iLook ZUI, congresso SIE 2010
 
Open & SmartDesign
Open & SmartDesignOpen & SmartDesign
Open & SmartDesign
 
Agile design bricks for buildings - Agile Venture - PN.pdf
Agile design bricks for buildings - Agile Venture - PN.pdfAgile design bricks for buildings - Agile Venture - PN.pdf
Agile design bricks for buildings - Agile Venture - PN.pdf
 
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
Drupal Day 2012 - IL RESPONSIVE WEB DESIGN NON È SOLO UNA QUESTIONE DI LAYOUT...
 
MDA_WS
MDA_WSMDA_WS
MDA_WS
 
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
 
Introduzione - Web design
Introduzione - Web designIntroduzione - Web design
Introduzione - Web design
 
LEAN IT - Pensiero snello per migliorare risultati e prestazioni
LEAN IT - Pensiero snello per migliorare risultati e prestazioniLEAN IT - Pensiero snello per migliorare risultati e prestazioni
LEAN IT - Pensiero snello per migliorare risultati e prestazioni
 
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAIDrupal Day 2011 - Drupal per la ricerca, il caso EAI
Drupal Day 2011 - Drupal per la ricerca, il caso EAI
 
Lezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 edition
Lezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 editionLezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 edition
Lezione Comunicazione Visiva e Design delle Interfacce - Unimib - 2014 edition
 
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utenteUX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
UX Engineering: il ruolo dello sviluppo nel design dell'esperienza utente
 
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che CambiaTecnologie e Tecniche per affrontare il Mondo che Cambia
Tecnologie e Tecniche per affrontare il Mondo che Cambia
 
Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)
 
Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
Techno DESIGN
Techno DESIGNTechno DESIGN
Techno DESIGN
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
 
Tesi8
Tesi8Tesi8
Tesi8
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICT
 
La governance de iprogetti agili
La governance de iprogetti agiliLa governance de iprogetti agili
La governance de iprogetti agili
 

Plus de Luca Minudel

It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...Luca Minudel
 
Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2Luca Minudel
 
Project management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specificProject management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specificLuca Minudel
 
Project management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specificProject management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specificLuca Minudel
 
Scrum master self assessment v2.7
Scrum master self assessment v2.7Scrum master self assessment v2.7
Scrum master self assessment v2.7Luca Minudel
 
Agility - definition and curricula
Agility - definition and curriculaAgility - definition and curricula
Agility - definition and curriculaLuca Minudel
 
Agile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radarAgile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radarLuca Minudel
 
CTO self-assessment radar
CTO self-assessment radarCTO self-assessment radar
CTO self-assessment radarLuca Minudel
 
Reflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and ExtractReflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and ExtractLuca Minudel
 
New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3Luca Minudel
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
 
Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...Luca Minudel
 
New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2Luca Minudel
 
Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)Luca Minudel
 
New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2Luca Minudel
 
Agility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) AgileAgility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) AgileLuca Minudel
 
Lightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and AgileLightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and AgileLuca Minudel
 
Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Luca Minudel
 
Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGLuca Minudel
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITALuca Minudel
 

Plus de Luca Minudel (20)

It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...
 
Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2
 
Project management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specificProject management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specific
 
Project management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specificProject management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specific
 
Scrum master self assessment v2.7
Scrum master self assessment v2.7Scrum master self assessment v2.7
Scrum master self assessment v2.7
 
Agility - definition and curricula
Agility - definition and curriculaAgility - definition and curricula
Agility - definition and curricula
 
Agile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radarAgile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radar
 
CTO self-assessment radar
CTO self-assessment radarCTO self-assessment radar
CTO self-assessment radar
 
Reflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and ExtractReflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and Extract
 
New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...
 
New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2
 
Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)
 
New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2
 
Agility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) AgileAgility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) Agile
 
Lightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and AgileLightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and Agile
 
Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...
 
Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENG
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITA
 

Architettura del software un approccio Agile, Web-cast Microsoft 2006

  • 1. Architettura del software:Architettura del software: un approccio Agile.un approccio Agile.
  • 2. Chi sono • http://blogs.ugidotnet.org/luka • http://wiki.ugidotnet.org • http://www.codeplex.com/NSK • http://www.guisa.org
  • 3. FFar emergere l’Architettura gradualmente. IIl ruolo dell’Architettura nell'approccio Agile. GGli strumenti della Architettura Agile. UUna visione moderna dell’Architettura.
  • 4. Il ruolo dell’Architettura nell’approccio Agile • Che funzione svolge l'architettura nello sviluppo software con un approccio Agile ?
  • 5. Il ruolo dell’Architettura nell’approccio Agile La sfida: • Il sw è Flessibile & Intangibile • Complessità & Eterogeneità • Impatto Economico
  • 7. Gli strumenti dell’Architettura Agile • Di quali pratiche e strumenti fa uso l’Architettura nell'approcio Agile? • In che modo si applicano durante lo sviluppo? • Quali competenze ed esperienze servono?
  • 8. Gli strumenti dell’Architettura Agile • CRC Card [Wirf-Brock, 1990] Classe : nomi, oggetti, concetti del mondo reale Responsabilità : verbi e aggettivi Collaboratori : relazioni-dipend. con altre classi
  • 9. Gli strumenti dell’Architettura Agile • Unit Testing / TDD [Beck, 1998] - aiuta a trovare un disegno semplice - promuove il disaccoppiamento - guida la distribuzione delle responsabilità • Refactoring [Fowler, 1999] - nuovo disegno stesso funzionamento
  • 10. Gli strumenti dell’Architettura Agile GGli skill sulla Architettura, i presupposti: • OOP: paradigmi, idiomi, strumenti http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ProgrammazioneObjectOriented • OOD: attributi, principi, pattern, modellaz. http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/DisegnoObjectOriented
  • 11. Gli strumenti dell’Architettura Agile GGli skill sulla Architettura: http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ArchitetturaObjectOriented http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/LibriSuObjectOrientedDesign – Requisiti funzionali e non-funzionali + Attributi di qualità del sw – Architettura != Disegno != Infrastruttura – Modelli di strutturazione e controllo – I Reference Models – Gli Enterprise Patterns
  • 12. Gli strumenti dell’Architettura Agile GGli skill sulla Architettura: http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ArchitetturaObjectOriented http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/LibriSuObjectOrientedDesign – Requisiti funzionali e non-funzionali + Attributi di qualità del sw – Architettura != Disegno != Infrastruttura – Modelli di strutturazione e controllo – I Reference Models – Gli Enterprise Patterns
  • 13. La visione moderna dell’Architettura • Quali sono i principi della moderna Architettura del software? • Che ruolo ha l'architetto in un team Agile?
  • 14. La visione moderna dell’Architettura • Ultimo momento responsabile [M. Poppendieck, 2003] • Principio di non reversibilità [E. Zaninotto, 2002] • Disegno continuo [Fowler, 1999]
  • 15. La visione moderna dell’Architettura Nella visione Classica • Abstract Authority • Project Oriented Management • Comprehensive Documentation • Following a Plan • Governance • Rationalization • Outsourcing • NDA • Large Analyst Firms • Management • ERP for IT • ... Nella visione Moderna • Community • Strong Technical Leadership • Working Software • Responding to Change • Stewardship • Innovation • Open Sourcing • Declarative Living • Small Analyst Firms • Leadership • Burndown • ...
  • 16. La visione moderna dell’Architettura • ... • CMMi • Best Practices • Reference Architectures • Time Accounting • Buy vs. Build • Project Oriented • Politics • Polarization • Buy-in • Restrictions • Cathedral Style Development • Process • ... • Agile Methods • Practical Considerations • Shared Vision • Functional Delivery Accounting • Buy vs. Build vs. Open • Service Oriented • Diplomacy • Dialog • Enlistment • Rights • Bazaar Style Development • People
  • 17. La visione moderna dell’Architettura • i componenti più rilevantirilevanti per il successo del progetto • comprensione chiara e condivisa • contribuirecontribuire a disegnare questi componenti • questioni più rilevanti, opportunità a maggiore beneficiomaggiore beneficio • evita le scelte di disegno irreversibiliirreversibili • studi di fattibilità e raccolta requisiti comunicando • quantita minimaminima di disegno necessaria, la massima semplicitàsemplicità • contribuire alla crescitacrescita del team
  • 18. Far emergere l’Architettura gradualmente • Come far emergere l’Architettura invece di stabilirla a priori? • Come migliorare l’Architettura invece di degradarla ad ogni modifica?
  • 19. Far emergere l’Architettura gradualmente • Evolvere un sistema (legacy) migliorandolo • Decidere dove piuttosto che quanto • Miglioramenti piccoli e continui invece della perfezione • Feature & Refactoring
  • 21. Far emergere l’Architettura gradualmente • Disegno http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/ValutareIlDisegnoDiUnaApplicazione – Tipi raggruppti in Assembly – Tipi raggruppati in Namespace – Nomi tipi, membri, parametri pubblici – Ripartizione responsabilità tra i tipi – Non-classi di soli dati o sole funzioni – Dipendenze inutili e cicliche – Ereditarietà da cambiare in contenimento – Spezzare tipi e metodi troppo lunghi – Riorganizzare algoritmi lunghi e complicati http://wiki.ugidotnet.org/default.aspx/UGIdotNETWiki/CodeSmell
  • 22. Q & A http://blogs.ugidotnet.org/luka/contact.aspx http://www.agileday.it - 1 Dic. Milano http://www.xp2007.org/ - Como
  • 23. Visual Studio 2005 è disponibile: scegli il prodotto più giusto per te www.microsoft.it/msdn/vs2005/ – Visual Studio 2005 Team Edition • Visual Studio Team Edition (for Architects, Developers o Testers) con MSDN Premium • Visual Studio Team Suite con MSDN Premium – Strumenti professionali • Visual Studio 2005 Professional • Visual Studio 2005 Professional con MSDN Professional • Visual Studio 2005 Professional con MSDN Premium • Visual Studio 2005 Tools for Microsoft Office System – Strumenti di base • Visual Studio 2005 Standard • Visual Studio 2005 Express Edition – Altri strumenti • Visual SourceSafe 2005 • VisualFox Pro 9.0 Dove acquistare: www.microsoft.it/msdn/rivenditori/ Licenze individuali: 1 sviluppatore = 1 licenza Per informazioni: itamsdn@microsoft.com

Notes de l'éditeur

  1. Motivazioni I principi dell’architettura modern hanno radici nell’approccio agile Approccio agile lega Architettura in modo diretto al valore consegnato all’utente l’approccio agile permette di far emergere l’arhitettura in modo graduale da codice legacy
  2. - wiki strumento team agile, primo .net progettazione, Prog .NET10 anni fa db design, progettazione a componenti e infrastruttura fisica6 anni progettazione OO4 anni met. agili
  3. Intro 3 slide A ruolo arch 1+2 slide - svi vertivale B strumenti 1+4 slide – tecniche – skill C vis. Moderna 1+5 slide – principi – esper. Pratica – ruolo dell’architetto D graduale 1+3 slide – legacy - new
  4. - Meccanica -> elettronica anal. -> eletr. Dig. -> inform. Il sw è flessibile (telefononi e DVD, digi-sw)+ si adatta facilmente a nuove esigenze (tempi costi) + facile da aggiornare, si tele-trasporta + facilmente che un oggetto fisico- funziona in condizioni limite… (casa cane, grattacielo) è intangibile+ non sottostà a vincoli delle leggi fisiche, non ci sono limiti fisici alle potenzialità del sw+ esempio 1 giornale 1 pasto (*** stampa lsitato, run cincuiti elettrici, igor damiani epopea del bit) - non si percepisce facilmente lo stato di avanzamento e la qualità del bene prodotto (*** condomini, ponti, seggiovia, nave) Complessità nuova tecnologia eterogenità sistemi
  5. - a strati orizzontali ma verticale feature per feature - perchè ? 1 - aderenza ai bisogni reali degli utenti senza incomprensioni su quello che realmente serve 2 - misura reale stato avanzamento 3 - prima feature importanti, non feature non necessarie = Economicità -> flessibilità sui bisogni di busines - possibili grossi cambiamenti sul codice, bisognoa atrezzarsi!!! - in team XP tanto disgno, grossa opportunità di imparare facendo parte di un team xp con la guida del coach e facendo pair con i membri senior del team (*** appartamento, garage, tetto, giardino) ---------- - - - - - - - - - - - - - - -
  6. (*** orchestra sinfonica -> fiati, archi, perussioni arena di verona, la fenice di venezia, la scala di MI)
  7. 1-nel dominio app duranre la racc. Requisiti=user story 2-nella implementazione della user story a livello implementativo - Class Responsability Collaborators EDUP Nome degli oggetti responsabilità (chò che l’oggetto conosce e ciò che fa = UML att.prop) Collaboratori (dipendenze) Requisiti (dominio del problema) Planning (chirire req. E investigare soluzione) Disegno upfront pre-sviluppo x chiarire dubbi (dominio soluz.) Per fare il punto a un nuovo pair Fisicità – tavolo con utente/pair - Metafora (dominio della soluz.) 1 - GUI a finestre e menù, le cartelle 2 - semafori; sincronizzazione tramite scambio messaggi;code e pile
  8. TDD, sedimenta e capitalizza il lavoro che normalmente si fa sul debugger in modo volatile. (un test è come un diamante) - Nunit, MbUnit, TestDriven.NET, VS2005 Refactoring Migliorare il disegno con piccole modifiche al codice che non alterano il comportamento - tst scritti prima - non bug fix - no new feature - compilatore e errori compile-time OK, sln con i prj collegati ok- strong typing OK (interfaccie, generics, classi base OK! )- weak tiping ko (object/variant, reflection che introduce possibili fallimenti sono a run-time KO)- Resharper, VS2005 (*** orfeo/euridice; romeo e giulietta; paola e chiara – utest+refactoring)
  9. Architettura no arhitetto modellazione uml / crc (*** cavalieri di camelot, non investitura org/onore)
  10. Leggere e capire :Req. Funz = features-specifiche tecniche - Dom. Applic.Req. Non-funz. = vincoli spesso critici - considerano l’intero sistemaReq. Non-funz. = Attributi di Q del sw- in uso difficili da misurare (Q.ta esterna)- statici facili da mis (Q.tà interna ma relazione con Q.ester non univoca) usabilità - affidabilità e sicurezza - efficienza - manutenibilità - portabilità, interoperabilità, accessibilità - Arch <> Disegno <> Infrastruttura (tecnologia (ASP.NET o WinForm o Mobile; se Remoting o WS o TCP/IP; SqlServer Express o Workgroup o Standard o Enterprise; ) Distributed app - Fault Tolerance - Scalability - per - Administration
  11. Quali sono i principali modelli generici di strutturazione di una architettura? -modello a repository -modello client-server -modello a macchina astratta detto anche a livelli Quali sono i principali modelli generici di controllo del flusso di elaborazione di una architettura? -centralized - call-return - manager -event-driven - broadcast -interrupt driven - Reference Models (ISO OSI, tcp, http stateless, HCI) - Ent pattern
  12. La bussola che ci guida imentre attriaversiamo il pjt come una bussola ci guida nel mare durante una crociera
  13. Ultimo momento reponsabile - Economicità + Informazioni / esperienza + possibilità di evitare di ridurre le opzioni x il futuro dopo perderei una alternativa (il tmpo ha deciso x me) Es. disegno + esperto + investimento di disegno posso rimandare la domanda non è quanto ma x un arch. _Dove_ + import Principio di Non reversibilità -> semplicità- that one of an architect’s most important tasks is to remove architecture by finding ways to eliminate irreversibility in software designs. nessun limite teorico solo l’intuizionee Creatività Disegno sempre - Reagire non pianificare EDUP - imparare dall’esperienza - evita feature inutili (non si sa maii ke possa servire , cod. pubblic) - evita investimenti in flessibilità speculative- istinto, ragionamento, esperienza (ultim mom resp)
  14. James McGovern 2003 The pratical guide to enterprise architecture Capability Maturity Model® Integration – tolstoy -dostojeskij
  15. Quali attività sono utili x l’architettura? - No ruolo, resp e visione condivisa Quanto -> dove individuare i componenti del sistema che sono più importanti per il successo del progetto e quindi per la implementazione delle funzionalità richieste con la qualità attesa, entro i vincoli (tempi, costi, ...) fissati, per soddisfare i bisogni che hanno portato a commissionare lo sviluppo del software assicurarsi che tutto il team abbia una comprensione chiara e condivisa di questi compomenti e del loro disegno contribuire a disegnare questi componenti tenere sotto controllo le questioni più importanti, risolverle prima che diventino problemi seri e cogliere le opportunità per effettuare i cambiamenti che portano maggiore beneficio individuare le scelte di disegno irreversibili (quelle il cui costo del cambiamento è maggiore), posticiparle (e quindi beneficiare dei feedback, della maggiore comprensione ed esperienza del sistema maturata nel frattempo) all'ultimo momento responsabile utilizzando il disegno, l'esperienza, l'organizzazione e l'immaginazione per rendere la scelta reversibile contribuire agli studi di fattibilità e alla raccolta requisiti comunicando con linguaggio non tecnico le conseguenze tecniche e in termini di tempo e costi delle diverse scelte possibili e le coseguenze delle varie idee espresse avere sempre chiara la quantita minima di disegno necessaria per il successo del sistema, la massima semplicità applicabile e i punti del sistema che hanno bisogno di ulteriore disegno contribuire alla crescita del team aumentando la sua capacità di contribuire all'architettura del sistema.
  16. Legacy meglio di new (evolvere e semplificare) Dove ? Roi per il cliente Non degrado, no perfezione irraggiungibile Feature più refactoring Lavorare bene Test+refactoring Cosa subito cosa dopo
  17. - Big bang – day by day , fantasia realtàold Prj stabile anche se migliorabile (win/web/monile, remot/ws/tcp, sql exp/wg/std/ent, Distr fail safe/load bal/amm.centralizzata, cluster/grid comp - Infrastruttura (hw, tec) vertivale, prima feat imp e studio fattibilità, techn. Excellence - e se poi ci vuole + di quello che si pensava Federico(formaz, complex, svil) - sapere quello che non si sa e l’impatto - sensibilità ed esperienza - piccoli passi, misurare la velocità e calcolare ora arrivo, - forse poi non serve dopo aver visto feature + imp.
  18. - Assembly i tipi che solitamente vengono rilasciati e riutilizzati insieme ? evoluti e rilasciati insieme, stesso versioning, impostazioni di sicurezza; stessi tipi privati, niente dipendenze cicliche tra Assembly- Namespace i tipi logicamente correlati, namespace organizzati (nidificazione e distribuiti tra Assembly) secondo relazione logica, ridurre dipendenze tra namespace distinti- Nomi pubblici classi->oggetti/concetti, membri->azioni/verbi e parametri->ruolo, con dei nomi intuitivi a prima vista per un nuovo utilizzatore - Responsabilità ripartite tra classispostare membri di classe che non assolvono alle responsabilità individuando la classe più adatta. - Non-classi soli dati o funz. Eliminare ridistr. Stato/Comp.- Dipendenze inutili e cicliche - (ora tipi sensati..) disegnare ed eliminare- Ereditarietà da trasformre in contenimento (Is o Has, 0 o 2+ o sempre e solo uno, cambio stato? - Classi metodi troppo lunghi- Algoritmi troppo complessi (variabili, flusso, scomposizione) TOP DOWN _BOTTON UP