Il percorso dell'architetto: certificazione e product immersion

Quasi ogni sviluppatore pone domande su come sviluppare le proprie capacità e quale direzione di crescita scegliere: verticale, ovvero diventare manager, o orizzontale, full stack. Molti anni di lavoro su un prodotto, contrariamente ai miti, non diventano un limite, ma un'utile opportunità. In questo articolo condividiamo l'esperienza del nostro sviluppatore backend Alexey, che ha dedicato 6 anni alle certificazioni e durante questo periodo è riuscito a diventare un architetto.

Il percorso dell'architetto: certificazione e product immersion

Chi è un architetto

Un architetto IT (responsabile tecnico) è 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 utilizzando la tecnologia, oltre a determinare come sarà strutturato questo o quel sistema informativo.

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

  • Impostazione di un problema aziendale.
  • Sviluppo, compresa la programmazione, preparazione, archiviazione ed elaborazione dei dati.
  • Implementazione e supporto delle infrastrutture.
  • Testing.
  • Distribuire.
  • Analisi e servizi operativi.

Ciò significa la capacità di mettersi nei panni di qualsiasi specialista o team nel ciclo di vita dello sviluppo, comprendere lo stato attuale dei sistemi dall'interno, identificare gli errori commessi e formulare obiettivi. A volte è necessario eseguire un intervento chirurgico da soli.

Il percorso di sviluppo professionale da sviluppatore ad architetto richiede molto tempo, in genere diversi anni. Per fare ciò, lo sviluppatore ha bisogno sia di competenze pratiche che di conoscenze teoriche, che possono essere confermate da una certificazione internazionale.

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

Diversi anni fa abbiamo iniziato a lavorare su un grande sistema informatico medico per un cliente straniero. C'erano alcuni problemi in questo progetto su larga scala:

  • accesso limitato;
  • prodotto instabile;
  • sprint incredibilmente lunghi e lunghe approvazioni.

“È tempo di migliorare le tue capacità”“, - uno dei principali sviluppatori Alexey è giunto a questa decisione per superare le difficoltà elencate e comprendere meglio il sistema.

Alexey ha condiviso la sua esperienza, dove è meglio iniziare la formazione, quali certificati sono importanti da ottenere, come e perché farlo.

Primo passo: migliora il tuo inglese

I linguaggi di programmazione sono una parte fondamentale dello sviluppo, ma i linguaggi per la comunicazione sono altrettanto importanti. Soprattutto nelle comunicazioni con un cliente di lingua inglese!

Dalla pratica

Un bel giorno, Alexey ha ricevuto una chiamata da un dipendente del cliente. A quel tempo, il nostro sviluppatore non poteva ancora vantare un mucchio di certificati, né nella tecnologia, né nella gestione, né nelle comunicazioni. Forse non sarebbero utili: dopo tutto, puoi essere uno specialista competente senza insegne aggiuntive. Ma il problema si poneva comunque.

Dobbiamo capire che la lingua parlata è radicalmente diversa dalla lingua scritta. Se sei esperto nelle specifiche inglesi, ma non ti eserciti nell'ascolto e nel parlato, allora abbiamo brutte notizie per te. In questo caso, le conversazioni telefoniche con i partner possono portare a un vicolo cieco.

Alexey ha colto alcune parole familiari durante la chiamata, ma il discorso della sua collega è stato così veloce e diverso dalla pronuncia classica delle lezioni audio che l'essenza principale delle sue domande è andata da qualche parte oltre. Per gentilezza e riluttanza a complicare la situazione, Alexey accettò rapidamente tutte le proposte.

Devo dire che durante il lavoro sono state fatte scoperte spiacevoli? Il nostro sviluppatore ha sottoscritto qualcosa che avrebbe assolutamente rifiutato deliberatamente se l'offerta fosse arrivata in un linguaggio comprensibile.

In quel momento è diventato chiaro che era semplicemente necessario migliorare le capacità di ascolto e di conversazione. Il modo migliore per farlo era attraverso le certificazioni.

Certificazione della lingua inglese

Al fine di migliorare la comunicazione nell'ambito del nostro progetto medico, Alexey ha studiato in diversi programmi contemporaneamente. Di conseguenza, ha superato il FCE - First Certificate in English Certification. Questo mi ha aiutato a iniziare ad ascoltare il cliente e a trasmettergli i miei pensieri.

Life hacking:

