Ci sono bug e bug. Alcuni si nascondono nel codice e possono essere trovati prima che arrivino al cliente, altri emergono dall’integrazione dei sistemi e possono essere gestiti in modo che non facciano danni in produzione, altri ancora invece sfuggono inesorabilmente.
Il Test Driven Development è una pratica sempre più diffusa, ci consente di scrivere software che funziona e che può evolvere più rapidamente e facilmente. Tuttavia, sebbene sia una pratica test-first, viene spesso utilizzata quando ormai è troppo tardi e quell’ultima categoria di bug ha già prodotto il suo effetto.
Si tratta infatti degli errori che si celano nelle pieghe dei requisiti e delle specifiche. Le buone notizie sono due: anche i requisiti e le specifiche possono essere “testati” prima ancora di scrivere una sola riga di codice, anche questi test possono essere automatizzati.
La passione non è sufficiente e il talento è sopravvalutato.
La vera differenza tra chi eccelle in una disciplina e tutti gli altri è la pratica.
I risultati ottenuti facendo pratica sono funzione non solo della quantità di tempo investito ma anche della qualità della pratica stessa, è quindi importante un approccio strutturato.
Partendo dagli studi del Dr. K. Anders Ericsson sulla pratica deliberata vedremo una carrellata delle tecniche che ci permettono di migliorare nella programmazione e nell’applicazione dei metodi agili.
La comunicazione tra le persone è il primo valore dell’Agile. Trasmettere la vision di un’idea è molto difficile. Attraverso i Canvas è possibile non solo condividere la vision ma anche il viaggio che porterà alla realizzazione dell’intero prodotto.
Adottando i vari Canvas come il Business Model Canvas, il Lean Canvas e il Product Canvas è possibile definire e condividere le ipotesi iniziali, validarle sul mercato misurando i risultati e confrontarle con i risultati attesi. I Canvas quindi non solo ci aiutano nella parte iniziale del progetto ma ci accompagnano per tutto il ciclo di vita del prodotto evolvendo con esso.
Questi concetti non sono strettamente legati al software ma possono essere applicati in contesti differenti.
Durante questo workshop vedremo insieme come, partendo da un’idea, si possa realizzare un prototipo di applicazione mobile in meno di due ore… il tutto sotto forma di gioco.
Cosi come non si può prescindere dal buon design quando si progetta un software, allo stesso tempo va fatta estrema attenzione al consumo di risorse, alle performances, all’affidabilità, criteri che nell’ubiquità del software non possono mai essere dati per scontato. Vediamo come approcciare questi problemi.
Perchè l’approccio accademico al software impone spesso di ragionare “a risorse infinite”, mentre nella realtà dei fatti questo non è vero? Abbiamo la possibilità di intercettare rapidamente il degrado del software e il consumo di risorse? In questo talk vorremmo condividere alcune esperienze di team atte a misurare la “febbre” del software, ovvero discutere di alcuni indicatori che possono dare un buon feeling sullo stato di salute del software che stiamo sviluppando, monitorando i quali possiamo far avvicinare l’approccio accademico, teorico a quello pratico e di produzione.
The document discusses issues that can arise when practicing test-driven development (TDD), such as clueless tests, overuse of mocks, and other poor testing practices that lead to problems. It describes a talk given by Uberto Barbini on how TDD can go wrong and provide examples of bad test smells like tests with too many assertions or dependencies. The talk aims to help developers improve their TDD skills and write better, more maintainable tests.
One, No One, One Hundred Thousand Projects (Uno, Nessuno, Centomila Progetti)Gaetano Mazzanti
This document discusses managing projects and initiatives using lean and agile principles. It advocates for limiting work in progress, visualizing and measuring flow, prioritizing based on cost of delay, making decisions with uncertainty in mind, and focusing on continuous learning over predetermined destinations or best practices. The overall message is that complex domains with human involvement require an adaptive approach focused on transparency, collaboration, and experimentation over rigid plans.
Talk presentato all'Italia Agile Day il 30/11/2013 a Reggio Emilia.
I valori di Agile sono come i principi alla base della cucina. In questa presentazione sono presentati alcuni ingredienti agili da amalgamare con cura.
Outcome not Output: A Story of Lean UX AdoptionSteve Maraspin
This presentation shares our experience with Lean UX adoption and offers some hints on how to combine User Centered Design activities within an Agile development workflow.
Test Driven Development su iOS è possibile e persino utile.
Invece di leggere blog post che sottointendono che TDD su iOS sia difficile e inutile venite a vedere chi lo usa sul serio e ha il coraggio di programmare ad una conferenza davanti ad altre persone.
Avvertenze:
questo talk non contiene paternali sul perché si dovrebbe (o non si dovrebbe) fare TDD
in questo talk non verranno usati strumenti complicati
in questo talk verrà scritto ed eseguito codice dal vivo
Dopo una brevissima introduzione passerò a sviluppare guidato dai test una semplice applicazione per iPhone.
Lean anche io! No tu no! - Italian Agile Days 2013Andrea Scavolini
Slide presentate a Italian Agile Day(s) 2013 di Reggio Emilia:
Lean anche io!
No tu no!
Sessione incentrata sulla condivisione dell'esperienza di transizione verso un modello Lean in progetti reali di consulenza per grandi aziende dove spesso molte delle pratiche e delle metodologie proposte in ambito agile sono difficilmente applicabili. L’obiettivo è mostrare i successi ottenuti (sia per il team di sviluppo che per gli utenti), condividere i nostri fallimenti, i problemi incontrati e le sfide aperte per offrire un punto di vista su come può essere affrontata la transizione ad un modello agile in contesto di relazione grande cliente-fornitore.
Il 4° punto del Manifesto Agile può essere molto complicato non solo in XP, ma anche sul piano personale, relazionale e caratteriale. Sono aspetti fondamentali e trasversali del lavoro (e non solo). Ma abbracciare il cambiamento non è esattamente nella natura umana; è sfidante, è difficile… Fortunatamente però siamo in grado di apprendere e modificare il nostro comportamento in modi infiniti. Per arrivare ad ottimi risultati.
Siete in una situazione in cui sapete di poter dare molto, ma non riuscite ad innescare la scintilla del cambiamento?
Oppure desiderate che un vostro collega, il vostro team lo facesse ed invece non sembra esserci speranza?
Nel management classico o tradizionale si leggono libri con titoli come “Gestione delle risorse umane e motivazione al lavoro”. Ma forse essere trattati come risorse e non persone non è più sufficiente, e poi non è molto efficace motivare al cambiamento attraverso trucchetti o persuasione. Qualche suggerimento per capire meglio perché è difficile, gli ingredienti utili per cambiare e per capire la motivazione.
Sempre tenendo presente che la “svolta indotta”, quella che inizia con “Da domani iniziamo a…” o “Ho deciso che da oggi…” è quella più difficile da portare avanti.
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
requisiti rappresentano, a mio avviso, il ‘fil rouge’ di tutto lo sviluppo software, sia che si tratti di applicazioni web o mobile, sia che siano coinvolti grandi sistemi Enterprise. Cerchiamo di capire perché.
Possiamo affermare che Lean Agile sta di fatto divenendo uno delle metodologie più adottate (se non il main-stream stesso) in ambito informatico e conseguentemente anche in ambiti connessi con l’informatica.
Nel mio talk (che spero possa trasformarsi in una tavola rotonda sul tema degli agile requirements e di ciò che ruota attorno ad essi) desidero presentare le varie possibilità di gestire i requisiti in modo agile e di seguire ad esempio il percorso delle “user story” (uno dei più efficaci metodi inventati in ambito agile o meglio nella metodologia eXtreme Programming per gestire i requisiti) in tutte le diverse fasi della loro ‘vita’ : a partire da ‘theme’, ‘epic’ e poi ‘story’ realizzata durante una determinata iterazione, fino al loro testing mediante Acceptance Test Driven Development e convalida business sul campo con gli utenti finali e i diversi stakeholder.
Bene… per poter effettuare questo affascinante itinerario cosa e chi viene coinvolto? Scopriremo assieme (ed argomenteremo le diverse soluzioni) che un’intera organizzazione Enterprise si dovrà plasmare per consentire ad una storia di divenire parte di una nuova funzionalità di successo.
Per avere realmente successo dovremmo scomodare molte metodologie tra le quali Lean , Agile, Lean StartUp, Lean UX e questo ci porterà nuovamente al punto di partenza. Perché vogliamo realizzare proprio questa storia? Quale era il requisito da cui siamo partiti. A quale Vision ci siamo ispirati?
Sono certo che il tema è affascinante e sarà interessante affrontarlo collettivamente, specialmente se trattato in ambito di round table.
The document describes the format of a coding retreat. It will take place from 10am to 5pm with sessions of 45 minutes coding, 10 minutes of retrospective, and 5 minute breaks. The goal is to practice coding challenges through deliberate practice, getting feedback, and pairing with others. Variations on the challenges are suggested such as restricting the use of certain features or approaches. One challenge described is modeling Conway's Game of Life, which involves a 2D grid where cells can be alive or dead and have states that change according to the states of neighboring cells.
Delphi & Dintorni Webinar - Padroneggiare i principi SOLID con DelphiMarco Breveglieri
Molti sviluppatori continuano a porsi ancora oggi domande esistenziali, ad esempio "Come posso scrivere codice mantenibile?" oppure "Come posso rendere il codice testabile?". Purtroppo non ci sono keyword, né talismani che possano donare la qualità di essere "buono" al nostro codice senza sforzo, tuttavia è sufficiente rispettare pochi e sani principi di progettazione, detti principi SOLID. In questo webinar vedremo come soddisfare tali principi e scrivere "buon codice" con Delphi, rendendolo stabile, mantenibile, estensibile, comprensibile e scalabile, aprendo nel contempo la porta ad altri scenari visti talvolta con diffidenza, come il Testing, che diverranno così semplici e addirittura automatici.
Vuoi un aggiornamento strategico? Segui questo seminario web, Elena M. Brambilla ti presenterà alcune delle caratteristiche principali di Zend Server for IBM i e condividerà con te lo scenario relativo alla nuova architettura Fast CGI su cui PHP è stato implementato. Con Elena potrai conoscere ciò che molti suoi clienti stanno facendo grazie a PHP in ambiente IBM i. Vedrai anche come è semplice cominciare a costruire esempi di script PHP in appena 1 ora!
Loosely Coupled Complexity - Unleash the power of your domain modelFrancesca1980
Common software architectures are full of well-established assumptions. But some of them are flawed, no longer valid or relevant. Changing the rules of the game using DDD, CQRS and Event Sourcing can lead to systems which are more scalable, maintainable and performing. And which are fun to code as well.
Come implementare la governance nella vostra piattaforma e lavorare felici se...Giulio Vian
DevOps Conf 2024 - Roma - 10 mag 2024
https://devopsconf.dotnetdev.it
Gli strumenti che usiamo per lo sviluppo e il rilascio sono essenziali per controllare i processi in uso e garantire che soddisfino requisiti aziendali, legali, e regolamentari.
In questa sessione illustrerò come passare da norme (policies) astratte a implementationi su piattaforme come Azure DevOps o GitHub delle stesse così da poter prevenire prima e verificare poi il corretto svolgimento delle operazioni. E diventare amici del direttore Rischi e Audit.
SoftInstigate - Modelli di ingaggio nello sviluppo softwareSoftInstigate
Questa presentazione illustra tre principali modelli d'ingaggio nei contratti di sviluppo software: a corpo, incrementale (o Agile) e multiprogetto.
La parola contratto pone automaticamente le parti sulla difensiva.
Un’offerta commerciale è sufficiente a concludere un accordo. Ma... È chiaro chi fa cosa e come?
È chiara la modalità operativa? (Ad es: come vengono avviate le attività, come vengono gestite le modifiche delle richieste cd. Changes request ecc..
È prevista una modalità oggettiva di valutazione/collaudo del Sw ?
È stabilita una modalità di consegna del Sw?
Il fornitore presta una garanzia?
Chi è il proprietario del SW alla conclusione del contratto ?
Quindi….
Il contratto deve essere lo strumento per raggiungere gli obiettivi desiderati, tutelando entrambe le parti.
Questa frase racchiude uno dei capisaldi delle metodologie agili: la semplicità, eppure ancora oggi come sviluppatori siamo sempre affascinati dalla complessità come se fosse una misura della nostra bravura. WardCunningham insieme a Kent Beck hanno coniato questo principio nel 2004. Nella sessione ripasseremo i principi di extreme programming e (senza vergogna) vi racconterò di alcuni degli approcci e dei pattern che oggi utilizzo per progettare e scrivere le applicazioni.
One, No One, One Hundred Thousand Projects (Uno, Nessuno, Centomila Progetti)Gaetano Mazzanti
This document discusses managing projects and initiatives using lean and agile principles. It advocates for limiting work in progress, visualizing and measuring flow, prioritizing based on cost of delay, making decisions with uncertainty in mind, and focusing on continuous learning over predetermined destinations or best practices. The overall message is that complex domains with human involvement require an adaptive approach focused on transparency, collaboration, and experimentation over rigid plans.
Talk presentato all'Italia Agile Day il 30/11/2013 a Reggio Emilia.
I valori di Agile sono come i principi alla base della cucina. In questa presentazione sono presentati alcuni ingredienti agili da amalgamare con cura.
Outcome not Output: A Story of Lean UX AdoptionSteve Maraspin
This presentation shares our experience with Lean UX adoption and offers some hints on how to combine User Centered Design activities within an Agile development workflow.
Test Driven Development su iOS è possibile e persino utile.
Invece di leggere blog post che sottointendono che TDD su iOS sia difficile e inutile venite a vedere chi lo usa sul serio e ha il coraggio di programmare ad una conferenza davanti ad altre persone.
Avvertenze:
questo talk non contiene paternali sul perché si dovrebbe (o non si dovrebbe) fare TDD
in questo talk non verranno usati strumenti complicati
in questo talk verrà scritto ed eseguito codice dal vivo
Dopo una brevissima introduzione passerò a sviluppare guidato dai test una semplice applicazione per iPhone.
Lean anche io! No tu no! - Italian Agile Days 2013Andrea Scavolini
Slide presentate a Italian Agile Day(s) 2013 di Reggio Emilia:
Lean anche io!
No tu no!
Sessione incentrata sulla condivisione dell'esperienza di transizione verso un modello Lean in progetti reali di consulenza per grandi aziende dove spesso molte delle pratiche e delle metodologie proposte in ambito agile sono difficilmente applicabili. L’obiettivo è mostrare i successi ottenuti (sia per il team di sviluppo che per gli utenti), condividere i nostri fallimenti, i problemi incontrati e le sfide aperte per offrire un punto di vista su come può essere affrontata la transizione ad un modello agile in contesto di relazione grande cliente-fornitore.
Il 4° punto del Manifesto Agile può essere molto complicato non solo in XP, ma anche sul piano personale, relazionale e caratteriale. Sono aspetti fondamentali e trasversali del lavoro (e non solo). Ma abbracciare il cambiamento non è esattamente nella natura umana; è sfidante, è difficile… Fortunatamente però siamo in grado di apprendere e modificare il nostro comportamento in modi infiniti. Per arrivare ad ottimi risultati.
Siete in una situazione in cui sapete di poter dare molto, ma non riuscite ad innescare la scintilla del cambiamento?
Oppure desiderate che un vostro collega, il vostro team lo facesse ed invece non sembra esserci speranza?
Nel management classico o tradizionale si leggono libri con titoli come “Gestione delle risorse umane e motivazione al lavoro”. Ma forse essere trattati come risorse e non persone non è più sufficiente, e poi non è molto efficace motivare al cambiamento attraverso trucchetti o persuasione. Qualche suggerimento per capire meglio perché è difficile, gli ingredienti utili per cambiare e per capire la motivazione.
Sempre tenendo presente che la “svolta indotta”, quella che inizia con “Da domani iniziamo a…” o “Ho deciso che da oggi…” è quella più difficile da portare avanti.
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
requisiti rappresentano, a mio avviso, il ‘fil rouge’ di tutto lo sviluppo software, sia che si tratti di applicazioni web o mobile, sia che siano coinvolti grandi sistemi Enterprise. Cerchiamo di capire perché.
Possiamo affermare che Lean Agile sta di fatto divenendo uno delle metodologie più adottate (se non il main-stream stesso) in ambito informatico e conseguentemente anche in ambiti connessi con l’informatica.
Nel mio talk (che spero possa trasformarsi in una tavola rotonda sul tema degli agile requirements e di ciò che ruota attorno ad essi) desidero presentare le varie possibilità di gestire i requisiti in modo agile e di seguire ad esempio il percorso delle “user story” (uno dei più efficaci metodi inventati in ambito agile o meglio nella metodologia eXtreme Programming per gestire i requisiti) in tutte le diverse fasi della loro ‘vita’ : a partire da ‘theme’, ‘epic’ e poi ‘story’ realizzata durante una determinata iterazione, fino al loro testing mediante Acceptance Test Driven Development e convalida business sul campo con gli utenti finali e i diversi stakeholder.
Bene… per poter effettuare questo affascinante itinerario cosa e chi viene coinvolto? Scopriremo assieme (ed argomenteremo le diverse soluzioni) che un’intera organizzazione Enterprise si dovrà plasmare per consentire ad una storia di divenire parte di una nuova funzionalità di successo.
Per avere realmente successo dovremmo scomodare molte metodologie tra le quali Lean , Agile, Lean StartUp, Lean UX e questo ci porterà nuovamente al punto di partenza. Perché vogliamo realizzare proprio questa storia? Quale era il requisito da cui siamo partiti. A quale Vision ci siamo ispirati?
Sono certo che il tema è affascinante e sarà interessante affrontarlo collettivamente, specialmente se trattato in ambito di round table.
The document describes the format of a coding retreat. It will take place from 10am to 5pm with sessions of 45 minutes coding, 10 minutes of retrospective, and 5 minute breaks. The goal is to practice coding challenges through deliberate practice, getting feedback, and pairing with others. Variations on the challenges are suggested such as restricting the use of certain features or approaches. One challenge described is modeling Conway's Game of Life, which involves a 2D grid where cells can be alive or dead and have states that change according to the states of neighboring cells.
Delphi & Dintorni Webinar - Padroneggiare i principi SOLID con DelphiMarco Breveglieri
Molti sviluppatori continuano a porsi ancora oggi domande esistenziali, ad esempio "Come posso scrivere codice mantenibile?" oppure "Come posso rendere il codice testabile?". Purtroppo non ci sono keyword, né talismani che possano donare la qualità di essere "buono" al nostro codice senza sforzo, tuttavia è sufficiente rispettare pochi e sani principi di progettazione, detti principi SOLID. In questo webinar vedremo come soddisfare tali principi e scrivere "buon codice" con Delphi, rendendolo stabile, mantenibile, estensibile, comprensibile e scalabile, aprendo nel contempo la porta ad altri scenari visti talvolta con diffidenza, come il Testing, che diverranno così semplici e addirittura automatici.
Vuoi un aggiornamento strategico? Segui questo seminario web, Elena M. Brambilla ti presenterà alcune delle caratteristiche principali di Zend Server for IBM i e condividerà con te lo scenario relativo alla nuova architettura Fast CGI su cui PHP è stato implementato. Con Elena potrai conoscere ciò che molti suoi clienti stanno facendo grazie a PHP in ambiente IBM i. Vedrai anche come è semplice cominciare a costruire esempi di script PHP in appena 1 ora!
Loosely Coupled Complexity - Unleash the power of your domain modelFrancesca1980
Common software architectures are full of well-established assumptions. But some of them are flawed, no longer valid or relevant. Changing the rules of the game using DDD, CQRS and Event Sourcing can lead to systems which are more scalable, maintainable and performing. And which are fun to code as well.
Come implementare la governance nella vostra piattaforma e lavorare felici se...Giulio Vian
DevOps Conf 2024 - Roma - 10 mag 2024
https://devopsconf.dotnetdev.it
Gli strumenti che usiamo per lo sviluppo e il rilascio sono essenziali per controllare i processi in uso e garantire che soddisfino requisiti aziendali, legali, e regolamentari.
In questa sessione illustrerò come passare da norme (policies) astratte a implementationi su piattaforme come Azure DevOps o GitHub delle stesse così da poter prevenire prima e verificare poi il corretto svolgimento delle operazioni. E diventare amici del direttore Rischi e Audit.
SoftInstigate - Modelli di ingaggio nello sviluppo softwareSoftInstigate
Questa presentazione illustra tre principali modelli d'ingaggio nei contratti di sviluppo software: a corpo, incrementale (o Agile) e multiprogetto.
La parola contratto pone automaticamente le parti sulla difensiva.
Un’offerta commerciale è sufficiente a concludere un accordo. Ma... È chiaro chi fa cosa e come?
È chiara la modalità operativa? (Ad es: come vengono avviate le attività, come vengono gestite le modifiche delle richieste cd. Changes request ecc..
È prevista una modalità oggettiva di valutazione/collaudo del Sw ?
È stabilita una modalità di consegna del Sw?
Il fornitore presta una garanzia?
Chi è il proprietario del SW alla conclusione del contratto ?
Quindi….
Il contratto deve essere lo strumento per raggiungere gli obiettivi desiderati, tutelando entrambe le parti.
Questa frase racchiude uno dei capisaldi delle metodologie agili: la semplicità, eppure ancora oggi come sviluppatori siamo sempre affascinati dalla complessità come se fosse una misura della nostra bravura. WardCunningham insieme a Kent Beck hanno coniato questo principio nel 2004. Nella sessione ripasseremo i principi di extreme programming e (senza vergogna) vi racconterò di alcuni degli approcci e dei pattern che oggi utilizzo per progettare e scrivere le applicazioni.
2019 gennaio 27 XaaS informazione formazione agenti e partnerDaniel Rueda H
Da siti tradizionali di e-commerce a piattaforme tecnologiche tutto incluso. Quello che agenti e partner devono conoscere sull'evoluzione tecnologica. Quello che gli e-commerce maker non raccontano ai clienti
Continous Delivery e codice di Alta Qualità in PHP. Usare Git , Jenkins e diversi tool per realizzare codice di qualità e per effettuare il deploy in maniera automatica.
Presentazione effettuata al 5 incontro del Palermo PHP User Group al teatro Gregotti
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Italia
Yashi divisione enterprise in coillaborazione con Microsoft presentano una guida immediata sul perchè conviene migrare ora il vostro Server a Microsoft Windows server 2012 R2
Da luglio 2015 cesserà del tutto il supporto sul sistema 2003 Server e verrà ridotto il supporto su server 2008. Ma non è solo una questione di affidabilità: il mondo è cambiato e con i nuovi sistemi operativi si affrontano meglio le sfide del mercato globale che inevitabilmente riguardano anche la tecnologia informatica della vostra azienda. Un'occasione anche per i partner e operatori specializzati per increentare il business con soddisfazione del cliente.
Workshop su Agile Project Framework e Agile PM per il PMI®-NIC Branch Lombardia. Cosa è Agile, l'Agile Project Framework e Agile Project Management e le tecniche MoScoW e il Timeboxing. Come si struttura un Team Agile.
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
Guida Questo doc è una versione compact di un’analisi di web marketing po’ strana.. effettuata con “prudenza”. Nuovi e vecchi strumenti di marketing e semiotica insieme applicati al web e al web 2.0
Ho pensato di sintetizzare i punti chiave e dare dei piccoli post di consiglio ai manager che devono presentare un progetto web
Using Visual Studio 2017 as a Fully Integrated DevOps Solution - VSSaturday 2017Daniele Pozzobon
La vita dello sviluppatore moderno è costellata da tool e utility che devono essere imparati ed inclusi nel proprio workflow quotidiano. Spesso si ha la sensazione di perdere lo stato di flow quando si è costretti ad uscire dal proprio IDE per attività come checkin e monitoraggio. Per fortuna il team di Microsoft sta facendo grossi sforzi per integrare Visual Studio con alcuni dei tool più usati e semplificare i flussi di lavoro degli sviluppatori riducendo al minimo il numero attività che devono essere gestite al di fuori dell’IDE. In questa presentazione vedremo come Visual Studio torna ad essere un vero ambiente di sviluppo integrato, permettendoci di gestire varie fasi della vita del software senza dover uscire dalla sua interfaccia.
presentation
https://youtu.be/XWSgGnQ8z9M
La programmazione orientata agli oggetti non è quella che vi hanno insegnato a scuola!
Vedremo assieme qual'è il significato di questo paradigma di programmazione, spesso frainteso, e i nuovi obiettivi che ci permette di raggiungere nello sviluppo software.
16. Cosa è TDD?
è un processo di sviluppo software che si appoggia
sulla ripetizione di un breve ciclo di sviluppo:
scrivere un test case automatico (inizialmente
rosso) che definisce un requisito desiderato
produrre la quantità minima di codice per far
passare il test
refactoring del nuovo codice per portarlo ad uno
standard accettabile
BDD è sopra TDD
dal TDD al BDD
18. Cosa è BDD?
è un processo di sviluppo software basato
su test-driven development (TDD)
BDD è sopra TDD
dal TDD al BDD
19. Cosa è BDD?
è un processo di sviluppo software basato
su test-driven development (TDD)
TDD + DDD + OOA + OOD
BDD è sopra TDD
dal TDD al BDD
20. Cosa è BDD?
è stato sviluppato da Dan North come
risposta ai problemi riscontrati insegnando
TDD
BDD è sopra TDD
dal TDD al BDD
21. Cosa è BDD?
Da dove cominciare nel processo
Che cosa mettere e non mettere
sotto test
Quante cose mettere sotto test in
una sola volta
Cosa chiamare nel test
Come capire perché un test fallisce
BDD è sopra TDD
dal TDD al BDD
22. Cosa è TDD?
TDD lavora con il format
AAA
Arrange – Act – Assert
BDD è sopra TDD
dal TDD al BDD
23. Cosa è BDD?
BDD lavora con il format
GWT
Given – When – Then
BDD è sopra TDD
dal TDD al BDD
24. Cosa è TDD?
TDD ha il focus sull'implementazione
del sistema
BDD è sopra TDD
dal TDD al BDD
25. Cosa è BDD?
BDD ha il focus sul comportamento
del sistema
BDD è sopra TDD
dal TDD al BDD
26. Esempio
+Scenario 1: Account is in credit+
Given the account is in credit
And the card is valid
And the dispenser contains cash
When the customer requests cash
Then ensure the account is debited
And ensure cash is dispensed
And ensure the card is returned
Cosa è BDD?
dal TDD al BDD
27. Esempio
+Scenario 2: Account is overdrawn past the
overdraft limit+
Given the account is overdrawn
And the card is valid
When the customer requests cash
Then ensure a rejection message is displayed
And ensure cash is not dispensed
And ensure the card is returned
Cosa è BDD?
dal TDD al BDD
40. xSpec
sono frameworks usualmente usati dagli
sviluppatori per scrivere codice con un
approccio che favorisce il test del
comportamento e della funzionalità.
Questi test sono solitamente più vicini agli unit
test per aspetto e granularità, ma con alcune
peculiarità.
Frameworks
dal TDD al BDD
41. xBehave
permette la scrittura di user story in formato
comprensibile da chiunque. Le storie possono
essere scritte dagli stessi utenti o da un gruppo
composto da sviluppatori, utenti e tester.
In genere la story è definita con un
DSL più vicino alla lingua del business,
poi mappa la storia in un test scritto
in codice dagli sviluppatori.
Frameworks
dal TDD al BDD
54. Quale sarà l'evoluzione?
...
...
...
T e s t - D r iv e n
D e v e lo p m e n t
B e h a v io r - D r iv e n
D e v e lo p m e n t
A u to m a ted
t e s t in g
BDD è sopra TDD
T e s t - F ir s t
D e v e lo p m e n t
dal TDD al BDD