Quali sono le
caratteristiche principali
che contraddistinguono
uno sviluppatore
affidabile?
Giulio Roggero
… in 5 punti
1 - Punta alla semplicità
Spaghetti code
Lasagna code
Da dove derivano i
bug?
•Complessità del codice che
aumenta con il passare del
tempo
•Non conoscenza della
tecnologia
•Incomprensioni
Quindi, cosa fare per limitare il
problema?
Aumentiamo la
documentazione!
https://www.flickr.com/photos/theeerin/145287882
Trust me, I'm a developer
Una regola empirica
• Lo fai una volta, lo fai cablato
• Lo fai 2 volte inizi a generalizzarlo
• Lo fai 3 o più volte è un Pattern
Factory
Architettura emergente
• Architettura ”hello world”
• Partire risolvendo problemi puntuali
• Validarli
• Man mano che le responsabilità
emergono identificare i Patterns
Nota: non partire subito con un
framework solo perché lo usano tutti!
Stili architetturali
• Microservices
• Client-Server
• Blackboard
• Pipe and filters
• Plugins
• Layered
• Monolithic
… tutta la lista su https://en.wikipedia.org/wiki/Software_architecture#Architectural_styles_and_patterns
Consiglio
Posticipare il più possibile le decisioni
irreversibili evitando l’over-
engineering della soluzione.
2 - Bilancia debito tecnico e
valore di business
Tempo
Costo per
aggiungere
nuova
funzionalità
Debito tecnico
Debito Tecnico
Tempo
Valore di
business
generato
Ritardo del rilascio
Costo del ritardo
Tempo
Valore di
business
generato
Rilascio o non rilascio con debito?
Debito
accumulato
rappresentazione semplificata
Costo del ritardo
Debito
accumulato
Costo del ritardo
Debito
accumulato Rilascia ora con debito e ripaga
Costo del ritardo
Debito
accumulato Rilascia in ritardo
Tempo
Debito
tecnico
totale
In ogni caso tenere sotto controllo il debito tecnico
Fuori controllo
Sotto controllo
Attenzione!
Product Backlog
Le azioni per ripagare il debito
tecnico vanno nel product
backlog insieme alle store di
business!
Consiglio
Rendere sempre visibile il debito
tecnico e ordinare nel backlog
azioni per tenerlo sotto controllo
3 - Sviluppa guidato dai test
Scrivo il test
Scrivo il
codice per
passare quel
test. Solo
quello!
Faccio
refactoring
del codice
Ogni 10 minuti
A piccoli passi
TDD
Esempio di test
Test
Codice dopo refactoring
Check if it fits
Prepare vehicle
Create new order
… e dopo refactoring anche del test!
Quanti test? Test Manuali
Unit
API
UI
Il Test Driven Development (TDD) non è solo una buona pratica di
test ma è soprattutto una pratica per creare codice migliore!
Chiaro da
leggere
01
Mantenibile
02
Documentato
03
Semplice
04
Consiglio
Inizia a scrivere i test, anche
semplici, ma inizia. Esercitati. Ci
vogliono mesi, anche anni, per
prenderci la mano. Non mollare
subito!
4 - Rende tutto automatico, fin
dal primo giorno
Trust me, I'm a developer
Esempio di automatismo
Developer PC
Git
Push
Jenkins
Pipeline
Pull
Integration test
server
Deploy and Test
Pre Prod server
Deploy and Test
Prod Server
Deploy and Test
Quando farlo? Automatizzate la
“hello world application”
implementata sulla vostra
architetturaDallo Sprint Zero!
Automatizzare il prima possibile
1. Build automatica con aggiornamento di tutte le librerie da repository
dei sorgenti (npm, maven o altro). No copie di librerie a mano.
2. Tutta la catena dei test up and running e non solo gli Unit ma fino ai
test in produzione.
3. Verifica statica del codice con linters.
4. Adottare un'adeguata politica di branch. Più semplice è meglio è.
5. Implementare la catena di continuous: integration, delivery e
deploy.
6. Definire un'adeguata politica di versionamento del codice.
7. Agganciare in modo corretto al codice loggers e analytics.
Consiglio
Automatizzare subito costa
anche 100 volte meno di farlo
dopo. Parti semplice e non
aspettare!
5 - Non si innamora della
tecnologia ma degli utenti!
Trust me, I'm a developer
Trust me, I'm a developer
Mangiare sano
Mangiare cibo buono
Non mangiare
sempre la stessa cosa
Sfruttare al massimo
la pausa pranzo per
rilassarsi
Non spendere troppe
energie nella scelta di
cosa mangiare
Scegliere i piatti da
mobile e web
Pagare senza dover
inserire ogni volta la
carta di credito
Consegna in 20’
Piatti buoni, sani e
caldi grazie ad un
menu equilibrato
Prenotare la
consegna per un
orario desiderato
Creare un nuovo
segmento di mercato
differenziandosi dai
food delivery classici
Chi vuole mangiare
nel Week-end o è
fuori Milano
Persone che lavorano
o studiano nel centro
di Milano
Foorban.com. Selezioniamo gli ingredienti più freschi e cuciniamo un menù
diverso ogni giorno. Ordina i tuoi piatti preferiti e saranno consegnati in 20’
Vision BOARD
Target Group Needs Product Business Value
Who is out?
Marketing
manager di
una
multinazionale
30 anni, laureata.
Sportiva e dinamica.
Le piace tenersi in forma ed è
attenta a cosa mangia.
Ama sperimentare nuovi
ingredienti a tavola.
Sfruttare al meglio la pausa
pranzo andando in palestra.
Mangiare sano e buono.
Non spendere troppo tempo
nella scelta.
Anna
Sceglie piatto
Chissà cosa c’è di buono oggi?
Ho fame!
Se la foto mi attira lo prendo
Prendo il
cellulare
Scorro i piatti Guardo la
foto
Aggiungo il
piatto al
carrello
Descrizione
… Attenzione: le foto devono essere molto
ben fatte!
Sceglie piatto Invia ordine Verifica la consegna
Sfoglia piatti
Dettagli
piatto
Aggiungi
piatto
Sceglie
orario
Conferma
Paga
Guarda
dov’è il
piatto sulla
mappa
Leggi
quanto
manca alla
consegna
Assistenza
Conferma
ordine
Consiglio
Quando scrivi il codice pensa
sempre come impatterà sul
comportamento dell’utente
finale (vale anche per le parti
senza interfaccia utente!)
Riassumendo
1. Semplicità
2. Debito tecnico e valore
3. Test prima!
4. Tutto automatico
5. Utenti al centro
Il software è un asset!
Non pensiamo
”basta che funzioni”,
altrimenti alla lunga
avremo costruito un
asset pericolante.
Giulio Roggero
www.agilereloaded.it
www.intre.it
www.mia-platform.eu
@giulioroggero

