Brainrepo
L'EPI versioning e il change management è una delle sfide più grandi dell'EPI, no? E no, non funziona così C'era un'altra famiglia che diceva no, per noi l'EPI è immutabile quindi le proprietà che prima c'erano non si tocca, non ne aggiungiamo delle nuove e deprecchiamo le vecchie e rimarranno là a interim che rimarranno là e poi ci rimangono per sempre.In realtà, quello che avete detto lo sposa appieno.Abbiamo due approcci per la gestione dell'EPI.Un approccio centralizzato, quindi con una design authority, cioè il capo architetto che diceva Luca, dove il controllo è centralizzato, un piccolo pool decide come si vuole sviluppare l'EPI e tutti le sviluppano.velocità decisionale lenta perché chi prende le decisioni sono tre persone e tutti si devono adattare.La consistenza è alta.Cosa vuol dire? Quali sono i benefici? I benefici sono che naturalmente l'IPI è omogenea, hai meno rischi di versionamento, ok? Perché hai un'integrazione più ponderata.e hai un controllo centralizzato con una consistenza molto alta.Questo succede con la Design Authority, quindi un pool di architetti.Poi c'è invece il modo completamente decentralizzato dove ogni team segue i propri interessi, quindi delivery alla velocità della luce, ma una consistenza che è variabile.Avete detto bene? La soluzione sta nel mezzo.Un modo o un modello di governance che io ho individuato essere interessante anche perché non sono io che l'ho individuato ma grandi esperti di API, management, API governance ne parlano come una soluzione e secondo me può essere, è quella degli embedded expert.Cosa vuol dire? Voi avete parlato di guidelines, Carmine lei è tutt'uno giusto definiamo le guidelines e poi bene o male ogni ogni ogni team le declina un po come gli servono immaginate che quel pool di pochi architetti uno di questi architetti entri nel vostro team all'inizio ok del team e lavori con voi i primi mesi per applicare le regole condivise, condividere una visione globale e non locale del vostro team, quindi una visione di enterprise, e comprendere con voi quelle che sono le regole globali che hanno senso in una visione globale, quelle che invece sono un limite.Quindi secondo me il vero dipende sta là, ed è tutto in funzione della decisione.Prima abbiamo parlato di frustrazione, no? Io mi sono chiesto tante volte perché siamo veramente frustrati quando in un contesto centralizzato la decisione viene dall'alto, no? E quindi ci dice dovete fare così, è solo così.E la risposta che mi sono dato è che cazzo non siamo parte della decisione, giusto? siamo completamente tagliati fuori dalla decisione pur essendo quelli che navigano nel fango e questa cosa ci fa girare dannatamente le palle.Allora da persona che gestisce la governance mi chiedo come posso coinvolgere il team nelle decisioni? e per darmi una risposta ho pensato a mia moglie, questa cosa l'ho detto anche nel talk di Code Emotion, mi sono chiesto questa cosa e ho detto ma cacchio come posso capire qual è la cosa che mi stridi più in funzione della decisione? e mia moglie mi ha detto Mauro, guarda che a casa quella che decido sono io.E nelle nostre cose, quella che decide sono io e gli detto non è vero, tu mi lasci sempre la decisione finale a me.Così lei l'ha detto scherzando, no? Provocandomi come fa sempre.E in effetti lei lascia la decisione finale a me, sempre.E allora se ci rifletto per un attimo...a quel punto comprendo che la decisione non è un elemento atomico.Quindi il modo che ho io per coinvolgere il team in un contesto dove devo applicare una visione globale, quindi imporre in un certo senso degli elementi, E avere il controllo su questi elementi, è che lo faccio attraverso la gestione della decisione.Se la decisione non è automa Quali sono le componenti della decisione? Quello che si chiama l'inception, quindi l'elemento diciamo, il momento in cui si dice ok, c'è bisogno di prendere una decisione, no? E quella di per sé è già un elemento della decisione, cioè decidere se c'è bisogno di prendere una decisione, se usare la paginazione delle API in un certo modo, è già una decisione.perché potrei dire no questa non è una decisione che devo prendere quindi lascio il team completamente autonomo di fare come vuole perché non è rilevante quindi già quella è una decisione la selezione delle scelte andiamo a cena? sì andiamo a cena fuori, sì quale ristorante andiamo tra questo e questo? è che sta scegliendo? mia moglie che dice quale ristorante andiamo tra questo e questo? chi è che sta scegliendo dove andare a cena? io o mia moglie? Lei ha già ristretto il campo e quindi ha guidato la mia decisione.Io ho la percezione di libertà, perché posso scegliere, ma sto scegliendo su un ventaglio limitato.Il terzo elemento della decisione è la selezione, quindi la scelta veri e propria.In un contest enterprise esiste anche un quarto elemento che è l'autorizzazione.quindi posso decidere nel mio modello di governance dell'EPI di dire ok i team sono liberi di scegliere io gli do un ventaglio di scelte come ristoranti di mia moglie no? quindi ti dico puoi scegliere che ne so GraphQL o RESTful? Non REST, GraphQL o RESTful? Decidi tu.Il team dice, ma cazzo stiamo dicendo noi? Bene, perfetto.Il team fa la selezione, quindi decide ok andiamo RESTful e poi io gli dico, va bene, potrei aver bisogno di un'autorizzazione.Quindi una volta che hai scelto fai il tuo bel progettino, il tuo bel documento, markdown, me lo mandi a me architetto, io lo valido.Ma se ti ho già selezionato le scelte? che bisogno di un'autorizzazione? Quindi potrei dirti ok, sei auto-autorizzato.Secondo elemento a supporto di una narrativa di indipendenza del team, Io ti dico, tu team io decido quando c'è da prendere una decisione, cioè ci sono delle pieghe da fare, sono delle pieghe da fare, vengo da te e ti dico, Inception, ci sono delle pieghe da fare.Ti do due scelte, tre scelte, ma tu sei libero di scelte? e non hai bisogno di un'autorizzazione.Poi c'è il momento di implementazione, tu puoi sempre agire nella scelta dicendo no questo non è possibile fare perché è troppo incasinato, fare un API GraphQL ci prende troppo tempo quindi aiutaci a fare altro, quello è un potere che ha il team per influire sulla decisione no? E poi c'è il challenge della decisione quindi chi è che può dire no questa decisione non va bene seguendo quale processo quindi state vedendo che la decisione non è un elemento atomico decida l'architetto decida il team la decisione sono sei elementi incezione, scelta definizione delle scelte potenziali, selezione, autorizzazione, implementazione e challenge che formano la decisione e che possono essere divisi e tra l'ambito centralizzato e l'ambito più decentralizzato, quindi delegati al team e questo va a creare il dipende, il dipende che abbiamo detto all'inizio.Vi siete mai trovati in una situazione dove c'era appunto uno split di questa decisione?