SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
Come i Microservizi favoriscono
il lavoro dei Feature Teams
Giulio Roggero
Il problema
2
Chi ha bisogno di supporto
L’esperto sommerso di
lavoro
time-to-market rallentato, stress, bassa qualità,
aumento degli imprevisti, caos, no controllo
Attesa!
3
Product Owner
A B
Features
C
facciamo un esempio
A Catalogo prodotti
B
C
Acquisto prodotti
Review dei prodotti
e-Commerce
4
Team Backend
Team Frontend
A B
Features
C
5
Team Backend
Team Frontend
A B
Features
C
6
Team Backend
Team Frontend
A B
Features
C
?
7
Team Backend
Team Frontend
A B
Features
C
?
8
Team Backend
Team Frontend
A B
Features
C
?
9
Team Backend
Team Frontend
A B
Features
C
?
?
10
Team Backend
Team Frontend
A B
Features
C
?
?
11
Team Backend
Team Frontend
A B
Features
C
?
?
12
Team Backend
Team Frontend
A B
Features
C
?
?
13
Team Backend
Team Frontend
A B
Features
C
?
?
!
14
Team Backend
Team Frontend
A B
Features
C
?
?
!
15
Team Backend
Team Frontend
A B
Features
C
?
?
!
!
OK
16
Team Backend
Team Frontend
A B
Features
C
?
?
!
!
OK
17
Team Backend
Team Frontend
A B
Features
C
?
?
!
!
OK
Resolution time
18
E’ possibile evitare questo “balletto”?
19
Stop Starting,
Start Finishing
20
Team Backend
Team Frontend
A B
Features
C
21
Team Backend
Team Frontend
A B
Features
C
?
22
Team Backend
Team Frontend
A B
Features
C
?
Tempo che spendo per fare un lavoro che
si può interrompere
23
Team Backend
Team Frontend
A B
Features
C
?
!
OK
Tempo che spendo per fare un lavoro che
si può interrompere
24
Team Backend
Team Frontend
A B
Features
C
?
!
OK
Tempo che spendo per fare un lavoro che
si può interrompere
25
Team Backend
Team Frontend
A B
Features
C
?
!
OK
Tempo che spendo per fare un lavoro che
si può interrompere
26
Team Backend
Team Frontend
A B
Features
C
?
!
OK
Resolution time
Tempo che spendo per fare un lavoro che
si può interrompere
27
La difficoltà per creare
questa situazione è riuscire
a sincronizzarsi tra 2 o più
team.
Non si hanno sotto controllo
tutte le dinamiche di tutti i
team e gli imprevisti ci sono
sempre. Soprattutto
quando il software è in
produzione.
Per cui la situazione di
attesa ci sarà spesso e
questo a cascata crea
questo coas!
28
Come favorire la sincronizzazione? OK
29
Team Frontend
FE A B C
Team Backend
API
BE A B C
30
FE A B C
API
BE A B C
Feature Team 1 Feature Team 2
Il team è completamente
autonomo su tutta
l’architettura verticale:
● UX/UI
● Frontend
● Backend
● API
● Logiche di business
● Test
● Deploy
● Ops
31
A B
Features
C
Feature Team 1
Feature Team 2
32
A B
Features
C
Feature Team 1
Feature Team 2
?
33
A B
Features
C
? OK
Feature Team 1
Feature Team 2
Meno stress, comunicazione più
facile, focus sul problema
34
Quali sono gli ostacoli per
organizzarsi in Feature Teams?
35
Know-how Skills
Mancanza di autonomia
Mancanza di
36
FE
BE
Android
A Catalogo prodotti
B
C
Acquisto prodotti
Review dei prodotti
Team 2
Web Web Web
Componenti
Cart Checkout Reviews DB
Reviews
Analytics
Review Rank
iOS Android iOS iOS Android
Product DB Product Img
Product
Availability
Team 1
Componenti
Payment
37
FE
BE
Team 2
iOS Android
Web
iOS Android
Web
iOS Android
Web
Product DB Product Img
Product
Availability
Team 1
Componenti
Componenti
A Catalogo prodotti
B
C
Acquisto prodotti
Review dei prodotti
Cart Checkout
Payment
Reviews DB
Reviews
Analytics
Review Rank
Per mancanza di know-how e skills
spesso i features teams si
trasformano in component teams.
38
Qualsiasi organizzazione
che progetta un sistema
(definito in senso lato)
produrrà un disegno la cui
struttura è una copia della
struttura di comunicazione
dell'organizzazione
— Melvin E. Conway
https://en.wikipedia.org/wiki/Conway%27s_law
e-Commerce
A Catalogo prodotti
B Acquisto prodotti
E Pricing
D Disponibilità prodotti
C Review dei prodotti
F Delivery
H Recommendations
I Product highlights
G Customer support
Feature Team 1 Feature Team 2
39
Lo stile architetturale a microservizi
favorisce i Feature Teams
40
A B
ED
CF
H
I
G
Product Microservice Customer Support Microservice
A Catalogo prodotti
B Acquisto prodotti
E Pricing
D Disponibilità prodotti
C Review dei prodotti
F Delivery
H Recommendations
I Product highlights
G Customer support
41
A B
ED
CF
H
I
G
Product Microservice Customer Support Microservice
I team sono dedicati ad un’area di
business. Se usano nativo
probabilmente un team è più Mobile
e uno più Web.
I servizi sono raggruppati per team.
Si parte piccolo e già disegnandoli
modulari e con pattern port/adapter.
Web
Team 2
iOSAndroid
Team 1
ATTENZIONE: ci sono ancora
dipendenze dirette tra i team!
iOSAndroid Web
42
Introducendo il concetto di
Backend-for-Frontends ogni team
può disegnare la propria esperienza
utente adattando le API generiche
esposte dai Servizi per le esigenze di
logica di prossimità dei device (una
tabella o un wizard su mobile hanno
una logica diversa di interazione con
l’utente e quindi hanno bisogno dei
dati in ordine diverso).
I BFF consentono anche di non
bloccarsi quando il servizio dell’altro
team non è ancora pronto.
Mobile BFF Web BFF
A B
ED
CF
H
I
G
Product Microservice Customer Support Microservice
iOSAndroid Web
Team 1 Team 2
43
Nel tempo i microservizi
possono spezzarsi in
ulteriori servizi. Questo
succede quando:
● Parti del servizio
devono scalare
diversamente da
altre
● La loro complessità
è aumentata
● Il loro ciclo di vita è
molto diverso dagli
altri componenti
del servizio
Mobile BFF Web BFF
A B
Product & Buy
Microservice
CG
Customer Support
Microservice
iOSAndroid Web
Team 1 Team 2
HI
Recommendation
Microservice
Microservices Event Broker
Pricing &
Availability Service
ED F
Delivery
Microservice
Team Logistics
44
API Gateway
Week 1
https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg
Come funzionano i rilasci?
45
Week 1
https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg
Come funzionano i rilasci?
Team Products Team Customer Team Logistics
46
Week 1
https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg
Come funzionano i rilasci?
A
C
I
G
Team Products Team Customer Team Logistics
47
Week 1
https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg
A
C
I
G
Team Products Team Customer Team Logistics
A
C
G I
Come funzionano i rilasci?
48
Week 1
https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg
Grazie ai feature toggles!
Altrimenti la sincronizzazione
tra i team è un inferno
A
C
I
G
Team Products Team Customer Team Logistics
A
C
G I
Visibilità
A
C
G
I
49
Week 1
Week 2
https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg
A
B
C
I
G
H
Team Products Team Customer Team Logistics
A
C
G I
B
G
H
Visibilità
A
C
G
I
Visibilità
H
G
B
E di volta in volta li accendo
I
I 50
Team Products Team Customer
Component
Lib
Service
Frontend
Ops
Mantainers
Users
Come gestire le
dipendenze tra
microservizi?
51
Team Products Team Customer
Chiedendo Aiuto!
Ask for an improvement
52
Component
Lib
Service
Frontend
Ops
Team Products Team Customer
Ma non sempre è
possibile sincronizzarsi
Ask for an improvement
53
Component
Lib
Service
Frontend
Ops
Team Products Team Customer
Il codice è di tutti, per
cui lo modifico
rispettando le regole
che ci siamo dati
ispirate ai Modelli Open
Source!
Implement the improvement
54
Component
Lib
Service
Frontend
Ops
Team Products Team Customer
Pull request
Implement the improvement
Il codice è di tutti, per
cui lo modifico
rispettando le regole
che ci siamo dati
ispirate ai Modelli Open
Source!
55
Component
Lib
Service
Frontend
Ops
Team Products Team Customer
In questo modo la
conoscenza si
distribuisce e
l’ecosistema evolve in
piattaforma.
Pull request
Delivery new version
Implement the improvement
56
Component
Lib
Service
Frontend
Ops
Potremmo aprire un tema sui micro frontend
e quando usarli. Ma non oggi!
Ancora qualche dubbio?
57
Come si governa una
organizzazione di
questo tipo?
Allinearsi sugli obiettivi
e far emergere dalle
persone come
raggiungerli!
58
F. Team 1
F. Team 2
F. Team 3
Product
Backloge-Commerce
1 PO, 1 Backlog, 1 Prodotto, N Feature Teams
PO
Coordinamento e Focus sul Valore di Business generato
Mob programming e Code Reviews
Mob Code Reviews
Standard emergenti
Unconference
Condivisione della conoscenza ed esposizione delle idee
Kata
Esercitarsi in modo continuo
● I Feature Teams consentono di accelerare il business riducendo i
tempi di attesa ed eliminando il caos organizzativo
● I Microservizi sono uno stile architetturale che consente di separare le
responsabilità favorendo il lavoro e la conversazione tra Team
● Il codice è di tutti e si lavora con un processo ispirato all’ Open
Source Software per farlo evolvere
59
L’organizzazione e l’architettura emergono ed evolvono
da una buona conversazione tra le persone!
Giulio Roggero
Co-founder and CTO @ Mia-Platform
Partner @ Intré
Co-founder @ Agile Reloaded
60