Evita i programmi di inglese di base. L'abilità deve essere mirata. Se hai bisogno dell'inglese per la comunicazione aziendale, dovresti studiarlo. Basta non andare agli estremi e prendere il CAE (Certificate in Advanced English). La sua particolarità sono le parole sofisticate, espressioni specifiche che non vengono quasi mai utilizzate nella comunicazione internazionale.

Il percorso dell'architetto: certificazione e product immersion

Fase due: certificazione dell'intero stack tecnologico

Inizialmente il progetto si basava sulla tecnologia di mappatura relazionale degli oggetti ORM. Il team di sviluppo dal lato del cliente era orgoglioso della propria idea, perché tutto è stato fatto utilizzando concetti avanzati, complessi e interessanti.

Tuttavia, i problemi in produzione, in particolare il blocco costante del server SQL, non erano rari. Si è arrivati ​​al punto in cui la tipica soluzione al problema era riavviare il servizio. Il cliente ha chiamato il responsabile del team e ha detto che era ora di ricominciare. Alla fine abbiamo deciso di farla finita.

Il cliente voleva valutare le prestazioni del sistema: per questo era necessario introdurre la profilazione ed eseguire regolarmente l'ottimizzazione. A quel tempo, intorno al 2015, fu scelto Ants Profiler come strumento di profilazione, ma funzionava male. Con un livello di dettaglio basso, era difficile ottenere informazioni su un blocco critico di codice. Al massimo dettaglio, Ants Profiler ha iniziato a modificare il codice in modo tale da mettere a rischio la funzionalità dei sistemi: dove era configurata la profilazione, tutto semplicemente si è bloccato. Quindi abbiamo cambiato il nostro approccio.

Abbiamo iniziato analizzando le statistiche

Analizzando le statistiche delle vendite, è diventato chiaro che il 95% del lavoro sul server ha una logica aziendale primitiva di 4 righe. Per loro era sufficiente una query SQL e non un set completo di query generate da un blocco di logica aziendale con un ORM.

Alexey ha proposto e implementato una procedura memorizzata per lo spostamento del lavoro senza ORM. L'idea contraddiceva il consueto paradigma progettuale, il team leader l'ha accolta con cautela, ma il cliente ha accettato tutto e ha chiesto la realizzazione. Ciò non è stato sorprendente, perché il nuovo metodo ha permesso di ridurre i ritardi nella lavorazione della produzione da quattro ore a diversi minuti, in media di 98 volte.

Tuttavia avevamo dei dubbi: è la decisione giusta o è una questione di preferenze personali? La fede negli onnipotenti C# e ORM è stata scossa da un incidente che ha mostrato tutta la potenza delle soluzioni semplici.

Caso due

Il team ha scritto una query per lavorare con i dati all'interno del paradigma ORM, compilati secondo tutte le regole, senza errori. La sua elaborazione ha richiesto 2-3 minuti e questi parametri sembravano accettabili. Tuttavia, un'implementazione alternativa che utilizza selettori e visualizzazioni semplici ha fornito risultati più rapidamente, in 2 secondi.

È diventato ovvio che era giunto il momento di scegliere uno specialista che si sarebbe sottoposto a certificazione sull'intero stack del progetto per comprenderne tutte le sfumature e scegliere il metodo ottimale. Alexey ha assunto questo compito.

Primi certificati

Per comprendere l'essenza, Alexey ha attraversato 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 la programmazione di Microsoft .NET Framework 4 in C#
  • TS: Sviluppo di applicazioni Microsoft .NET Framework 3.5 Windows Forms
  • 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 client basato su Windows

Cercando di ottimizzare il lavoro sul nuovo progetto, il team è giunto alle seguenti conclusioni:

  • Affinché i sistemi funzionino, è necessario seguire le regole di scrittura del codice: non rientri e commenti, ma caratteristiche tecniche: il numero di chiamate ai database, il carico sul server e molto altro.
  • Applicare concetti contrastanti può portare a problemi. Il concetto di database è la teoria degli insiemi, mentre l'ORM è un concetto operativo.
  • Le idee che sconvolgono il consueto ordine delle cose possono incontrare resistenza all’interno del team. Lo sviluppo riguarda anche le relazioni e la capacità di argomentare il proprio punto di vista.
  • La certificazione allarga i tuoi orizzonti e ti permette di capire cosa può essere utilizzato e cosa non può essere utilizzato.

Il percorso dell'architetto: certificazione e product immersion

Fase tre: scopri di più oltre al codice

