Impara le Pratiche Tecniche dell’Agilità grazie a questo corsi di due giorni!
Offriamo una serie di corsi intensi e pratici sulle pratiche tecniche agili per tutti i software developers interessati ad imparare e/o migliorare le proprie conoscenze.
Guidato da professionisti esperti, apprenderai tutto quello che di importante c’è da sapere sul lavorare in team con il Pair Programming, Test Automation e Piramide di test, Refactoring, Test Driven Development (TDD), le 4 regole del Simple Design, SOLID Design Principles, Clean Code e Continuous Integration e Delivery.
Sono disponibili classi introduttive ed avanzate, entrambe di due giorni.
Continuous Delivery
Il DevOps e in generale i principi e le pratiche di continuous delivery sono l’essenza tecnica dell’Agilità; permettono ad un organizzazione di rilasciare un prodotto in modo frequente, con maggior qualità e sicurezza.
In questo corso analizzeremo il mondo della continuous delivery partendo dai principi di base fino alle pratiche da usare “sul campo”. Capiremo insieme quale è il percorso per arrivare ad adottare continuous delivery in tutte le sue forme, approfondendo in dettaglio il Continuous Testing come prima pratica da esplorare.
Programma del corso:
- Definizioni: DevOps e Continuous Delivery
- Principi di Continuous Delivery
- Pratiche di Continuous Delivery
- Continuous Quality
- Continuous Testing
- Continuous Integration
- Continuous Deployment
- Continuous Monitoring
- più in dettaglio: Continuous Testing
- Test Pyramids
- Quality Test Suite
- Test Suite smells
- Condivisione di una cultura di Continuous Delivery
E-TDD – Effective Test Driven Development:
Come primo corso, verrai introdotto ai concetti fondamentali delle pratiche tecniche dell’agilità, con particolare attenzione alle tecniche di eXtreme Programming. Il corso tratterà i concetti di base necessari per un team al fine di migliorare la qualità del proprio lavoro in un modo sostenibile. A lungo termine i concetti raccontati produrranno flessibilità e codice facilmente modificabile e manutenibile. Il corso sarà un mix di presentazioni teoriche ed esercitazioni pratiche per applicare e integrare quando è stato presentato.
La lingua del corso e il materiale saranno in inglese.
Possible Course Agenda:
- TDD as a software design technique & testing tool
- Where TDD fits in the overall picture of software testing
- History of TDD and when to use it
- Concepts of unit testing and microtesting
- Code isolation
- Detroit school or “classic” style TDD practicum
- Inside-out design
- Test coverage metrics – meaning and use
- Characteristics of effective test cases
- Organisation and naming considerations for test suites
- Test-driving code that interacts with frameworks and libraries
- IDE and VCS integration
- Value of collaborative work
- Pair programming basics, anti-patterns, different styles
- Test suites as design documentation
- Up-front and emergent design and how to balance them
- Software design principles
- Behavior-focused vs. implementation-aware tests
- Guiding design through microtests – practicum
- Branching strategies
M-TDD Mastering Test Driven Development:
Continuando il percorso verso l’apprendimento delle pratiche tecniche dell’agilità, basandoci su ciò che abbiamo imparato al primo corso, imparerai outside-in software design, diversi modi più avanzati di Pair Programming, ad applicare un mix di diverse tecniche diverse di TDD, …
NB: Questo è un corso avanzato, ed è da intendersi come proseguo del corso E-TDD o simili; aver partecipato al corso E-TDD e/o simili è un prerequisito.
La lingua del corso e il materiale saranno in inglese.
Possible Course Agenda
- Outside-in and inside-out design
- Test doubles – mocks, stubs, fakes
- Test case design guidelines for outside-in design
- Balancing inside-out and outside-in design
- Guiding outside-in design through microtests
- Review of software design principles
- Common code smells and remedies
- Establishing a test baseline: Golden Master approach
- Establishing a test baseline: Read by Refactoring approach
- Identifying seams in code
- Writing characterization tests
- Breaking dependencies to enable microtesting
- Practicum:
– identifying code smells – finding seams
– breaking dependencies – building test coverage
A chi si rivolge:
Software developers interessati all’apprendimento e al miglioramento delle proprie conoscenze di pratiche tecniche. Durante il corso useremo Java come linguaggio per esempi e esercizi, ma ogni partecipante è libero di usare un diverso linguaggio a piacere sul propri laptop.
NB: Questo è un corso prettamente pratico, quindi avrai bisogno di portare il tuo computer con l’ambiente di sviluppo a tua scelta configurato.
Trainers:
I trainer del corso saranno esperti noti nella comunità eXtreme Programming mondiale.
Formato del corso:
Il corso oltre ad essere pubblico è fruibile anche in-house. Se siete interessati ad organizzare il corso nella vostra azienda –> contattateci, vi risponderemo quanto prima.