Trust me, I'm a developer

Giulio Roggero
Giulio RoggeroFounder & CTO Mia-Platform, Partner & CS Intré, Founder & Advisor Agile Reloaded
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
1 of 45

Recommended

Usabilità a colpo d'occhio by
Usabilità a colpo d'occhioUsabilità a colpo d'occhio
Usabilità a colpo d'occhioMaurizio Boscarol
1.3K views55 slides
Stop Meeting, Start Coding! by
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Giulio Roggero
841 views26 slides
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti by
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
994 views35 slides
Ideare un app e farla fruttare: quanti modi? Quale scegliere? by
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Diego La Monica
381 views67 slides
Lean Software Development in 45' by
Lean Software Development in 45'Lean Software Development in 45'
Lean Software Development in 45'Fabio Ghislandi
1.5K views66 slides
Test Driven Development @ Xe.Net by
Test Driven Development @ Xe.NetTest Driven Development @ Xe.Net
Test Driven Development @ Xe.NetMauro Servienti
313 views34 slides

More Related Content

Similar to Trust me, I'm a developer

Agile raccontato a mia nonna by
Agile raccontato a mia nonnaAgile raccontato a mia nonna
Agile raccontato a mia nonnaFelice Pescatore
1.3K views37 slides
Agile Lean Conference 2016 - Barengo _I principi del lean software development by
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference
649 views25 slides
Festivalmente: Getting Things done by
Festivalmente: Getting Things doneFestivalmente: Getting Things done
Festivalmente: Getting Things doneVincenzo Garambone
132 views27 slides
Una fugace occhiata al Test Driven Development (2006) by
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)Roberto Bettazzoni
478 views35 slides
Agile Project Management - the Board Game workshop by
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshopGiulio Roggero
5.4K views106 slides
Mobile Apps Per iOS , visione d'insieme by
Mobile Apps Per iOS , visione d'insiemeMobile Apps Per iOS , visione d'insieme
Mobile Apps Per iOS , visione d'insiemeFrancesco De Simone
355 views24 slides

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

Agile Lean Conference 2016 - Barengo _I principi del lean software development by Agile Lean Conference
Agile Lean Conference 2016 - Barengo _I principi del lean software developmentAgile Lean Conference 2016 - Barengo _I principi del lean software development
Agile Lean Conference 2016 - Barengo _I principi del lean software development
Una fugace occhiata al Test Driven Development (2006) by Roberto Bettazzoni
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)
Roberto Bettazzoni478 views
Agile Project Management - the Board Game workshop by Giulio Roggero
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshop
Giulio Roggero5.4K views
Come farsi autorizzare gli unit test dal boss by Marco Amendola
Come farsi autorizzare gli unit test dal bossCome farsi autorizzare gli unit test dal boss
Come farsi autorizzare gli unit test dal boss
Marco Amendola448 views
Come rilasciare App di Qualità by Luca Manara
Come rilasciare App di QualitàCome rilasciare App di Qualità
Come rilasciare App di Qualità
Luca Manara430 views
[eh2017] Vendere da 0 a 4,5 milioni di euro di corsi online partendo da un bl... by Ecommerce HUB
[eh2017] Vendere da 0 a 4,5 milioni di euro di corsi online partendo da un bl...[eh2017] Vendere da 0 a 4,5 milioni di euro di corsi online partendo da un bl...
[eh2017] Vendere da 0 a 4,5 milioni di euro di corsi online partendo da un bl...
Ecommerce HUB305 views
Magento: Oltre la configurazione standard di Google Analytics by WEBFORMAT srl
Magento: Oltre la configurazione standard di Google AnalyticsMagento: Oltre la configurazione standard di Google Analytics
Magento: Oltre la configurazione standard di Google Analytics
WEBFORMAT srl1.5K views
Building an app from scratch by Klab
Building an app from scratchBuilding an app from scratch
Building an app from scratch
Klab412 views
Digital product launch by DML Srl
Digital product launchDigital product launch
Digital product launch
DML Srl2.6K views
Monitorare i software fa schifo.pdf by Valerio Barbera
Monitorare i software fa schifo.pdfMonitorare i software fa schifo.pdf
Monitorare i software fa schifo.pdf
Valerio Barbera11 views
Intoduzione Alle Metodologie Agili by Stefano Leli
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie Agili
Stefano Leli908 views
Leonardo Lillo - Progettare lo Smart Working - Rinascita Digitale | DAY #15 by Stefano Saladino
Leonardo Lillo - Progettare lo Smart Working - Rinascita Digitale | DAY #15Leonardo Lillo - Progettare lo Smart Working - Rinascita Digitale | DAY #15
Leonardo Lillo - Progettare lo Smart Working - Rinascita Digitale | DAY #15
Stefano Saladino160 views
Agile project management 1 giornata - board game - v2 by Giulio Roggero
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
Giulio Roggero3.7K views