Mais conteúdo relacionado

Mais procurados

[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
CODE BLUE
 

Mais procurados (20)

The Google Chubby lock service for loosely-coupled distributed systems
The Google Chubby lock service for loosely-coupled distributed systemsThe Google Chubby lock service for loosely-coupled distributed systems
The Google Chubby lock service for loosely-coupled distributed systems
 
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric LeblondKernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
 
Linux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingLinux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job Scheduling
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
GIT_In_90_Minutes
GIT_In_90_MinutesGIT_In_90_Minutes
GIT_In_90_Minutes
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
 
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell ScriptingLinux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
 
Infrastructure testing with Molecule and TestInfra
Infrastructure testing with Molecule and TestInfraInfrastructure testing with Molecule and TestInfra
Infrastructure testing with Molecule and TestInfra
 
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
[CB19] Attacking DRM subsystem to gain kernel privilege on Chromebooks by Di ...
 
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
 
UEFI HTTP/HTTPS Boot
UEFI HTTP/HTTPS BootUEFI HTTP/HTTPS Boot
UEFI HTTP/HTTPS Boot
 
File permission in linux
File permission in linuxFile permission in linux
File permission in linux
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
makefiles tutorial
makefiles tutorialmakefiles tutorial
makefiles tutorial
 
Pester & PSScriptAnalyser - Power Test your PowerShell with PowerShell - Futu...
Pester & PSScriptAnalyser - Power Test your PowerShell with PowerShell - Futu...Pester & PSScriptAnalyser - Power Test your PowerShell with PowerShell - Futu...
Pester & PSScriptAnalyser - Power Test your PowerShell with PowerShell - Futu...
 
RNUG 2020: Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Ci...
RNUG 2020: Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Ci...RNUG 2020: Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Ci...
RNUG 2020: Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Ci...
 
Patching Windows Executables with the Backdoor Factory | DerbyCon 2013
Patching Windows Executables with the Backdoor Factory | DerbyCon 2013Patching Windows Executables with the Backdoor Factory | DerbyCon 2013
Patching Windows Executables with the Backdoor Factory | DerbyCon 2013
 
Linux LVM Logical Volume Management
Linux LVM Logical Volume ManagementLinux LVM Logical Volume Management
Linux LVM Logical Volume Management
 
LAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEE
 

Semelhante a Come i Microservizi favoriscono il lavoro dei Feature Teams

wow factor apps and ux design techniques ( for i phone and ipad )
wow factor apps and ux design techniques ( for i phone and ipad )wow factor apps and ux design techniques ( for i phone and ipad )
wow factor apps and ux design techniques ( for i phone and ipad )
Acrmnet s.r.l.
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)
Fabio Armani
 

