Percorso dell'architetto: certificazione e immersione nel prodotto

Praticamente ogni sviluppatore si pone domande su come sviluppare le proprie competenze e quale direzione di crescita scegliere: verticale, cioè diventare manager, o orizzontale, diventando full-stack. Anni di lavoro su un singolo prodotto, contrariamente ai miti, non rappresentano una limitazione, ma piuttosto un'opportunità utile. In questo articolo condividiamo l'esperienza del nostro sviluppatore backend Alexey, che ha dedicato 6 anni alle certificazioni e ha percorso un cammino fino a diventare architetto.

Percorso dell'architetto: certificazione e immersione nel prodotto

Chi è l'architetto

L'architetto 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 lo aiuta a risolvere le sue problematiche attraverso la tecnologia, oltre a determinare come sarà organizzato un determinato sistema informativo.

Questo professionista deve non solo comprendere le singole aree tematiche, ma anche vedere l'intero processo:

  • Definizione del compito aziendale.
  • Sviluppo, compreso programmazione, preparazione, archiviazione e trattamento dei dati.
  • Implementazione e supporto dell'infrastruttura.
  • Testing.
  • Deployment.
  • Analisi e manutenzione operativa.

Questo significa essere in grado di immedesimarsi in ogni specialista o team durante il ciclo di vita dello sviluppo, comprendere dall'interno lo stato attuale dei sistemi, identificare gli errori commessi, formulare obiettivi. A volte, eseguire personalmente un intervento operativo.

Il percorso di sviluppo professionale dallo sviluppatore all'architetto richiede un tempo considerevole, di norma diversi anni. Per questo lo sviluppatore ha bisogno sia di competenze pratiche che di conoscenze teoriche, le quali possono essere certificate a livello internazionale.

Più di 5 anni su un solo progetto: routine o opportunità di crescita?

Qualche anno fa abbiamo iniziato a lavorare su un grande sistema IT medico per un cliente estero. In questo progetto di vasta portata sussistevano determinate problematiche:

  • accessi limitati;
  • prod instabili;
  • sprint incredibilmente lunghi e approvazioni prolungate.

“È ora di migliorare le mie qualifiche”, ha deciso uno dei principali sviluppatori, Alexey, per superare le difficoltà sopra menzionate e comprendere meglio il sistema.

Aleksej ha condiviso la sua esperienza su come iniziare al meglio l'apprendimento, quali certificazioni sono importanti da ottenere, come e perché farlo.

Passo primo: perfeziona 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 di lingua inglese!

Dall'esperienza

Un giorno, Aleksej ricevette una chiamata da una collaboratrice del cliente. In quel periodo il nostro sviluppatore non poteva vantarsi di avere una serie di certificati — né in tecnologie, né in gestione, né in comunicazione. Forse non sarebbero stati utili — infatti, è possibile essere un professionista competente anche senza ulteriori titoli. Ma si presentò comunque un problema.

Bisogna capire che il linguaggio parlato è radicalmente diverso da quello scritto. Se ti orienti perfettamente nelle specifiche in lingua inglese, ma non pratichi listening e speaking, abbiamo brutte notizie per te. In questo caso, le conferenze telefoniche con i partner possono rivelarsi un vicolo cieco.

Durante la chiamata, Aleksej afferrava alcune parole familiari, ma il discorso del collega era così veloce e diverso dalla pronuncia classica delle lezioni audio che il significato principale delle sue domande gli sfuggì. Per cortesia e per evitare di complicare la situazione, Aleksej acconsentì rapidamente a tutte le proposte.

C'è bisogno di dire che durante il lavoro sono emerse scoperte spiacevoli? Il nostro sviluppatore accettò qualcosa che sarebbe sicuramente rifiutato se la proposta fosse stata presentata in un linguaggio comprensibile.

In quel momento divenne chiaro che era assolutamente necessario migliorare le capacità di ascolto e parlato. Il modo migliore per farlo erano le certificazioni.

Certificazione in lingua inglese

Per migliorare la comunicazione nel nostro progetto medico, Aleksej ha studiato attraverso diversi programmi. Di conseguenza ha ottenuto la certificazione FCE — First Certificate in English. Questo lo ha aiutato a iniziare a capire il cliente e comunicare le proprie idee.

Trick:

