Trust me, Im a developer
-
Upload
giulio-roggero -
Category
Technology
-
view
246 -
download
0
Transcript of Trust me, Im a developer
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
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
ConsiglioPosticipare 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 ritardoDebito accumulato
Costo del ritardoDebito accumulato Rilascia ora con debito e ripaga
Costo del ritardoDebito 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!
ConsiglioRendere 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 refactoringdel codice
Ogni 10 minutiA 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 e solo una buona pratica di test ma e soprattutto una pratica per creare codice migliore!
Chiaro da leggere
01Mantenibile
02Documentato
03Semplice
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
Esempio di automatismo
Developer PC
Git
PushJenkins Pipeline
Pull
Integration test server
Deploy and Test
Pre Prod serverDeploy and Test
Prod ServerDeploy 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 repositorydei 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. Piu semplice e meglio e.
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!
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
AssistenzaConferma 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