
Alexander Baranov lavora in Veeam come direttore R&D e vive tra due paesi. Trascorre metà del suo tempo a Praga e l'altra metà a San Pietroburgo. In queste città si trovano i più grandi uffici di sviluppo di Veeam.
Nel 2006 era una startup di due imprenditori russi, focalizzata su software per il backup di macchine virtuali (da cui il nome — V[ee][a]M, macchina virtuale). Oggi è una gigantesca corporazione con oltre quattromila dipendenti in tutto il mondo.
Alexander ci ha raccontato com'è lavorare in un'azienda del genere e quanto sia difficile entrarci. Di seguito, il suo monologo.
Tradizionalmente parleremo della valutazione dell'azienda su "Mio Cerchio": Veeam Software ha ricevuto dai suoi dipendenti . È apprezzata per un buon pacchetto sociale, un ambiente di lavoro confortevole, compiti interessanti e per il fatto che l'azienda rende il mondo migliore.

Quali prodotti sviluppa Veeam
Prodotti che garantiscono la resilienza delle infrastrutture IT. Fortunatamente, nel tempo, l'hardware è diventato abbastanza affidabile, e il cloud assicura la resilienza. Tuttavia, gli errori umani persistono.
Ad esempio, il classico problema di incompatibilità degli aggiornamenti con l'infrastruttura dell'organizzazione. L'amministratore ha installato un aggiornamento non verificato, oppure è avvenuto automaticamente, e ciò ha causato malfunzionamenti nei server dell'azienda. Un altro esempio: qualcuno ha apportato modifiche a un progetto comune o a un insieme di documenti, ritenendole utili. Successivamente è emerso un problema e si è reso necessario ripristinare uno stato di una settimana fa. A volte, tali modifiche non sono nemmeno correlate a azioni consapevoli: di recente, i virus ransomware hanno guadagnato popolarità. L'utente porta al computer di lavoro una chiavetta USB con contenuti sospetti o visita un sito di gattini e, di conseguenza, i computer della rete vengono infettati.
In situazioni in cui è già successo qualcosa di indesiderato, offriamo la possibilità di ripristinare le modifiche. Se le modifiche sono ancora in fase di pianificazione, consentiamo di testarne l'impatto in un'infrastruttura isolata, ricreata sulla base di un backup del data center.
Spesso i backup fungono da «testimoni silenziosi» durante le verifiche aziendali. Le aziende pubbliche devono rispettare le normative degli enti esterni (come il Sarbanes-Oxley Act) e non è una coincidenza. Nel 2008, la situazione dell'economia mondiale è stata compromessa perché alcuni operatori del mercato finanziario, in sostanza, falsificavano i risultati delle loro attività. Questo ha innescato una reazione a catena, portando a una crisi economica. Da quel momento, i regolatori monitorano più attentamente i processi delle aziende pubbliche. La possibilità di ripristinare lo stato dell'infrastruttura IT, del sistema di posta elettronica e del sistema di gestione documentale per i periodi di rendicontazione è una delle richieste degli auditor.
Microsoft, Amazon, Google e altri fornitori di cloud offrono soluzioni native che assicurano il backup delle risorse all'interno del cloud. Tuttavia, le loro soluzioni sono "cose a sé stanti". Il problema è che per le grandi aziende, nella maggior parte dei casi, l'infrastruttura IT è ibrida: una parte si trova nel cloud e l'altra in sede. Di solito, nel cloud risiedono progetti web e applicazioni orientate al cliente. Le applicazioni e i server che memorizzano informazioni riservate o dati personali si trovano più spesso in sede.
Inoltre, le organizzazioni utilizzano diversi cloud per costruire un ambiente ibrido, minimizzando i rischi. Quando una multinazionale implementa un cloud ibrido, ha bisogno di un sistema di resilienza unificato e condiviso per l'intera infrastruttura.

