Quasi ogni sviluppatore si trova a porsi domande su come dovrebbe sviluppare le proprie competenze e quale direzione di crescita scegliere: verticale, ossia diventare un manager, oppure orizzontale, come full-stack. Lavorare per anni su un singolo prodotto, contrariamente ai miti, rappresenta non una limitazione, ma un'opportunità preziosa. In questo articolo, condividiamo l'esperienza del nostro sviluppatore backend Alexey, che ha dedicato 6 anni alle certificazioni e ha percorso il cammino fino a diventare architetto.

Chi è l'architetto
L'architetto in IT (tech lead) è uno sviluppatore di alto livello che si occupa di questioni globali nei progetti IT. Si immerge nei processi aziendali del cliente e aiuta a risolvere i suoi problemi attraverso la tecnologia, definendo anche come sarà strutturato un determinato sistema informativo.
Questa figura professionale deve non solo comprendere singoli ambiti tematici, ma anche vedere l'intero processo:
- Definizione del compito aziendale.
- Sviluppo, compresi programmazione, preparazione, archiviazione e elaborazione dei dati.
- Distribuzione e supporto dell'infrastruttura.
- Test.
- Deploy.
- Analisi e manutenzione operativa.
Questo significa essere in grado di mettersi nei panni di qualsiasi specialista o team nel ciclo di vita dello sviluppo, comprendere a fondo lo stato attuale dei sistemi, identificare gli errori commessi e definire obiettivi. A volte, è necessario intervenire personalmente.
Il percorso di sviluppo professionale da sviluppatore ad architetto richiede tempo — di solito, diversi anni. Per questo, lo sviluppatore ha bisogno sia di competenze pratiche sia di conoscenze teoriche, che possono essere validate da certificazioni internazionali.
Più di 5 anni su un progetto – routine o opportunità di crescita?
Alcuni anni fa abbiamo iniziato a lavorare su un'importante sistema informatico medico per un cliente estero. In questo grande progetto c'erano alcune problematiche:
- accessi limitati;
- produzione instabile;
- sprint incredibilmente lunghi e lunghe approvazioni.
“È tempo di migliorare le proprie competenze”, — è giunto a questa conclusione uno dei principali sviluppatori, Alexey, per superare le difficoltà elencate e comprendere meglio il sistema.
Aleksej ha condiviso la sua esperienza su come iniziare al meglio l'apprendimento, quali certificati sono importanti da ottenere, come e perché farlo.
Passo uno: migliora il tuo inglese
I linguaggi di programmazione sono una componente fondamentale dello sviluppo, ma le lingue per la comunicazione non sono meno importanti. Soprattutto nelle comunicazioni con clienti anglofoni!
Dalla pratica
Un bel giorno, Aleksej ricevette una telefonata da una collaboratrice della parte del cliente. All'epoca, il nostro sviluppatore non poteva vantare un mucchio di certificati — né in tecnologie, né in management, né in comunicazione. Forse non sarebbero stati utili — essere un buon professionista è possibile anche senza ulteriori titoli. Ma si presentò comunque un problema.
Bisogna capire che il linguaggio parlato è radicalmente diverso da quello scritto. Se conosci bene le specifiche in lingua inglese ma non pratichi listening e speaking, abbiamo cattive notizie per te. In tal caso, le telefonate con i partner possono rivelarsi frustranti.
Alexey riusciva a cogliere alcune parole familiari al telefono, ma il modo di parlare del collega era così veloce e distante dalla pronuncia classica delle audiolezioni che il significato principale delle sue domande sfuggiva. Per cortesia e per non complicare la situazione, Alexey accettò rapidamente tutte le proposte.
È superfluo dire che durante il lavoro ci sono state scoperte sgradevoli? Il nostro sviluppatore ha accettato una situazione da cui avrebbe assolutamente rinunciato, se la proposta fosse stata formulata in una lingua comprensibile.
In quel momento è diventato chiaro che era assolutamente necessario migliorare le competenze di ascolto e parlato. Il modo migliore per farlo erano le certificazioni.
Certificazione di lingua inglese
Per migliorare la comunicazione all'interno del nostro progetto medico, Alexey ha studiato diversi programmi. Alla fine ha superato la certificazione FCE - First Certificate in English. Questo lo ha aiutato a iniziare a comprendere il cliente e a esprimere i suoi pensieri.
Hack della vita:
Evita i corsi di inglese di base. L'abilità deve essere mirata. Se hai bisogno di inglese per comunicazioni d'affari, è quello che devi apprendere. Tuttavia, non esagerare e non mirare a superare il CAE (Certificate in Advanced English). La sua particolarità sono le parole sofisticate e le espressioni specifiche, che non vengono utilizzate quasi mai nella comunicazione internazionale.