Quando si lavora su soluzioni IT su larga scala, molti fattori sono importanti. Ad esempio, non tutti gli sviluppatori prestano attenzione ai parametri di rete, ma anche la sua larghezza di banda può influire sulla soluzione di un problema aziendale.

La comprensione di questo è data Certificazione serie 98:

Ti consentono di dare uno sguardo più ampio alle cose e di uscire dal concetto limitato di "solo codice". Questi sono i Fondamenti, le basi, ma sono importanti per comprendere tutto a un livello più profondo.

Le certificazioni della Serie 98 sono test brevi: 30 domande per 45 minuti.

Fase quattro: gestione dei processi

Lavorare con le cliniche è un’impresa più importante che, ad esempio, creare un gioco per cellulare. Qui non è possibile aggiungere una funzionalità e lanciarla in produzione: è importante seguire il processo di approvazione e apportare numerose modifiche da parte del cliente, perché sono in gioco la salute e la vita delle persone.

Il tipico Agile non ha prodotto i risultati desiderati in questo progetto e ogni sprint è durato piuttosto a lungo. Tra una distribuzione e l'altra sono necessari da 6 mesi a un anno.

Inoltre, era tecnicamente impossibile ricondurre i processi delle dieci cliniche servite a un denominatore comune.

Per ottenere risultati più rapidamente in queste condizioni, gli sviluppatori avevano bisogno di responsabilità personale e di una visione dei processi su larga scala, il che significa concentrazione costante ed elevate qualifiche.

Quando uno specialista è immerso nel processo, vede chiaramente i risultati, le cause e le conseguenze, l'intero quadro. Questo è allo stesso tempo un fattore di ulteriore motivazione e consapevolezza, migliorando la capacità di risolvere problemi e problemi.

Con un'infrastruttura ben funzionante, un'architettura ben costruita e un codice ottimale, una persona può intraprendere molti processi. Tuttavia, ciò non significa che sia necessario formare soldati universali in grado di guidare da soli il progetto. La comunicazione e il lavoro di squadra sono fondamentali.

In un team, ogni sviluppatore capisce che i suoi colleghi dipendono dalle sue azioni. Risparmiare 5 minuti durante la fase di sviluppo significa forse 5 ore aggiuntive di test. Per capirlo è importante stabilire una comunicazione.

Nel nostro progetto, Alexey ha ricevuto aiuto per padroneggiare i processi certificati da EXIN:

  • Certificato della Fondazione M_o_R in Gestione del rischio
  • Fondazione Agile Scrum
  • Fondazione per la gestione dei servizi IT
  • Fondazione per la gestione delle informazioni aziendali EXIN
  • Certificato della Fondazione PRINCE2 in Project Management
  • Certificato di ingegnere collaudatore
  • Fondazione Microsoft Operations Framework
  • Progetti di servizio agile

Su edX sono stati effettuati corsi che hanno aiutato a guardare il sistema dal punto di vista della statistica e della programmazione snella e successivamente hanno spinto ad ottenere certificato di architetto:

  • Produzione snella
  • Six Sigma: analizzare, migliorare, controllare
  • Six Sigma: definizione e misura

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

Aumentando il suo livello, lo sviluppatore, di regola, giunge alle seguenti conclusioni:

  • Non lavorare duro, ma lavora in modo efficiente.
  • Non complicarti la vita rincorrendo l'esterno: la tecnologia sofisticata non risolve necessariamente i problemi meglio.
  • Fai amicizia con specialisti in tutte le fasi del ciclo e scopri i loro punti deboli. Un architetto deve padroneggiare i processi: identificazione di un problema, impostazione di un problema, progettazione di una topologia di rete, sviluppo, test, supporto, funzionamento.
  • Controlla ogni funzionalità dentro e fuori.
  • Succede che i processi IT non corrispondono ai processi aziendali e questo deve essere affrontato.

Il percorso dell'architetto: certificazione e product immersion

Fase cinque: comprendere l'architettura attraverso la lente dei Big Data

Durante il progetto ci siamo occupati di database piuttosto grandi. Almeno così sembrava fino a un certo momento. Quando Alexey ha iniziato a studiare i big data su edX, si è scoperto che 1,5 Tb del progetto erano un piccolo database. Le scale serie partono da 10 Tb e lì sono necessari altri metodi.

Il passo successivo verso la certificazione è stato un corso sui big data. Ha contribuito a comprendere l'organizzazione del flusso di dati e ad accelerare le operazioni di produzione. E presta attenzione anche ai piccoli strumenti, ad esempio inizia a utilizzare Excel per risolvere micro-attività individuali.

certificato:
Programma Microsoft Professional: certificato Big Data

Il percorso dell'architetto: certificazione e product immersion

Fase sei: da sviluppatore ad architetto

Dopo aver ricevuto tutti i certificati elencati, mentre era ancora uno sviluppatore, Alexey iniziò a capire che le informazioni ricevute avevano un alto livello di astrazione, e questo era tutt'altro che negativo.

Una visione su larga scala dei processi porta al livello di architetto, uno dei livelli di certificazione più alti.

Alla ricerca della certificazione di architetto, Alexey si avvicinò Architetto software certificato - Piattaforma Microsoft di Sundblad & Sundblad. Si tratta di un programma riconosciuto da Microsoft, il suo sviluppo è iniziato 14 anni fa con la collaborazione della sede centrale dell'azienda e degli uffici svedesi. Copre .NET Framework, raccolta dei requisiti, gestione del flusso di informazioni e molti altri argomenti di alto livello ed è considerato una forte testimonianza delle capacità di un architetto.

C'erano corsi da studiare all'interno del programma. La certificazione ha sistematizzato la conoscenza e ci ha permesso di entrare in una nuova fase di sviluppo: da sviluppatore ad architetto.

Il percorso dell'architetto: certificazione e product immersion

Riassumendo

Come osserva Alexey, quando si lavora con un sistema IT su larga scala, è importante ricordare che la programmazione non è un intrattenimento costoso, ma uno strumento per risolvere problemi aziendali. Di fronte a questa o quella sfida, devi assolutamente annotare il valore aziendale in modo che il progetto non raggiunga un vicolo cieco.

L'architetto ha una visione speciale della programmazione e delle sue componenti elementari:

  • Creazione e/o mantenimento di un flusso di dati
  • Estrazione del flusso di informazioni dal flusso di dati
  • Estrazione del flusso di valore dal flusso di informazioni
  • Monetizzazione del flusso di valore

Se si guarda un progetto con gli occhi di un architetto, è necessario partire dalla fine: formulare il valore e poi arrivarci attraverso il flusso dei dati.

L'architetto segue le regole dello sviluppo, avendo una visione globale del progetto. È quasi impossibile raggiungerlo attraverso la pratica e i propri errori, o meglio, è possibile, ma ci vorrà molto tempo. La certificazione ti consente di ampliare i tuoi orizzonti e guardare l'intero contesto di ogni problema, conoscere l'esperienza di migliaia di professionisti e sviluppare la capacità di risolvere efficacemente i problemi.

Ad oggi lavoriamo con il sistema medico sopra descritto da più di cinque anni e abbiamo ottenuto miglioramenti significativi. Durante questo periodo, Alexey ha superato più di 20 esami di certificazione:

  1. TS: Sviluppo di applicazioni Windows con Microsoft .NET Framework 4
  2. TS: accesso ai dati con la programmazione di Microsoft .NET Framework 4 in C#
  3. TS: Sviluppo di applicazioni Microsoft .NET Framework 3.5 Windows Forms
  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 client basato su Windows
  7. 98-361: Fondamenti di sviluppo software
  8. 98-364: Fondamenti di database
  9. Certificato della Fondazione M_o_R in Gestione del rischio
  10. Fondazione Agile Scrum
  11. Fondazione per la gestione dei servizi IT
  12. Fondazione per la gestione delle informazioni aziendali EXIN
  13. Certificato della Fondazione PRINCE2 in Project Management
  14. Certificato di ingegnere collaudatore
  15. Fondazione Microsoft Operations Framework
  16. Progetti di servizio agile
  17. Produzione snella
  18. Six Sigma: analizzare, migliorare, controllare
  19. Six Sigma: definizione e misura
  20. Programma Microsoft Professional: certificato Big Data
  21. Architetto software certificato - Piattaforma Microsoft

Il percorso dell'architetto: certificazione e product immersion

Dopo aver superato tutti gli esami, Alexey è passato da sviluppatore principale ad architetto di progetto. Allo stesso tempo, la certificazione è diventata un potente strumento sia per lo sviluppo professionale che per la costruzione della reputazione agli occhi del cliente.

Il “Certification Ram” ha contribuito ad ottenere l'accesso ai singoli processi critici che necessitavano di controllo ed elaborazione. I clienti europei di soluzioni IT, di norma, apprezzano molto gli specialisti certificati e sono pronti a dare loro maggiore libertà d'azione.

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

Fonte: habr.com

Aggiungi un commento