Evita i programmi di formazione per l'inglese di base. L'abilità deve essere mirata. Se hai bisogno di inglese per comunicazioni commerciali, questo è ciò che devi studiare. Ma non bisogna esagerare e tentare di ottenere il CAE (Certificate in Advanced English). La sua particolarità è l'uso di parole sofisticate, espressioni specifiche che quasi non vengono utilizzate nella comunicazione internazionale.

Percorso dell'architetto: certificazione e immersione nel prodotto

Passo due: certificazione su tutto il stack tecnologico

Inizialmente, la base del progetto era costituita dalla tecnologia di mapping object-relational ORM. Il team di sviluppatori del cliente era orgoglioso della propria creazione, poiché tutto era stato realizzato utilizzando concetti avanzati, complessi e cool.

Tuttavia, i problemi in produzione — in particolare il server SQL che si bloccava continuamente, non erano rari. A un certo punto, la soluzione tipica era riavviare il servizio. Il cliente chiamava il team leader e segnalava che era ora di riavviarsi. Alla fine abbiamo deciso di mettere fine a questa situazione.

Il cliente ha desiderato lavorare sulle performance del sistema — per questo era necessario implementare il profiling e condurre regolarmente ottimizzazioni. Come strumento di profiling, all'epoca — circa nel 2015 — abbiamo scelto Ants Profiler, ma questo si è rivelato scarso. Con bassa granularità era difficile ottenere informazioni su un blocco critico del codice. Con massima granularità, Ants Profiler iniziava a modificare il codice in modo tale da mettere a rischio la funzionalità dei sistemi — lì dove era stato impostato il profiling, tutto semplicemente andava in crash. Pertanto, abbiamo cambiato approccio.

Abbiamo iniziato con l'analisi delle statistiche

Analizzando le statistiche della produzione, è diventato chiaro che il 95% delle operazioni sul server ha una logica di business primitiva in 4 righe. Per esse era sufficiente un'unica query SQL, e non l'intero insieme di query generate dal blocco di logica di business con ORM.

Alexey ha proposto e realizzato una stored procedure per spostare le operazioni senza ORM. L'idea contrastava con la consueta paradigma del progetto, il team leader l'ha accolta con cautela, ma il cliente ha accettato tutto e richiesto l'implementazione. Non era sorprendente, poiché il nuovo metodo consentiva di ridurre i tempi di elaborazione in produzione da quattro ore a pochi minuti — mediamente 98 volte.

Eppure, avevamo ancora dei dubbi: era questa una soluzione corretta o una questione di preferenze personali? La fede nel potente C# e ORM è stata messa in discussione da un caso fortuito, che ha mostrato tutta la forza delle soluzioni semplici.

Caso secondo

Il team ha scritto una query per lavorare con i dati nel contesto della paradigma ORM, redatta secondo tutte le regole, senza errori. Il suo processamento richiedeva 2-3 minuti, e questi parametri sembravano accettabili. Tuttavia, un'implementazione alternativa tramite selezioni semplici e view ha fornito un risultato più rapido — in 2 secondi.

È diventato evidente che era il momento di scegliere un esperto che superasse la certificazione su tutto il stack del progetto, per comprendere tutte le sfumature e scegliere il metodo ottimale. Questa responsabilità è stata assunta da Aleksej.

Prime certificazioni

Per comprendere l'essenza, Aleksej ha ottenuto diverse certificazioni Microsoft, 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 utilizzando 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 è arrivato alle seguenti conclusioni:

  • Per il funzionamento dei sistemi, è necessario rispettare le regole di scrittura del codice: non solo indentazioni e commenti, ma specifiche tecniche — numero di accessi ai database, carico del server e molto altro.
  • Applicare concetti contraddittori può portare a problemi. La concezione dei database è una teoria degli insiemi, mentre l'ORM è un concetto operativo.
  • Le idee che infrangono l'ordine delle cose possono incontrare resistenza all'interno del team. Sviluppare è anche relazionarsi e saper argomentare il proprio punto di vista.
  • La certificazione amplia l'orizzonte e permette di capire cosa si può utilizzare e cosa si può evitare.

Percorso dell'architetto: certificazione e immersione nel prodotto

Terzo passo: studiare non solo il codice

Quando si lavora su soluzioni IT su larga scala, ci sono molti fattori da considerare. Ad esempio, non tutti gli sviluppatori prestano attenzione ai parametri della rete — ma anche la sua larghezza di banda può influenzare la risoluzione di un problema aziendale.