Passo secondo: certificazione su tutto lo stack tecnologico
Inizialmente, la base del progetto era costituita dalla tecnologia di mapping relazionale degli oggetti ORM. Il team di sviluppatori dall'altra parte era orgoglioso della propria creazione, poiché tutto era stato fatto utilizzando concetti all'avanguardia, complessi e innovativi.
Tuttavia, i problemi in produzione, in particolare il costante blocco del server SQL, non erano rari. Si arrivava al punto che la soluzione tipica al problema era il riavvio del servizio. Il cliente contattava il team leader e comunicava che era ora di riavviarsi. Alla fine, abbiamo deciso di mettere fine a tutto questo.
Il cliente ha richiesto di ottimizzare le prestazioni del sistema: per questo era necessario implementare il profiling e condurre regolarmente ottimizzazioni. Come strumento di profiling, nel 2015 circa, abbiamo scelto Ants Profiler, che però si è dimostrato insufficiente. Con una bassa granularità, era difficile ottenere informazioni sui blocchi critici di codice. All'aumento della granularità, Ants Profiler iniziava a modificare il codice in modo tale che la funzionalità dei sistemi risultava compromessa: lì dove era stato impostato il profiling, tutto semplicemente crollava. Pertanto, abbiamo cambiato approccio.
Abbiamo iniziato con l'analisi delle statistiche
Dall'analisi delle statistiche di vendita è emerso chiaramente che il 95% delle operazioni sul server presentava una logica aziendale primitiva in 4 righe. Per queste operazioni era sufficiente una singola query SQL, invece di un intero insieme di query generate dal blocco di logica aziendale con ORM.
Aleksej ha proposto e implementato una stored procedure per spostare i lavori senza ORM. L'idea era contraria alla consueta paradigma del progetto, il team leader l'ha accolta con diffidenza, ma il cliente l'ha accettata e ha richiesto l'implementazione. Non era sorprendente, poiché il nuovo metodo ha permesso di ridurre i tempi di elaborazione in produzione da quattro ore a pochi minuti — in media, 98 volte più veloce.
E tuttavia, avevamo ancora dei dubbi: è questa la giusta soluzione o si tratta di una questione di preferenze personali? La fede nell'onnipotente C# e ORM è stata scossa da un caso fortuito, che ha dimostrato la potenza delle soluzioni semplici.
Caso secondo
Il team ha scritto una query per lavorare con i dati secondo la paradigma ORM, formulata secondo tutte le regole, senza errori. Il suo tempo di elaborazione era di 2-3 minuti e questi parametri sembravano accettabili. Tuttavia, un'implementazione alternativa, utilizzando semplici select e view, ha fornito un risultato più veloce — in 2 secondi.
È diventato chiaro che era il momento di scegliere uno specialista che superasse la certificazione su tutto lo stack del progetto, per comprendere tutte le sfumature e scegliere il metodo ottimale. Questo compito è stato incaricato ad Aleksej.
Prime certificazioni
Per comprendere la sostanza, Aleksej ha superato , coprendo l'intero stack tecnologico del progetto:
- TS: Sviluppo di applicazioni Windows con Microsoft .NET Framework 4
- TS: Accesso ai dati con Microsoft .NET Framework 4 Programmazione in C#
- TS: Sviluppo di applicazioni Windows Forms con Microsoft .NET Framework 3.5
- PRO: Progettazione e sviluppo di applicazioni Windows usando Microsoft .NET Framework 3.5
- PRO: Progettazione e sviluppo di applicazioni basate su Windows utilizzando Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 — Sviluppo di Client basati su Windows
Cercando di ottimizzare il lavoro su un nuovo progetto, il team è giunto alle seguenti conclusioni:
- Per il funzionamento dei sistemi è necessario rispettare le regole di scrittura del codice: non solo spazi e commenti, ma anche specifiche tecniche — numero di query al database, carico del server e molto altro.
- L'applicazione di concetti contrastanti può portare a problemi. Il concetto di database è una teoria degli insiemi, mentre ORM è un concetto di operazioni.
- Le idee che rompono la consuetudine possono incontrare resistenza nel team. Lo sviluppo è anche relazioni e capacità di argomentare il proprio punto di vista.
- La certificazione amplia gli orizzonti e consente di capire cosa può essere utilizzato e cosa non può essere.