More Related Content

PDF
Usabilità a colpo d'occhio
PDF
LinkMe Brochure late2016
PDF
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
PPT
Agile software lifecycle
PDF
Percorso di una STARTUP: Dal business model a JAVASCRIPT (passando per un sac...
PDF
Designing with microservices - Daniele Mondello
PDF
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
PDF
Una fugace occhiata al Test Driven Development (2006)
Usabilità a colpo d'occhio
LinkMe Brochure late2016
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Agile software lifecycle
Percorso di una STARTUP: Dal business model a JAVASCRIPT (passando per un sac...
Designing with microservices - Daniele Mondello
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
Una fugace occhiata al Test Driven Development (2006)

Similar to Trust me, I'm a developer (20)

PPT
Software development nel mondo industriale
ODP
Presentazione socraten motivazione e software
PDF
LARUS 10th - Rampado Omar
PDF
The simplest thing that could possibly work
PDF
Come i Microservizi favoriscono il lavoro dei Feature Teams
PPTX
Alm pills - Sessione community tour Dot Net Umbria 2011
PDF
Moze su come progettare applicazioni tecnologiche usando la testa: dal Jobs-t...
PPTX
Tecnologie e Tecniche per affrontare il Mondo che Cambia
PDF
Costruire una chain of custody del software - una guida per Cto Cio Devops
PDF
L'illusione dell'ortogonalità
PDF
Stop Meeting, Start Coding!
PDF
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
PPTX
Progettare l’intangibile - Progettando 2017
PDF
Link me angularjs_reactjs_vuejs_nodejs
PDF
L’evoluzione delle API: da CORBA a OpenAPI e oltre
PDF
La Unix Way vista da un DevOps
KEY
Redistributable intro to scrum ita
ZIP
Redistributable intro to scrum ita
KEY
Redistributable Intro To Scrum Ita
PPTX
Di come l'innovazione sia fondamentale per la giovane impresa
Software development nel mondo industriale
Presentazione socraten motivazione e software
LARUS 10th - Rampado Omar
The simplest thing that could possibly work
Come i Microservizi favoriscono il lavoro dei Feature Teams
Alm pills - Sessione community tour Dot Net Umbria 2011
Moze su come progettare applicazioni tecnologiche usando la testa: dal Jobs-t...
Tecnologie e Tecniche per affrontare il Mondo che Cambia
Costruire una chain of custody del software - una guida per Cto Cio Devops
L'illusione dell'ortogonalità
Stop Meeting, Start Coding!
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
Progettare l’intangibile - Progettando 2017
Link me angularjs_reactjs_vuejs_nodejs
L’evoluzione delle API: da CORBA a OpenAPI e oltre
La Unix Way vista da un DevOps
Redistributable intro to scrum ita
Redistributable intro to scrum ita
Redistributable Intro To Scrum Ita
Di come l'innovazione sia fondamentale per la giovane impresa
Ad

More from Giulio Roggero (20)

PDF
Platform Engineering - a 360 degree view
PDF
Kubernetes and CNCF Landscape 101
PDF
Platform governance, gestire un ecosistema di microservizi a livello enterprise
PDF
Modernize Legacy Systems with Kubernetes
PDF
Stili architetturali in Kubernetes
PDF
Do pair programming with an artificial intelligence
PDF
Scaling Legacy
PDF
Agile Journey
PDF
Microservices, Microfrontends and Feature Teams
PDF
Invisible infrastructures
PDF
Eliminare gli Spaghetti API
PDF
Innovare nel B2C
PDF
Da spaghetti API a Piattaforma Digitale
PDF
Kanban board!
PPTX
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
PDF
Agilità interculturale
PDF
Favorire i feature teams con architetture microservices
PPTX
Agile Fixed Price - XP Days 2015
PPTX
Le aspettative delle trasformazioni agili
PPTX
Introduzione a Scrum
Platform Engineering - a 360 degree view
Kubernetes and CNCF Landscape 101
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Modernize Legacy Systems with Kubernetes
Stili architetturali in Kubernetes
Do pair programming with an artificial intelligence
Scaling Legacy
Agile Journey
Microservices, Microfrontends and Feature Teams
Invisible infrastructures
Eliminare gli Spaghetti API
Innovare nel B2C
Da spaghetti API a Piattaforma Digitale
Kanban board!
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
Agilità interculturale
Favorire i feature teams con architetture microservices
Agile Fixed Price - XP Days 2015
Le aspettative delle trasformazioni agili
Introduzione a Scrum
Ad

Trust me, I'm a developer