Sui protocolli inventati.
Vorrei fare un appello accorato a tutti i programmatori di ordine e specie — e, soprattutto, ai loro Product Owner: smettetela di inventare “protocolli”. Parlo da chi oggi dirige un team di operations. Da chi riceve i ticket. Da chi deve capire, possibilmente al volo, cosa non sta funzionando in un sistema. E spesso, pur essendo tecnici, ci troviamo completamente al buio, perché qualcuno ha deciso di chiamare “protocollo” una cosa che protocollo non è.
Il problema nasce da una stortura strutturale: ormai tutto viene fatto usando HTTP, in qualche variante più o meno standard. A volte si degrada su una semplice connessione TCP. Che è anche un'assurdità, ma tanto basta buttar giù un RFC qualsiasi e la frittata è fatta.
Il guaio vero, però, si vede nei ticket. Quando vado ad aprirne uno, non ci trovo scritto:
- “La sincronizzazione avviene via HTTP su porta 443.”
Oppure:
- “La segnalazione avviene attraverso TCP socket, aperto come sessione HTTP”
No. Niente di tutto ciò.
Trovo nomi di “protocolli” inventati. Nomi assurdi. Pseudoacronimi. Neologismi lisergici che sembrano partoriti da un team di marketing in overdose di startup. E che, ovviamente, non esistono da nessuna parte.
- WeirdSkunk™
- QuantumGooseLink
- TurboEchoMesh
- NanoSyncXL
- HyperNimbusBridge
- NeoSnail Protocol
- ZebraCloudTunnel
- FunkyPacketBeam
- AstroMuleSync
- VelvetHandshake 3.1
Non perdete tempo a cercare un RFC. Ovviamente non esiste. L’IETF ha cose più serie da fare. E quelli non sono affatto “protocolli”: sono chiamate HTTP con dentro del JSON, punto.
Quando mi scrivi che il tuo backend per l'automotive usa il protocollo WeirdSkunk, a me non dice assolutamente nulla. Ma proprio nulla. Smetti di usare puzzole psichedeliche per far muovere le auto e, fidati, la vita ti sorriderà.
E poi pretendete pure che il vostro Priority 1 venga preso sul serio, quando nel ticket c’è scritto:
- “Il protocollo QuickMilfTunnel sembra non inizializzarsi.”
Davvero? Ma cosa dovrebbe pensare un povero tecnico? Chiedilo a tua madre perché il Milf Tunneling non funziona. Lei ne sa più di te, sicuramente.
Il vero problema è la vanità.
La vanità di poter scrivere su un cazzo di curriculum — o peggio ancora, sulla vostra patinata pagina LinkedIn — che
- “avete inventato un protocollo”,
- “avete scritto un framework”,
- “avete rilasciato una nuova tecnologia”.
No. Non avete fatto nulla di tutto questo.
Avete scritto delle chiamate HTTP. Stop. E no, REST è ancora HTTP. E no, le vostre “API di nuova generazione” sono ancora HTTP. E no, aggiungere due header e cambiare il verbo in PATCH non fa di voi gli eredi di Vint Cerf.
Quello che avete fatto è sovrascrivere fetch() con più orgoglio che senso della realtà. Non è architettura. Non è un protocollo. Non è nemmeno un framework. È solo codice. Magari utile, ma niente di più.
Il problema è che non esistete da soli.
E quando tirate giù dal letto un operatore alle due di notte perché “la rete non funziona”, e il vostro magnifico “protocollo” WideRectum va in timeout su un banalissimo socket TCP — e no, non è per nulla efficiente — e la documentazione sembra scritta da uno che mandava SMS negli anni '90, pagando ogni singola lettera, e fa riferimento ad altri cinque o sei “protocolli” immaginari e dove trovarli...
Beh, l’operatore vi risponde:
- “Not a usecase.”
Perché, appunto, non esistete da soli.
Forse nella teeküche del vostro ufficio siete ancora il maschio alfa dell’IT, l’eroe che ha “inventato sette protocolli”,
sette famosissimi protocolli, sette protocolli entrati nella storia dei protocolli, sette madri di tutti i protocolli, sette protocolli candidati al Nobel.
Ma poi aprite un ticket, e quella roba lì la deve capire qualcun altro.
Uno che non lavora nella vostra startup. Uno che non ha mai sentito parlare di ZapSifilide™,
il vostro gioiello.
E qui, crolla tutto.
Perché il vostro protocollo non è famoso,
non è standard, non è documentato decentemente,
e soprattutto nessuno è tenuto a conoscerlo.
Confluence è il sistema di steganografia più avanzato mai concepito. No, non cifra i contenuti. Li lascia tranquillamente in chiaro.
Cripta il canale.
Nel senso che, se voi documentate qualcosa su Confluence e non linkate la pagina, è persa per sempre. Nessuno la troverà mai più. Nemmeno voi. Nemmeno Dio.
Immaginiamo per un attimo di essere nel 1945, a Londra. Il gruppo di Alan Turing sta cercando di craccare Atlassian Enigma 2.0, l’ultima frontiera della crittografia. Un “protocollo” (ovviamente, che ve lo dico a fare?) inviolabile.
— Alan Turing: “Usiamo l’approccio statistico. Analizziamo i caratteri.” — Assistente: “Ma i caratteri sono in chiaro, signore. Si leggono ad occhio nudo.” — Turing: “E allora come impediscono che li leggiamo noi?” — Assistente: “Li pubblicano sul Confluence del Terzo Reich, signore.” — Turing: “Siamo fottuti. ” – Assistente: e ora cosa facciamo? – Turing: Conosci qualche buon corso di tedesco?
E voi, magari, credete ancora che a Tunguska sia caduto un asteroide. Sciocchezze. Soluzione semplicistica e complottara.
La verità è un’altra:
qualcuno ha premuto “Cerca” sul Confluence del Partito Comunista Sovietico. E il resto è storia. Che e' su confluence. Quindi non la conosceremo mai.
Confluence non serve a niente. O meglio, serve a una sola cosa: convincere il vostro Scrum Master che avete raggiunto la Definition of Done.
Perché, ehi, l’“artifact” è lì, disponibile! E ci sono pure i test automatici — scritti, ovviamente, dalle stesse persone che hanno scritto il codice. Spoiler: i test passano! Che sorpresa. È come se il codice si fosse esaminato da solo allo specchio e avesse detto:
- “Promosso a pieni voti. Bravo me.”
E poi, dulcis in fundo:
- “È tutto documentato su Confluence.”
Peccato che Confluence sia in realtà un buco nero supermassivo di HTML e JavaScript. Un’entità cosmica che curva lo spazio-tempo aziendale, dalla quale nemmeno la luce può uscire.
Quello che leggete quando cercate qualcosa su Confluence — se la vostra azienda ha superato i 50 dipendenti — non è il documento. È la radiazione residua che il vostro codice ha emesso prima di essere stritolato dalla gravità della fuffa.
È come osservare una stella morta in ritardo di tre release.
Quindi, ricapitoliamo.
Se avete “inventato” il protocollo SmartProlapse™, e poi aprite un ticket… ricordatevi: SmartProlapse non è famoso. Non è celebre. Non è candidato al Nobel per la pace digitale. Non è la madre di tutti i protocolli. È semplicemente una roba che vi siete inventati voi. Nel tempo libero. Magari mentre la build compilava.
E quando dite:
- “Sì, ma la documentazione la trovi sul nostro Confluence…”
A uno che è stato tirato giù dal letto alle tre di notte, e che comunica, in quel momento, col protocollo BestemmioneAnale 1.0, perché il cervello non ha ancora completato il boot, beh… non meritate altro che la risposta standard delle ops:
- “Not a usecase.”
Che, tradotto dal tecnichese all’umano, suona esattamente così:
- “Ma che cazzo di merda hai scritto sul ticket?”
Che dite, vi serve un disegnino?
Un PowerPoint. Ma non più di quattro slide, mi raccomando. Perché il vostro cervello inutile e farlocco ha un attention span di quattro secondi, giusto il tempo di tornare a scrollare su Instagram.
No. Non ve lo faccio.
Perché ho appena inventato il protocollo Nculammammeta™.
Non è documentato. Non è standardizzato. Non è open source.
Ma funziona. Eccome se funziona.
E ricordate:
Voi non avete mai inventato un protocollo. IBM lo ha fatto. Cisco lo ha fatto. Microsoft lo ha fatto. Voi no. Perche' non siete un cazzo di nessuno e non avete idea di quello che state dicendo.
Uriel Fanelli
Il blog e' visibile dal Fediverso facendo il follow a: @uriel@keinpfusch.net
Contatti:
- Fediverse: @uriel@x.keinpfusch.net
- XMPP/Jabber: uriel@mtrx.keinpfusch.net
- GNU JAMI: ufanelli