Scuola XP: a scuola di sviluppo software
Un buon team di sviluppo è come una band: combina le abilità del singolo con le dinamiche di gruppo per realizzare insieme, ogni giorno, qualcosa di speciale.
Un buon team di sviluppo può essere incredibilmente performante: risolvendo problemi complessi, costruendo software a prova di bomba o trovando soluzioni alternative che permettono di arrivare allo stesso obiettivo, con un percorso più agevole.
Un eXtreme Programming team ottiene questi risultati creando un contesto favorevole alla collaborazione, costruendo la fiducia reciproca grazie alla condivisione di principi, metodi e pratiche di buona programmazione, quali pair programming, test-driven development, continuous integration e non solo.
Tutto in 5 giorni
Vogliamo permettere anche a chi si affaccia per la prima volta al mondo del lavoro, di sperimentare sulla propria pelle cosa significhi sviluppo software professionale. Vogliamo costruire insieme qualcosa di concreto, prendendo coscienza di quali strategie ci permettano di produrre risultati di qualità nel minor tempo possibile.
Vogliamo sperimentare sul campo le pratiche di programmazione fondamentali per sviluppare software robusto e manutenibile, e gli skill che fanno la differenza nel mondo reale.
A chi si rivolge
Professionisti che vogliono imparare sul campo, hands on, una metodologia agile per poter migliorare se stessi ed il proprio team di lavoro.
Studenti che si affacciano sul mondo del lavoro che vogliono scoprire come funziona veramente eXtreme Programming.
Obiettivi
- Imparare a consegnare valore in tempi molto rapidi: spezzare le user story per valore
- Scrivere codice che accetta i cambiamenti (quindi semplice e flessibile)
- Evolvere il sistema iterativamente (e non solo incrementalmente)
- Rappresentare esplicitamente il dominio del problema
Argomenti
Ecco gli argomenti specifici che affronteremo!
- La tecnica del TDD: il microciclo
- La tecnica del TDD: come scegliere il primo test, come scegliere il test successivo
- La tecnica del TDD: partire dai test d’accettazione
- Continuous integration, continuous delivery
- Collective code ownership
- Refactoring prima e dopo dell’introduzione di una feature
- Elementi di object-oriented design: assegnare le responsabilità con GRASP
- Elementi di domain-driven design: rappresentare esplicitamente il dominio del problema
- Elementi di architettura software: integrare gli aspetti non funzionali. Architettura ports-and-adapters
Approfondimento
Leggi Back from ScuolaXP 2015
In collaborazione con