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

Quali prodotti sviluppa Veeam
Prodotti che garantiscono la resilienza dell'infrastruttura IT. Fortunatamente, col passare del tempo l'hardware è diventato sufficientemente affidabile e il cloud offre resilienza. Ma gli errori umani persistono.
Per esempio, il classico problema della compatibilità degli aggiornamenti con l'infrastruttura dell'organizzazione. L'amministratore ha installato un aggiornamento non verificato, oppure è avvenuto automaticamente, e a causa di ciò è stata compromessa l'operatività dei server aziendali. Un altro esempio: qualcuno ha apportato modifiche a un progetto comune o a un insieme di documenti, ritenendo che fosse opportuno. In seguito è emersa una problematica e è stato necessario ripristinare lo stato di una settimana fa. A volte tali modifiche non sono nemmeno collegate a azioni consapevoli da parte dell'utente: recentementi hanno guadagnato popolarità i ransomware. Un utente porta sul computer di lavoro una chiavetta USB con contenuti sospetti o visita un sito di gatti, e di conseguenza i computer della rete si infettano.
In una situazione in cui il male è già accaduto, offriamo la possibilità di ripristinare le modifiche. Se invece le modifiche sono solo pianificate, permettiamo di verificare il loro impatto in un'infrastruttura isolata, ricreata da un backup del data center.
Spesso le copie di backup fungono da "testimoni silenziosi" durante le audit nelle organizzazioni. Le aziende pubbliche devono conformarsi ai requisiti degli enti regolatori esterni (ad esempio, il Sarbanes-Oxley Act), e non è senza motivo. Nel 2008, lo stato dell'economia mondiale è stato messo in crisi a causa di alcuni partecipanti al mercato finanziario che, per dirla in modo semplice, falsificavano i risultati delle loro attività. Questo ha innescato una spirale e l'economia è crollata. Da quel momento, i regolatori monitorano più attentamente i processi nelle aziende pubbliche. La possibilità di ripristinare lo stato dell'infrastruttura IT, del sistema di posta e del sistema di gestione documentale nei periodi di rendicontazione è uno dei requisiti degli auditor.
Microsoft, Amazon, Google e altri fornitori di cloud hanno soluzioni native che garantiscono il backup delle risorse all'interno del cloud. Tuttavia, le loro soluzioni sono «cose in sé». Il problema è che gran parte delle grandi aziende ha un'infrastruttura IT ibrida: una parte si trova nel cloud, l'altra a terra. Di solito, nel cloud risiedono progetti web e applicazioni orientate al cliente. Le applicazioni e i server che conservano informazioni riservate o dati personali si trovano maggiormente a terra.
In aggiunta a ciò, le organizzazioni utilizzano diversi cloud per costruire uno ibrido, al fine di minimizzare i rischi. Quando un'azienda multinazionale costruisce un cloud ibrido, ha bisogno di un sistema di resilienza unificato e comune per tutta l'infrastruttura.

Quanto è difficile sviluppare prodotti del genere
Nuove tecnologie emergono costantemente, richiedendo studio, adattamento ed esperienza. Quando siamo emersi come startup, poche persone prendevano sul serio la virtualizzazione. Esistevano applicazioni per il backup dei data center fisici. I data center virtualizzati venivano considerati come giocattoli.
Abbiamo iniziato a supportare il backup con la virtualizzazione fin dall'inizio, quando la tecnologia era utilizzata solo da appassionati. Poi è avvenuta la sua esplosione e il riconoscimento come standard. Ora vediamo altre aree che stanno per subire un simile balzo qualitativo e cerchiamo di essere in sintonia con queste. La capacità di tenere il naso fuori dal vento è incorporata nel DNA dell'azienda.
Ora l'azienda ha già superato i tempi da startup. Oggi a molti clienti di grande dimensione interessa la stabilità e l'affidabilità, e la decisione sulla resilienza può richiedere anni. Ci sono adattamenti in corso, test dei prodotti e conformità a numerosi requisiti. Si presenta una situazione divertente: da un lato è necessario garantire l'affidabilità e la certezza nei prodotti, dall'altro rimanere al passo con i tempi.
Tuttavia, il nuovo è sempre legato a un certo livello di ignoranza riguardo alle tecnologie, al mercato, o a entrambi.
Ad esempio, dopo alcuni anni di attività, ci siamo resi conto che dovevamo utilizzare le capacità integrate dei sistemi di archiviazione dati per accelerare il backup. Da qui è nata una vera e propria area di integrazione con i produttori hardware. Oggi, i partner di Veeam per questo programma sono tutti i principali attori di questo mercato: HP, NetApp, Dell EMC, Fujitsu e altri.
Pensavamo anche che la virtualizzazione avrebbe spazzato via i server tradizionali. Ma la realtà ha dimostrato che rimangono gli ultimi 10% di server fisici, la cui virtualizzazione è o impossibile o priva di senso. Anche questi devono essere sottoposti a backup. Così sono nati Veeam Agent per Windows/Linux.
Un tempo pensavamo che Unix fosse destinato a occupare un posto nel museo e abbiamo smesso di supportarlo. Ma non appena ci siamo interfacciati con clienti con una lunga storia, abbiamo capito che Unix è più vivo che mai. Eppure abbiamo sviluppato una soluzione per esso.
Stessa storia con i nastri magnetici. Abbiamo pensato: «A chi servono nel mondo moderno?» All'epoca lavoravamo su funzionalità come il ripristino granulare dei dati o il backup incrementale con copia completa sintetica — che non è possibile realizzare su nastro, servono effettivamente i dischi. Poi abbiamo scoperto che i nastri funzionano come uno dei mezzi per garantire backup invariabili, necessari per lo stoccaggio a lungo termine — per poter tornare dopo 5 anni, prendere un nastro dallo scaffale e fare un audit. E la dimensione dei clienti — abbiamo iniziato con piccole realtà — e lì nessuno usa nastri. Poi siamo arrivati a clienti che ci hanno detto che senza nastri non avrebbero acquistato il prodotto.