Quanto è difficile sviluppare prodotti del genere?
Nuove tecnologie emergono continuamente, richiedendo studio, adattamento ed esperienza. Quando abbiamo iniziato come startup, in pochi consideravano la virtualizzazione seriamente. C'erano applicazioni per il backup di data center fisici. I data center virtualizzati venivano visti come giocattoli.
Abbiamo iniziato a supportare il backup tenendo conto della virtualizzazione sin dall'inizio, quando la tecnologia era utilizzata solo da appassionati. Poi c'è stata una crescita esplosiva e il riconoscimento come standard. Oggi vediamo altre aree che aspettano un salto qualitativo simile e cerchiamo di restare aggiornati. La capacità di adattarsi è radicata nel DNA dell'azienda.
Oggi l'azienda ha già superato la fase startup. Ora per molti grandi clienti sono fondamentali stabilità e affidabilità, e la decisione riguardante la tolleranza ai guasti può estendersi per anni. Si sta svolgendo un processo di adattamento, verifica dei prodotti e conformità a numerosi requisiti. Si presenta una situazione divertente: da un lato è necessario garantire affidabilità e fiducia nei prodotti, dall'altro restare sempre moderni.
Tuttavia, il nuovo è sempre associato a un certo livello di ignoranza riguardo alle tecnologie, al mercato, o entrambi.
Ad esempio, dopo diversi anni di attività, ci siamo resi conto che era necessario sfruttare le funzionalità integrate dei sistemi di archiviazione per accelerare il backup. Così è nato un intero settore di integrazione con i produttori hardware. Oggi, i partner di Veeam in questo programma includono tutti i principali attori di questo mercato: HP, NetApp, Dell EMC, Fujitsu e altri.
Ci sembrava anche che la virtualizzazione avrebbe soppiantato i server classici. Ma la realtà ha dimostrato che rimangono l'ultimo 10% di server fisici che non possono essere virtualizzati o per i quali non ha senso farlo. Anche questi devono essere sottoposti a backup. Da qui è nato Veeam Agent for Windows/Linux.
A un certo punto pensavamo che Unix dovesse occupare il suo posto in un museo e abbiamo smesso di supportarlo. Ma non appena siamo entrati in contatto con clienti con una lunga storia, abbiamo capito che Unix è più vivo che mai. E abbiamo comunque sviluppato una soluzione per esso.
È successa la stessa cosa con i nastri di storage. Abbiamo pensato: "A chi servono nel mondo moderno?" All'epoca stavamo lavorando su funzionalità come il ripristino granulari dei dati o il backup incrementale con copia completa sintetica — e cose del genere non possono essere realizzate su nastro, serve necessariamente un disco. Poi abbiamo scoperto che i nastri di storage funzionano come uno strumento per garantire backup immutabili, necessari per l'archiviazione a lungo termine — in modo da poter tornare dopo 5 anni, prendere un nastro dallo scaffale e fare un audit. E poi c'è stata l'evoluzione dei clienti — iniziavamo con piccole aziende — e lì nessuno usava nastri. Poi siamo cresciuti fino ai clienti che ci hanno detto che senza i nastri non avrebbero acquistato il prodotto.

Quali tecnologie vengono utilizzate in Veeam
Per le attività legate alla logica aziendale, utilizziamo .NET. Da lì siamo partiti e continuiamo a ottimizzare. Attualmente, in alcune soluzioni, utilizziamo .NET Core. Quando la startup è stata fondata, c'erano alcuni sostenitori di questo stack nel team. È ottimo per scrivere logica aziendale, velocità di sviluppo e comodità degli strumenti. All'epoca non era la soluzione più popolare, ma ora è chiaro che quei sostenitori avevano ragione.
Allo stesso tempo, sviluppiamo per Unix, Linux e lavoriamo con l'hardware, il che richiede l'uso di altre soluzioni. Le parti di sistema relative alle informazioni sui dati di cui conserviamo un backup, algoritmi di ricerca dati e algoritmi legati al funzionamento dell'hardware - tutto questo è scritto in C++.

Come sono distribuiti i dipendenti nel mondo
Attualmente in azienda lavorano circa quattromila persone. Circa mille di esse sono in Russia. Ci sono due grandi gruppi in azienda. Il primo si occupa dello sviluppo e del supporto tecnico dei prodotti. Il secondo rende i prodotti visibili al mondo esterno: le sue competenze riguardano vendite e marketing. Il rapporto tra i gruppi è di circa trenta a settanta.
Abbiamo circa trenta uffici in tutto il mondo. Le vendite sono distribuite ampiamente, ma anche lo sviluppo non è da meno. Alcuni prodotti sono in fase di sviluppo contemporaneamente in più uffici — parte a San Pietroburgo, parte a Praga. Alcuni vengono sviluppati solo in un ufficio, come il prodotto che fornisce un backup fisico di Linux, sviluppato a Praga. C'è un prodotto su cui si lavora solo in Canada.
Adottiamo uno sviluppo distribuito per rispondere alle esigenze dei clienti. I grandi committenti si sentono più sicuri quando lo sviluppo avviene nella stessa regione in cui il prodotto è operativo.
Abbiamo già un grande ufficio in Repubblica Ceca e per il prossimo anno prevediamo di aprirne un altro a Praga, con 500 sviluppatori e tester. Coloro che si sono trasferiti nella capitale ceca nella "prima ondata" condividono volentieri esperienze e consigli su Habr con chiunque sia interessato alla possibilità di lavorare in Europa. In Russia, l'ufficio si trova a San Pietroburgo, parte dei progetti interni è gestita a Izhevsk, mentre il supporto è parzialmente basato a Mosca. In totale, il supporto è gestito da diverse centinaia di persone in tutto il mondo. Ci sono specialisti di diversi livelli di preparazione tecnica e specializzazione. Il livello più alto è rappresentato da coloro in grado di comprendere il prodotto a livello di codice sorgente, che lavorano nello stesso ufficio dello sviluppo.