Semelhante a Come i Microservizi favoriscono il lavoro dei Feature Teams (20)

Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
AgileDay 2006 - Essere agili nel diventare agili
AgileDay 2006 - Essere agili nel diventare agiliAgileDay 2006 - Essere agili nel diventare agili
AgileDay 2006 - Essere agili nel diventare agili
 
Sviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUMSviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUM
 
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
Ibm elm  smart collaboration del tuo team di sys e sw engineering   19 novembreIbm elm  smart collaboration del tuo team di sys e sw engineering   19 novembre
Ibm elm smart collaboration del tuo team di sys e sw engineering 19 novembre
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
Corporate Blog Da Zero
Corporate Blog Da ZeroCorporate Blog Da Zero
Corporate Blog Da Zero
 
Produzione software
Produzione softwareProduzione software
Produzione software
 
Costruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsCostruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio Devops
 
Le nuove competenze di Maticmind in ambito applicativo
Le nuove competenze di Maticmind in ambito applicativoLe nuove competenze di Maticmind in ambito applicativo
Le nuove competenze di Maticmind in ambito applicativo
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
VS2013 what's new!!
VS2013 what's new!!VS2013 what's new!!
VS2013 what's new!!
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015
 
Debugging with-z-ray
Debugging with-z-rayDebugging with-z-ray
Debugging with-z-ray
 