Quali tecnologie vengono utilizzate in Veeam
Per le attività legate alla logica di business, utilizziamo .NET. Da lì siamo partiti e continuiamo a ottimizzare. Attualmente, in diverse soluzioni, utilizziamo .NET Core. Quando è nato il nostro startup, c'erano diversi sostenitori di questo stack nel team. È un'ottima scelta per la scrittura della logica di business, per la velocità di sviluppo e per la facilità degli strumenti. All'epoca non era la soluzione più popolare, ma ora è evidente che quei sostenitori avevano ragione.
Inoltre, lavoriamo su Unix e Linux, e gestiamo hardware, il che richiede l'uso di altre soluzioni. Le parti di sistema, collegate alle informazioni sui dati che conserviamo nel backup, gli algoritmi di ricerca dei dati, gli 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. In azienda ci sono due grandi gruppi. Il primo si occupa dello sviluppo e del supporto tecnico dei prodotti. Il secondo rende i prodotti visibili al mondo esterno: la sua competenza riguarda 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 più ampiamente, ma anche lo sviluppo non è da meno. Su alcuni prodotti il lavoro viene svolto contemporaneamente in diversi uffici: parte a San Pietroburgo, parte a Praga. Alcuni sono sviluppati solo in uno, ad esempio, il prodotto che offre un backup fisico per Linux è sviluppato a Praga. C'è un prodotto su cui si lavora solo in Canada.
Facciamo sviluppo distribuito per soddisfare le esigenze dei clienti. I grandi committenti si sentono più sicuri quando lo sviluppo si trova nella stessa regione in cui opera il prodotto.
Abbiamo già un grande ufficio in Repubblica Ceca e l'anno prossimo prevediamo di aprirne un altro a Praga per 500 sviluppatori e tester. Coloro che si sono trasferiti nella capitale ceca nella "prima ondata" condividono con piacere le loro esperienze e suggerimenti su Habr con chiunque sia interessato a 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 effetti, il supporto tecnico è gestito da diverse centinaia di persone in tutto il mondo. Ci sono specialisti di diversi livelli di competenza tecnica e specializzazione. Il livello più alto è rappresentato da persone in grado di comprendere il prodotto a livello di codice sorgente, e lavorano nello stesso ufficio dello sviluppo.