Come sono strutturati i processi
Circa una volta all'anno rilasciamo grandi aggiornamenti con nuove funzionalità, mentre ogni due o tre mesi vengono rilasciati aggiornamenti con correzioni di difetti e miglioramenti che rispondono a esigenze urgenti di mercato o cambiamenti nelle piattaforme. Le richieste vengono assegnate a priorità, dalle minori alle critiche, senza le quali il rilascio non è possibile. Le ultime sono chiamate 'epiche'.
Esiste un triangolo classico: qualità, quantità di risorse e scadenze (in termini semplici, "veloce, di qualità, economico, scegli due"). Non possiamo fare male, la qualità deve sempre essere alta. Anche se cerchiamo costantemente di espanderci, le risorse sono limitate. Abbiamo molta più flessibilità nella gestione del tempo, ma anche questo spesso è fisso. Pertanto, l'unica cosa che possiamo variare è la quantità di funzionalità nel rilascio.
Di solito, cerchiamo di mantenere gli epic entro il 30-40% dei tempi previsti del ciclo di rilascio. Il resto può essere tagliato, spostato, rifinito o modificato. Questo è il nostro margine di manovra.
Per ogni richiesta nel rilascio viene creata una squadra temporanea. Può essere composta da tre persone o cinquanta, a seconda della complessità. Seguiamo una metodologia di sviluppo agile, organizzando settimanalmente riunioni per rivedere e discutere il lavoro completato e quello futuro per ciascuna funzionalità.
Metà del tempo del ciclo di rilascio è dedicato allo sviluppo e metà al perfezionamento del prodotto. Tuttavia, abbiamo una massima: "il debito tecnico di un progetto in bancarotta è zero". Quindi è più importante creare un prodotto funzionante e richiesto piuttosto che lucidare all'infinito il codice. Se un prodotto ha successo, allora vale la pena svilupparlo ulteriormente e adattarlo ai cambiamenti futuri.

Come Veeam assume persone per lo sviluppo
L'algoritmo di selezione è multilivello. Il primo livello consiste in un colloquio tra il candidato e il recruiter riguardo ai desideri dell'individuo. In questa fase cerchiamo di capire se possiamo essere interessanti per il candidato. È importante per noi essere un'azienda attraente, perché introdurre una persona nel progetto è un investimento costoso.
Se c'è interesse, al secondo livello proponiamo un compito di prova per valutare quanto sia rilevante l'esperienza del candidato e cosa possa dimostrare come specialista. Ad esempio, chiediamo di creare un compressore di file. Questo è un compito standard e mostra come una persona si relaziona al codice, quale cultura e stile segue e quali soluzioni utilizza.
In un compito di prova, di solito tutto è chiaro. Una persona che ha appena iniziato a scrivere una lettera è chiaramente diversa da qualcuno che scrive lettere regolarmente.
Successivamente, svolgiamo un colloquio. Di solito è condotto da tre team leader per garantire la massima obiettività. Inoltre, questo aiuta a selezionare persone tecnicamente compatibili che hanno metodi e approcci simili allo sviluppo, anche se alla fine lavoreranno in team diversi.
Nel corso di una settimana, conduciamo diversi colloqui per una posizione aperta e prendiamo decisioni su chi continuerà a lavorare con noi.
Spesso i ragazzi si presentano e dicono di cercare lavoro perché nella loro attuale posizione non vedono opportunità di crescita — possono aspettarsi un avanzamento solo quando il loro capo andrà in pensione. La nostra dinamica è un po' diversa. Dodici anni fa, Veeam era una startup con dieci dipendenti. Adesso è un'azienda con diverse migliaia di persone.
Le persone arrivano qui come in un fiume in piena. Nuove direzioni emergono costantemente, e ieri comuni sviluppatori diventano team leader. Le persone crescono tecnicamente e anche a livello amministrativo. Se stai sviluppando una piccola funzionalità, ma desideri ampliarla, hai già fatto metà del lavoro. Riceverai supporto a tutti i livelli, dal team leader fino ai proprietari dell'azienda. Se non hai competenze amministrative, ci sono corsi, trainer interni e colleghi esperti disponibili. Se ti manca esperienza nello sviluppo, c'è il progetto Veeam Academy. Siamo quindi aperti a tutti, sia ai professionisti che ai principianti.
Il progetto Veeam Academy è un'intensiva offline gratuito serale in C# per programmatori principianti, con prospettive di assunzione in Veeam Software per i migliori studenti. L'obiettivo del progetto è ridurre il divario tra il livello di conoscenze e competenze pratiche di un medio neolaureato e il livello di conoscenze richiesto per attrarre un buon datore di lavoro. Per tre mesi, gli studenti studiano i principi della programmazione orientata agli oggetti, si immergono nelle caratteristiche di C# e esplorano il funzionamento interno di .Net. Oltre a lezioni, test, laboratori e progetti personali, gli studenti sviluppano un progetto comune seguendo le norme delle aziende reali. Il tema del progetto non è noto in anticipo: viene scelto collettivamente nei primi giorni dopo l'inizio del corso. L'ultimo gruppo ha lavorato su una Banca Virtuale.
Attualmente è aperto il reclutamento per .
Fonte: habr.com
