Continuo il tema della gestione dei team che si allinea ai miei “core value” di appassionato di dinamiche tra persone che costruiscono software (oltre a come costruire il software stesso).
Negli ultimi messaggi abbiamo parlato della legge di Conway, di come agisce e come potremmo sfruttarla.
I team sono l’unità di delivery di base e la loro numerosità e collocazione geografica influisce le architetture software.
Ma che forme possiamo fare assumere a queste unità di base?
Gli autori di un noto modello sulle topologie dei team hanno creato una classificazione che trovo pragmatica e semplice da spiegare.
Per questo ho deciso di riportarla qui.
Ecco 4 topologie a cui possiamo ispirarci per creare dei team in una software factory.
- Team stream-aligned
- Team abilitatore (enabling team)
- Team del sottosistema complicato (complicated subsystem team)
- Team di piattaforma (platform team)
Queste quattro topologie fondamentali sono dei modelli a cui tendere per strutturare ogni possibile divisione di produzione software, grande o piccola. Più una realtà è grande più è probabile che avrà tutte e quattro queste tipologie al suo interno.
NOTA - Dov’è il DevOps team?
Una cosa che ho notato, durante la ricerca, è che non sono indicati esplicitamente i classici team a cui siamo abituati: Operations, il famigerato DevOps team, i DBA… Questo accade, negli approcci moderni, per evitare i classici silos verticali per competenze tecniche che, in genere, formano dei colli di bottiglia.
Nei prossimi messaggi…
Uno alla volta, nelle prossime puntate, esamineremo le 4 tipologie di team.