Questo si comprende grazie a certificazioni di serie 98:

Esse permettono di avere una visione più ampia delle cose e di uscire dalla concezione limitata "solo codice". Si tratta di fondamentali, le basi, ma sono importanti per comprendere tutto a un livello più profondo.

Le certificazioni di serie 98 consistono in piccoli test — 30 domande in 45 minuti.

Quarto passo: gestione dei processi

Lavorare con le cliniche è un'attività molto più responsabile rispetto a, ad esempio, la creazione di un gioco mobile. Qui non si può semplicemente aggiungere una funzionalità e pubblicarla — è fondamentale rispettare il processo di approvazione e apportare numerose modifiche richieste dal cliente, poiché sono in gioco la salute e la vita delle persone.

Il tipico Agile non ha dato i risultati desiderati in questo progetto, e ogni sprint è durato abbastanza a lungo. Tra i vari deployment sono passati da 6 mesi a un anno.

Inoltre, a livello tecnico, era impossibile armonizzare i processi delle dieci cliniche servite a un comune denominatore.

Per ottenere risultati in modo più veloce in queste condizioni, gli sviluppatori necessitavano di responsabilità personale e di una visione ampia dei processi, il che implica una costante concentrazione e un'alta qualificazione.

Quando uno specialista è immerso nel processo, vede chiaramente i risultati, le cause e le conseguenze, e il quadro complessivo. Questo è simultaneamente un fattore di motivazione aggiuntiva e di consapevolezza, migliorando la capacità di risolvere compiti e problemi.

Con un'infrastruttura ben collaudata, un'architettura ben progettata e un codice ottimale, una persona può gestire molti processi. Tuttavia, ciò non significa che si debbano formare soldati universali che possano gestire il progetto da soli. La comunicazione e il lavoro di squadra sono fondamentali.

In un team, ogni sviluppatore comprende che i colleghi dipendono dalle sue azioni. Risparmiare 5 minuti nella fase di sviluppo potrebbe significare 5 ore extra di testing. È importante stabilire comunicazioni per comprendere questo.

Nel nostro progetto, Alexey ha avuto un supporto nell'apprendimento dei processi grazie a certificati da EXIN:

  • Certificato M_o_R Foundation in Risk Management
  • Fondazione Agile Scrum
  • Fondazione IT Service Management
  • Fondazione EXIN Business Information Management
  • Certificato PRINCE2 Foundation in Project Management
  • Certificato Test Engineer
  • Fondazione Microsoft Operations Framework
  • Progetti di Servizio Agile

Sono stati seguiti corsi su edX che hanno aiutato a guardare il sistema da una prospettiva statistica e di programmazione snella, e successivamente hanno spinto a ottenere certificato di architetto:

  • Produzione Snella
  • Six Sigma: Analizza, Migliora, Controlla
  • Six Sigma: Definisci e Misura

Secondo il principio Six Sigma, il controllo statistico garantisce un risultato di alta qualità con una probabilità estremamente alta.

Aumentando il proprio livello, uno sviluppatore giunge di solito alle seguenti conclusioni:

  • Lavora non tanto, ma in modo efficace.
  • Non complicarti la vita inseguendo l'apparenza esteriore: tecnologie avanzate non necessariamente risolvono i problemi meglio.
  • Collabora con specialisti di tutte le fasi del ciclo e scopri i loro punti dolenti. L'architetto deve padroneggiare i processi: identificazione del problema, definizione del compito, progettazione della topologia di rete, sviluppo, test, supporto, utilizzo.
  • Controlla ogni funzionalità dall'inizio alla fine.
  • A volte, i processi IT non corrispondono a quelli aziendali, e questo deve essere affrontato.

Percorso dell'architetto: certificazione e immersione nel prodotto

Passo quinto: comprendere l'architettura attraverso la lente dei Big Data

Nel progetto abbiamo trattato database piuttosto grandi. 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 in un progetto è un database di piccole dimensioni. Le scale serie partono da 10 Tb, e lì richiedono metodi diversi.

Il passo successivo verso la certificazione è stato un corso sui Big Data. Ha aiutato a comprendere l'organizzazione del flusso dei dati e ad accelerare le operazioni in produzione. Inoltre, ha evidenziato l'importanza di strumenti minori, ad esempio, iniziare a utilizzare Excel per risolvere compiti specifici.