Come sono organizzati i processi
Circa una volta all'anno pubblichiamo grandi versioni con nuove funzionalità, e ogni due o tre mesi facciamo aggiornamenti con correzioni di bug e miglioramenti, che rispondono alle esigenze urgenti del mercato o ai cambiamenti delle piattaforme. Le esigenze vengono classificate per priorità — da minori a critiche, senza le quali il rilascio non è possibile. Le ultime sono chiamate “epiche”.
C'è un triangolo classico — qualità, quantità delle risorse, scadenze (in parole semplici, 'veloce, di qualità, economico, scegli due'). Non possiamo farlo male, la qualità deve sempre essere alta. Anche le risorse sono limitate, anche se cerchiamo sempre di espanderci. C'è molta più flessibilità nella gestione del tempo, anche se spesso è fisso. Quindi, l'unica cosa che possiamo variare è la quantità di funzionalità nel rilascio.
Di solito cerchiamo di mantenere le epiche non oltre il 30-40% dei tempi previsti del ciclo di rilascio. Il resto possiamo tagliare, rinviare, migliorare o modificare. Questo è il nostro margine di manovra.
Per ogni requisito nel rilascio viene creata una squadra temporanea. Può essere composta da tre persone, o cinquanta, a seconda della complessità. Adottiamo una metodologia di sviluppo agile, e una volta alla settimana conduciamo approfondimenti e discussioni sul lavoro svolto e su quello futuro per ciascuna funzionalità.
Metà del tempo del ciclo di rilascio è dedicato allo sviluppo, l'altra metà al perfezionamento del prodotto. Ma abbiamo un detto consolidato: "il debito tecnico di un progetto fallito è zero". Pertanto, è più importante creare un prodotto che funzioni e sia richiesto, piuttosto che dedicarsi a rifinire il codice all'infinito. Se un prodotto riscuote successo, allora vale la pena svilupparlo ulteriormente e adattarlo a futuri cambiamenti.

Come Veeam assume persone per lo sviluppo
L'algoritmo di selezione è a più livelli. Il primo livello consiste in un colloquio tra il candidato e il reclutatore riguardo alle aspettative del candidato. A questo punto cerchiamo di capire se siamo adatti al candidato. È importante per noi essere un'azienda interessante, poiché introdurre una persona in un progetto è un investimento significativo.
Se c'è interesse, al secondo livello proponiamo un compito di prova per capire quanto è pertinente l'esperienza del candidato e cosa può dimostrare come specialista. Ad esempio, chiediamo di realizzare un compressore di file. Questo compito standard mostra come una persona si approccia al codice, quale cultura e stile adotta e quali soluzioni utilizza.
Attraverso il compito di prova è generalmente tutto visibile. Una persona che ha appena imparato a scrivere e ha scritto la sua prima lettera si distingue chiaramente da qualcuno che scrive lettere costantemente.
Successivamente, svolgiamo un colloquio. Di solito viene condotto da tre team leader, in modo da garantire il massimo grado di obiettività. Inoltre, questo aiuta a selezionare persone tecnicamente compatibili che hanno metodi e approcci simili nello sviluppo, anche se alla fine lavoreranno in team diversi.
Nel corso di una settimana conduciamo diversi colloqui per la posizione aperta e prendiamo una decisione su chi continuerà a lavorare con noi.
Spesso i candidati ci contattano dicendo che cercano lavoro perché nel loro attuale non hanno possibilità di crescita: le promozioni possono arrivare solo con il pensionamento del capo. Noi abbiamo una dinamica un po' diversa. Dodici anni fa, Veeam era una startup con dieci dipendenti. Ora è un'azienda con diverse migliaia di persone.
Le persone arrivano qui come in un fiume impetuoso. Nuove direzioni emergono costantemente, i team leader sono diventati sviluppatori ordinari di ieri. Le persone crescono tecnicamente e amministrativamente. Se stai sviluppando una piccola funzionalità, ma vuoi espanderla, metà del lavoro è già fatto. Riceverai supporto a tutti i livelli, a partire dal team leader fino ai proprietari dell'azienda. Non sai come gestire qualcosa a livello amministrativo? Ci sono corsi, formatori interni e colleghi esperti. Ti manca esperienza nello sviluppo? C'è il progetto Veeam Academy. Quindi siamo aperti a tutti, a professionisti e principianti.
Il progetto Veeam Academy è un'intensiva serale gratuita offline in C# per programmatori principianti, con prospettive di assunzione in Veeam Software per i migliori alunni. L'obiettivo del progetto è colmare il divario tra la quantità di conoscenze e competenze pratiche di un laureato medio e le conoscenze necessarie per attrarre un buon datore di lavoro. Per tre mesi, i ragazzi studiano i principi della OOP nella pratica, si immergono nelle peculiarità di C# e apprendono lo spazio sottostante di .Net. Oltre a lezioni, test, laboratori e progetti personali, i ragazzi sviluppano un progetto comune secondo tutte le regole delle vere aziende. L'argomento del progetto non è noto in anticipo: viene scelto insieme a tutti nei primi giorni dopo l'inizio del corso. Nell'ultimo ciclo, il tema è stato una banca virtuale.
Attualmente è aperta la selezione per .
Fonte: habr.com