Passo tre: studiate non solo il codice
Quando si lavora su soluzioni IT su scala, ci sono molteplici fattori da considerare. Ad esempio, non tutti gli sviluppatori prestano attenzione ai parametri di rete, eppure anche la sua larghezza di banda può influenzare la risoluzione di una problematica aziendale.
Questa comprensione proviene da certificazioni della serie 98:
Queste certificazioni permettono di vedere oltre e superare la limitata concezione di "solo codice". Si tratta di fondamenti, ma sono cruciali per comprendere tutto a un livello più profondo.
Le certificazioni della serie 98 sono test brevi: 30 domande in 45 minuti.
Passo quattro: gestione dei processi
Lavorare con le cliniche è un'attività più responsabile rispetto, ad esempio, alla creazione di un gioco mobile. Non è possibile aggiungere una funzionalità e rilasciarla in produzione; è importante seguire il processo di approvazione e apportare numerose modifiche richieste dal cliente, in quanto sono in gioco la salute e la vita delle persone.
Un approccio Agile tipico non ha prodotto i risultati desiderati in questo progetto, e ogni sprint ha avuto una durata sufficientemente lunga. Tra le distribuzioni sono trascorsi da 6 mesi a un anno.
Inoltre, puramente dal punto di vista tecnico, era impossibile armonizzare i processi delle dieci cliniche servite.
Per ottenere risultati più rapidi in queste condizioni, gli sviluppatori avevano bisogno di responsabilità personale e di una visione ampia dei processi — il che significa una costante concentrazione e una alta qualificazione.
Quando uno specialista è immerso nel processo, vede chiaramente i risultati, le cause e le conseguenze, la visione d'insieme. Questo è sia un fattore di motivazione aggiuntiva che di consapevolezza, migliorando la capacità di affrontare compiti e problemi.
Con un'infrastruttura ben collaudata, un'architettura ben progettata e codice ottimale, una persona può gestire molti processi. Tuttavia, ciò non significa che si debbano formare soldati universali in grado di portare avanti un progetto da soli. La comunicazione e il lavoro di squadra sono critici.
In un team, ogni sviluppatore comprende che i colleghi dipendono dalle sue azioni. Risparmiare 5 minuti nella fase di sviluppo può comportare 5 ore aggiuntive di test. Per comprendere questo, è importante facilitare le comunicazioni.
Nel nostro progetto, i processi sono stati facilitati per Alexey grazie a :
- M_o_R Foundation Certificate in Risk Management
- Agile Scrum Foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation Certificate in Project Management
- Test Engineer Certificate
- Microsoft Operations Framework Foundation
- Agile Service Projects
Su edX sono stati seguiti corsi che hanno aiutato a vedere il sistema da una prospettiva statistica e di programmazione snella, spingendo successivamente all'ottenimento del certificato di architettura:
- Lean Production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
Secondo il principio "Six Sigma", il controllo statistico garantisce un risultato di qualità con un'eccezionale probabilità.
Aumentando il proprio livello, uno sviluppatore arriva generalmente alle seguenti conclusioni:
- Non lavorate tanto, ma in modo efficiente.
- Non complicate la vita nella ricerca dell'esteriorità: tecnologie complesse non risolvono necessariamente i problemi meglio.
- Fate rete con esperti di tutte le fasi del ciclo e identificate le loro difficoltà. Un architetto deve conoscere i processi: identificazione del problema, definizione del compito, progettazione della topologia di rete, sviluppo, testing, supporto, operatività.
- Controlla ogni funzionalità da cima a fondo.
- A volte, i processi IT non sono allineati con i processi aziendali, ed è fondamentale affrontare questo problema.

Passo cinque: comprendere l'architettura attraverso la lente dei Big Data.
Nel progetto abbiamo gestito database piuttosto ampi. Almeno, così sembrava fino a un certo punto. Quando Alexey ha iniziato a studiare i Big Data su edX, si è scoperto che 1,5 Tb nel progetto è una piccola dimensione di database. Dimensioni significative partono da 10 Tb, e lì servono metodi diversi.
Il passo successivo verso la certificazione è stato un corso sui Big Data. Questo ha aiutato a comprendere l'organizzazione del flusso di dati e a velocizzare le operazioni in produzione. Ha anche messo in evidenza piccoli strumenti, ad esempio, iniziare a utilizzare Excel per risolvere compiti specifici.
Certificato:
Microsoft Professional Program: Certificato Big Data