Certificato:
Microsoft Professional Program: Certificato Big Data

Percorso dell'architetto: certificazione e immersione nel prodotto

Passo sesto: da sviluppatore a architetto

Dopo aver ottenuto tutte le certificazioni menzionate, ancora come sviluppatore, Alexey ha iniziato a capire 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.

Alla ricerca della certificazione da architetto, Alexey ha trovato Certified Software Architect — Microsoft Platform da 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 delle informazioni e molte altre questioni a un alto livello ed è considerato una solida conferma delle competenze dell'architetto.

Nell'ambito del programma ci sono stati corsi per lo studio. La certificazione ha sistematizzato le conoscenze e ha permesso di entrare in una nuova fase di sviluppo: da sviluppatore a architetto.

Percorso dell'architetto: certificazione e immersione nel prodotto

In sintesi

Come sottolinea Alexey, nel processo di lavoro con un sistema IT di grande portata, è importante ricordare che la programmazione non è un divertimento costoso, ma uno strumento per risolvere problemi aziendali. Affrontando una sfida o l'altra, è fondamentale definire il valore commerciale, affinché il progetto non si blocchi.

L'architetto ha una visione particolare della programmazione e dei suoi elementi fondamentali:

  • Creazione e/o supporto del flusso di dati
  • Estrazione del flusso di informazioni basata sul flusso di dati
  • Estrazione del flusso di valore basata sul flusso di informazioni
  • Monetizzazione del flusso di valore

Guardando al progetto con gli occhi di un architetto, si deve partire dalla fine: definire il valore e poi perseguirlo attraverso il flusso di dati.

L'architetto segue le regole dello sviluppo, mantenendo una visione globale del progetto. Raggiungere questo obiettivo attraverso la pratica e i propri errori è praticamente impossibile: piuttosto, si può, ma richiede molto tempo. La certificazione consente di ampliare gli orizzonti e di vedere il contesto completo di ogni questione, di conoscere l'esperienza di migliaia di professionisti e di sviluppare la competenza nel risolvere efficacemente i problemi.

Attualmente lavoriamo con il sistema medico sopra descritto da oltre cinque anni e abbiamo raggiunto notevoli miglioramenti. In questo periodo, Alexey ha sostenuto oltre 20 esami di certificazione:

  1. TS: Sviluppo di applicazioni Windows con Microsoft .NET Framework 4
  2. TS: Accesso ai dati con Microsoft .NET Framework 4 Programmazione in C#
  3. TS: Sviluppo di applicazioni Windows Forms con Microsoft .NET Framework 3.5
  4. PRO: Progettazione e sviluppo di applicazioni Windows utilizzando Microsoft .NET Framework 3.5
  5. PRO: Progettazione e sviluppo di applicazioni basate su Windows utilizzando Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 — Sviluppo di client basati su Windows
  7. 98-361: Fondamenti dello sviluppo software
  8. 98-364: Fondamenti di database
  9. Certificato M_o_R Foundation in Risk Management
  10. Fondazione Agile Scrum
  11. Fondazione IT Service Management
  12. Fondazione EXIN Business Information Management
  13. Certificato PRINCE2 Foundation in Project Management
  14. Certificato Test Engineer
  15. Fondazione Microsoft Operations Framework
  16. Progetti di Servizio Agile
  17. Produzione Snella
  18. Six Sigma: Analizza, Migliora, Controlla
  19. Six Sigma: Definisci e Misura
  20. Microsoft Professional Program: Certificato Big Data
  21. Certified Software Architect — Microsoft Platform

Percorso dell'architetto: certificazione e immersione nel prodotto

Superando tutti gli esami, Alexey è passato da sviluppatore senior ad architetto di progetto. In questo processo, la certificazione è diventata uno strumento potente sia per lo sviluppo professionale che per costruire una reputazione agli occhi del cliente.

Il "martello della certificazione" ha aiutato a ottenere accesso a processi critici specifici che necessitavano di controllo e approfondimento. I clienti europei di soluzioni IT tendono a valorizzare molto i professionisti certificati e sono disposti a concedere loro maggiore libertà decisionale.

Grazie per l'attenzione! Speriamo che l'articolo sia stato utile.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster