Team Topologies - QRC by Henny Portman QRC Team Topologies by Henny Portman

Approccio team-first

L'architettura di un sistema software è legata, ovvero è influenzata, dalla struttura organizzativa interna del produttore di software.
Qual è l'architettura che vogliamo in CGN?
L'architettura di riferimento che abbiamo scelto risponde a precise esigenze di business, ovvero:

  • Rispondere velocemente al cambiamento (cambiamenti normativi o nuove opportunità di business)
  • Costruire nuovi prodotti e servizi integrando rapidamente funzionalità di valore già realizzate
  • Offrire prodotti software resilienti, responsivi ed elastici, ovvero in grado di scalare rapidamente e garantire prestazioni adeguate al cambio repentino del carico.

Per soddisfare tali esigenze l'architettura deve essere certamente modulare (in parte a microservizi), riducendo al minimo l’accoppiamento tra i vari moduli e massimizzandone la coesione interna.

Il modello organizzativo, che abbiamo implementato ispirandoci a Team Topologies, prevede i seguenti team:

  • I team di sviluppo prodotto (o feature team): sono team fisici che corrispondono agli Stream-aligned Team. Si tratta pertanto di team autonomi, cross-funzionali e stabili che si occupano di tutto il ciclo di vita di un prodotto o di una fetta del suo dominio.
  • Team User eXperience: si tratta di un team di specialisti UX, all’interno del quale ciascun UX Designer, per periodi di tempo medio-lunghi, si innesta in un team di prodotto. Questo team rappresenta a tutti gli effetti anche un Enabling Team.
  • Team Piattaforma: si tratta di un team di sviluppo che rientra nel modello Team Topologies come Platform Team il cui compito principale è curare l’evoluzione del framework di sviluppo CGN e della Piattaforma tecnologica.
  • Team virtuali per specializzazione: si tratta di team virtuali composti da professionisti con lo stesso ruolo/specializzazione. Non si tratta di un Enabling Team, ma piuttosto di una Community Of Practice (CoP).

A questi team si aggiunge:

  • IT Board: un particolare team virtuale che comprende alcune figure del reparto che, in virtù delle proprie competenze e attitudini, orchestrano la completa governance della software factory nei suoi vari ambiti (organizzazione e metodologia, architettura/tecnologia, pianificazione).