Passo sei: da sviluppatore a architetto.
Dopo aver ottenuto tutte le certificazioni elencate, ancora come sviluppatore, Alexey ha iniziato a comprendere che le informazioni acquisite avevano un alto livello di astrazione, e questo non è affatto un male.
Una visione ampia dei processi porta al livello di architetto, uno dei più alti gradi di certificazione.
In cerca della certificazione per architetto, Alexey ha contattato di Sundblad & Sundblad. Si tratta di un programma riconosciuto da Microsoft, il cui sviluppo è iniziato 14 anni fa in collaborazione tra la sede centrale e l'ufficio svedese dell'azienda. Copre .NET Framework, raccolta dei requisiti, gestione del flusso d'informazione e molte altre questioni a un livello avanzato, ed è considerato una valida conferma delle competenze di un architetto.
All'interno del programma sono stati previsti corsi di studio. La certificazione ha sistematizzato le conoscenze e ha permesso di progredire verso un nuovo livello di sviluppo — da sviluppatore a architetto.

In conclusione
Come sottolinea Alexey, durante il lavoro con un sistema IT di grande scala è importante ricordare che programmare non è un'attività costosa per divertimento, ma uno strumento per risolvere problemi aziendali. Quando ci si trova di fronte a una sfida, è fondamentale definire il business value per evitare che il progetto si fermi.
Un architetto ha una visione particolare della programmazione e dei suoi elementi fondamentali:
- Creazione e/o supporto del flusso di dati
- Estrazione del flusso d'informazione a partire dal flusso di dati
- Estrazione del flusso di valore a partire dal flusso d'informazione
- Monetizzazione del flusso di valore
Guardando al progetto con gli occhi di un architetto, è fondamentale partire dalla fine: definire il valore e poi arrivarci attraverso il flusso dei dati.
L'architetto segue le regole dello sviluppo, mantenendo una visione globale del progetto. Raggiungerlo attraverso la pratica e gli errori personali è praticamente impossibile — anzi, è possibile, ma richiede molto tempo. La certificazione consente di ampliare gli orizzonti e di considerare il contesto completo di ogni questione, conoscere l'esperienza di migliaia di professionisti e sviluppare la capacità di risolvere problemi in modo efficace.
Attualmente lavoriamo con il sistema medico descritto sopra da oltre cinque anni e abbiamo raggiunto miglioramenti significativi. In questo periodo, Alexey ha superato più di 20 esami di certificazione:
- TS: Sviluppo di applicazioni Windows con Microsoft .NET Framework 4
- TS: Accesso ai dati con Microsoft .NET Framework 4 Programmazione in C#
- TS: Sviluppo di applicazioni Windows Forms con Microsoft .NET Framework 3.5
- PRO: Progettazione e sviluppo di applicazioni Windows usando Microsoft .NET Framework 3.5
- PRO: Progettazione e sviluppo di applicazioni basate su Windows utilizzando Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 — Sviluppo di Client basati su Windows
- 98-361: Fondamenti dello Sviluppo Software
- 98-364: Fondamenti dei Database
- M_o_R Foundation Certificate in Risk Management
- Agile Scrum Foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation Certificate in Project Management
- Test Engineer Certificate
- Microsoft Operations Framework Foundation
- Agile Service Projects
- Lean Production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
- Microsoft Professional Program: Certificato Big Data
- Certified Software Architect — Microsoft Platform

Superando tutti gli esami, Alexey è passato da sviluppatore senior ad architetto del progetto. In questo processo, la certificazione è diventata uno strumento potente sia per lo sviluppo professionale che per la costruzione di una reputazione agli occhi del cliente.
Il “ramo di certificazione” ha aiutato ad accedere a processi critici specifici che necessitavano di controllo e approfondimento. I clienti europei di soluzioni IT tendono ad apprezzare altamente i professionisti certificati e sono disposti a concedere loro maggiore libertà d'azione.
Grazie per la vostra attenzione! Speriamo che l'articolo sia stato utile per voi.
Fonte: habr.com