Product Management Nel Settore Business To Consumer
Product Management Nel Settore Business To ConsumerProduct Management Nel Settore Business To Consumer
Product Management Nel Settore Business To Consumer
 
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?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
 
Digitaltogether 2.0 IL MANIFESTO
Digitaltogether 2.0 IL MANIFESTODigitaltogether 2.0 IL MANIFESTO
Digitaltogether 2.0 IL MANIFESTO
 
wow factor apps and ux design techniques ( for i phone and ipad )
wow factor apps and ux design techniques ( for i phone and ipad )wow factor apps and ux design techniques ( for i phone and ipad )
wow factor apps and ux design techniques ( for i phone and ipad )
 
VSTS - L'ALM a portata di mano
VSTS - L'ALM a portata di manoVSTS - L'ALM a portata di mano
VSTS - L'ALM a portata di mano
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)
 
Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...Software modularity, microservices ed headless platform all in one. Liferay: ...
Software modularity, microservices ed headless platform all in one. Liferay: ...
 

Mais de Giulio Roggero

Modernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
Giulio Roggero
 
Favorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservicesFavorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservices
Giulio Roggero
 

Mais de Giulio Roggero (20)

Platform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree view
 
Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
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
 
Modernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
 
Stili architetturali in Kubernetes
Stili architetturali in KubernetesStili architetturali in Kubernetes
Stili architetturali in Kubernetes
 
Do pair programming with an artificial intelligence
Do pair programming with an artificial intelligenceDo pair programming with an artificial intelligence
Do pair programming with an artificial intelligence
 
Scaling Legacy
Scaling LegacyScaling Legacy
Scaling Legacy
 
Agile Journey
Agile JourneyAgile Journey
Agile Journey
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Invisible infrastructures
Invisible infrastructuresInvisible infrastructures
Invisible infrastructures
 
Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!
 
Eliminare gli Spaghetti API
Eliminare gli Spaghetti APIEliminare gli Spaghetti API
Eliminare gli Spaghetti API
 
Innovare nel B2C
Innovare nel B2CInnovare nel B2C
Innovare nel B2C
 
Da spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma Digitale
 
Kanban board!
Kanban board!Kanban board!
Kanban board!
 
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
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
 
Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017
 
Trust me, I'm a developer
Trust me, I'm a developerTrust me, I'm a developer
Trust me, I'm a developer
 
Agilità interculturale
Agilità interculturaleAgilità interculturale
Agilità interculturale
 
Favorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservicesFavorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservices
 

Come i Microservizi favoriscono il lavoro dei Feature Teams