More from Giulio Roggero

Platform Engineering - a 360 degree view by
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewGiulio Roggero
276 views33 slides
Kubernetes and CNCF Landscape 101 by
Kubernetes and CNCF Landscape 101Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101Giulio Roggero
378 views123 slides
Platform governance, gestire un ecosistema di microservizi a livello enterprise by
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterpriseGiulio Roggero
183 views58 slides
Modernize Legacy Systems with Kubernetes by
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesGiulio Roggero
274 views62 slides
Stili architetturali in Kubernetes by
Stili architetturali in KubernetesStili architetturali in Kubernetes
Stili architetturali in KubernetesGiulio Roggero
504 views111 slides
Do pair programming with an artificial intelligence by
Do pair programming with an artificial intelligenceDo pair programming with an artificial intelligence
Do pair programming with an artificial intelligenceGiulio Roggero
297 views30 slides

More from Giulio Roggero(20)

Platform Engineering - a 360 degree view by Giulio Roggero
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree view
Giulio Roggero276 views
Kubernetes and CNCF Landscape 101 by Giulio Roggero
Kubernetes and CNCF Landscape 101Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101
Giulio Roggero378 views
Platform governance, gestire un ecosistema di microservizi a livello enterprise by Giulio Roggero
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Giulio Roggero183 views
Modernize Legacy Systems with Kubernetes by Giulio Roggero
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
Giulio Roggero274 views
Stili architetturali in Kubernetes by Giulio Roggero
Stili architetturali in KubernetesStili architetturali in Kubernetes
Stili architetturali in Kubernetes
Giulio Roggero504 views
Do pair programming with an artificial intelligence by Giulio Roggero
Do pair programming with an artificial intelligenceDo pair programming with an artificial intelligence
Do pair programming with an artificial intelligence
Giulio Roggero297 views
Come i Microservizi favoriscono il lavoro dei Feature Teams by Giulio Roggero
Come i Microservizi favoriscono il lavoro dei Feature TeamsCome i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature Teams
Giulio Roggero583 views
Microservices, Microfrontends and Feature Teams by Giulio Roggero
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
Giulio Roggero775 views
Da spaghetti API a Piattaforma Digitale by Giulio Roggero
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma Digitale
Giulio Roggero1K views
API Conf 2017 - Allineare il business e la tecnologia grazie alle api by Giulio Roggero
API Conf 2017 - Allineare il business e la tecnologia grazie alle apiAPI Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
Giulio Roggero597 views
Progettare l’intangibile - Progettando 2017 by Giulio Roggero
Progettare l’intangibile - Progettando 2017Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017
Giulio Roggero871 views
Favorire i feature teams con architetture microservices by Giulio Roggero
Favorire i feature teams con architetture microservicesFavorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservices
Giulio Roggero1.8K views
Agile Fixed Price - XP Days 2015 by Giulio Roggero
Agile Fixed Price - XP Days 2015Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015
Giulio Roggero1.8K views

Trust me, I'm a developer