
Alexander Baranov arbeitet bei Veeam als Direktor fĂŒr F&E und lebt zwischen zwei LĂ€ndern. Die HĂ€lfte der Zeit verbringt er in Prag, die andere HĂ€lfte in St. Petersburg. In diesen StĂ€dten befinden sich die gröĂten EntwicklungsbĂŒros von Veeam.
Im Jahr 2006 war dies ein Startup von zwei Unternehmern aus Russland, das sich mit Software fĂŒr die Sicherung virtueller Maschinen beschĂ€ftigte (daher kommt auch der Name â V[ee][a]M, virtuelle Maschine). Heute ist es ein riesiges Unternehmen mit mehr als viertausend Mitarbeitern weltweit.
Alexander hat uns erzÀhlt, wie es ist, in einem solchen Unternehmen zu arbeiten und wie schwer es ist, dort hineinzukommen. Im Folgenden finden Sie seinen Monolog.
Traditionell berichten wir ĂŒber die Bewertung des Unternehmens auf âMein Kreisâ: Veeam Software erhielt von seinen Mitarbeitern . Die Mitarbeiter schĂ€tzen es fĂŒr ein gutes Sozialpaket, eine angenehme ArbeitsatmosphĂ€re im Team, interessante Aufgaben und dafĂŒr, dass das Unternehmen die Welt besser macht.

Welche Produkte entwickelt Veeam
Produkte, die die Ausfallsicherheit der IT-Infrastruktur gewĂ€hrleisten. GlĂŒcklicherweise ist die Hardware im Laufe der Zeit ausreichend zuverlĂ€ssig geworden, und Clouds garantieren die Ausfallsicherheit. Aber menschliche Fehler sind nach wie vor ein Problem.
Zum Beispiel das klassische Problem der InkompatibilitĂ€t von Updates mit der Infrastruktur der Organisation. Ein Administrator hat ein nicht getestetes Update ausgerollt, oder es geschah automatisch, und infolgedessen kam es zu Störungen in den Servern des Unternehmens. Ein weiteres Beispiel: Jemand hat Ănderungen an einem gemeinsamen Projekt oder Dokumentensatz vorgenommen, weil er dies fĂŒr sinnvoll hielt. SpĂ€ter trat ein Problem auf, und es war notwendig, den Zustand einer Woche zurĂŒckzusetzen. Manchmal sind solche Ănderungen sogar nicht mit bewussten Handlungen des Menschen verbunden: Relativ neu sind Krypto-Viren, die populĂ€r wurden. Ein Benutzer bringt einen USB-Stick mit fragwĂŒrdigem Inhalt auf den Arbeitscomputer oder besucht eine Katzen-Website, und als Ergebnis werden die Computer im Netzwerk infiziert.
In einer Situation, in der das UnglĂŒck bereits geschehen ist, ermöglichen wir es, Ănderungen rĂŒckgĂ€ngig zu machen. Wenn die Ănderungen jedoch nur geplant sind, erlauben wir eine ĂberprĂŒfung ihrer Auswirkungen in einer in einer Backup-Kopie des Rechenzentrums rekonstruierten isolierten Infrastruktur.
Oft fungieren Backups als âstumme Zeugenâ bei Audits in Organisationen. Ăffentliche Unternehmen mĂŒssen die Anforderungen externer Regulierungsbehörden (zum Beispiel den Sarbanes-Oxley Act) erfĂŒllen, und das hat seinen Grund. Im Jahr 2008 geriet der Zustand der Weltwirtschaft ins Wanken, weil einige Akteure auf dem Finanzmarkt, um es grob auszudrĂŒcken, ihre GeschĂ€ftsergebnisse gefĂ€lscht hatten. Dies löste einen Schneeballeffekt aus, und die Wirtschaft rutschte ab. Seitdem ĂŒberwachen die Regulierungsbehörden die AblĂ€ufe in öffentlichen Unternehmen viel intensiver. Die Möglichkeit, den Zustand der IT-Infrastruktur, des E-Mail-Systems und des Dokumentenmanagementsystems ĂŒber BerichtszeitrĂ€ume hinweg wiederherzustellen, ist eine der Anforderungen der Auditoren.
Microsoft, Amazon, Google und andere Cloud-Anbieter haben native Lösungen, die die Sicherung von Ressourcen innerhalb der Cloud gewĂ€hrleisten. Ihr Angebot ist jedoch âSachen fĂŒr sichâ. Das Problem ist, dass groĂe Unternehmen in den meisten FĂ€llen eine hybride IT-Infrastruktur haben: Ein Teil befindet sich in der Cloud, der andere vor Ort. In der Regel leben Web-Projekte und kundenorientierte Anwendungen in der Cloud. Anwendungen und Server, die vertrauliche Informationen oder personenbezogene Daten speichern, befinden sich hĂ€ufig vor Ort.
DarĂŒber hinaus nutzen Unternehmen mehrere verschiedene Clouds, um eine hybride Lösung zu schaffen und die Risiken zu minimieren. Wenn ein multinationales Unternehmen eine hybride Cloud aufgebaut hat, benötigt es ein einheitliches und gemeinsames System fĂŒr die gesamte Infrastruktur zur GewĂ€hrleistung der Ausfallsicherheit.

Wie schwierig ist es, solche Produkte zu entwickeln?
Es tauchen stĂ€ndig neue Technologien auf, die es zu lernen, anzupassen und zu erleben gilt. Als wir gerade neu gegrĂŒndet waren und ein Start-up waren, betrachteten nur wenige die Virtualisierung ernsthaft. Es gab Anwendungen zur Sicherung physischer Rechenzentren. Virtualisierte Rechenzentren wurden als Spielzeuge angesehen.
Wir haben von Anfang an Backups unter BerĂŒcksichtigung der Virtualisierung unterstĂŒtzt, als die Technologie nur von Enthusiasten genutzt wurde. SpĂ€ter kam es dann zu einem explosionsartigen Wachstum und zur Anerkennung als Standard. Jetzt sehen wir andere Bereiche, die einen Ă€hnlich qualitativ hochwertigen Sprung erwarten, und versuchen, am Puls der Zeit zu bleiben. Die FĂ€higkeit, den Kurs zu halten, ist irgendwo in der DNA des Unternehmens verankert.
Das Unternehmen hat die Zeiten des Starts hinter sich. Jetzt ist vielen groĂen Kunden StabilitĂ€t und ZuverlĂ€ssigkeit wichtig, und die Entscheidung ĂŒber die Fehlertoleranz kann sich ĂŒber mehrere Jahre hinziehen. Es erfolgt eine Anpassung, die ĂberprĂŒfung von Produkten und die Einhaltung zahlreicher Anforderungen. Es ist eine amĂŒsante Situation: Einerseits muss man ZuverlĂ€ssigkeit und Vertrauen in die Produkte gewĂ€hrleisten, andererseits modern bleiben.
Aber Neues ist immer mit einem gewissen Grad an Unkenntnis ĂŒber Technologien, den Markt oder beides verbunden.
Zum Beispiel haben wir nach einigen Jahren festgestellt, dass wir die integrierten Möglichkeiten von Speichersystemen nutzen mĂŒssen, um die Datensicherung zu beschleunigen. So entstand ein ganzes GeschĂ€ftsfeld zur Integration mit Hardwareherstellern. Heute sind alle groĂen Akteure in diesem Markt â HP, NetApp, Dell EMC, Fujitsu und andere â Partner von Veeam in diesem Programm.
Es schien uns auch, dass Virtualisierung die klassischen Server verdrĂ€ngen wĂŒrde. Aber das Leben hat gezeigt, dass die letzten 10 % der physischen Server, die entweder nicht virtualisiert werden können oder dessen nicht sinnvoll ist, bestehen bleiben. Auch diese mĂŒssen gesichert werden. So entstanden Veeam Agent fĂŒr Windows/Linux.
Wir dachten einst, Unix könnte seinen Platz im Museum einnehmen, und haben entschieden, es nicht mehr zu unterstĂŒtzen. Doch sobald wir mit Kunden mit einer langen Geschichte in Kontakt traten, merkten wir, dass Unix noch lebendig ist. So haben wir dennoch eine Lösung dafĂŒr entwickelt.
Eine Ă€hnliche Geschichte gab es mit Bandlaufwerken. Wir fragten uns: 'Wem sind sie in der modernen Welt noch nĂŒtzlich?' Zu dieser Zeit arbeiteten wir an Funktionen wie granularer Datenwiederherstellung oder inkrementellen Backups mit synthetischen Vollkopien â so etwas kann man mit BĂ€ndern einfach nicht machen, es wird eine Festplatte benötigt. SpĂ€ter stellte sich heraus, dass Bandlaufwerke eines der Mittel zur GewĂ€hrleistung unverĂ€nderlicher Backups sind, die fĂŒr die langfristige Speicherung benötigt werden â um nach 5 Jahren zu kommen, ein Band vom Regal zu nehmen und ein Audit durchzufĂŒhren. Und die GröĂe der Kunden â wir begannen mit kleinen Unternehmen â dort werden keine BĂ€nder verwendet. Dann wuchsen wir zu Kunden, die uns sagten, dass sie das Produkt ohne BĂ€nder nicht kaufen wĂŒrden.

Welche Technologien werden in Veeam verwendet?
FĂŒr geschĂ€ftslogikbezogene Aufgaben verwenden wir .NET. Damit haben wir begonnen und optimieren weiterhin. Derzeit setzen wir in mehreren Lösungen .NET Core ein. Als das Start-up gegrĂŒndet wurde, gab es im Team einige BefĂŒrworter dieses Stacks. Er ist gut geeignet fĂŒr die Erstellung von GeschĂ€ftslogik, Entwicklungsgeschwindigkeit und Benutzerfreundlichkeit der Werkzeuge. Damals war dies nicht die beliebteste Lösung, doch jetzt wird deutlich, dass diese BefĂŒrworter recht hatten.
Gleichzeitig programmieren wir unter Unix, Linux und arbeiten mit Hardware, was den Einsatz anderer Lösungen erfordert. Systemkomponenten, die mit den Informationen ĂŒber Daten, die wir in Backups speichern, verbunden sind, Datenbanksuchalgorithmen und Algorithmen, die mit der Hardwarearbeit verbunden sind â all dies ist in C++ geschrieben.

Wie die Mitarbeiter auf der ganzen Welt verteilt sind
Derzeit sind etwa viertausend Mitarbeiter im Unternehmen beschĂ€ftigt. Rund eintausend davon befinden sich in Russland. Im Unternehmen gibt es zwei groĂe Gruppen. Die erste ist fĂŒr die Entwicklung und technische UnterstĂŒtzung der Produkte zustĂ€ndig. Die zweite macht die Produkte fĂŒr die AuĂenwelt sichtbar: In ihrem ZustĂ€ndigkeitsbereich liegen Vertrieb und Marketing. Das VerhĂ€ltnis zwischen den Gruppen liegt bei ungefĂ€hr dreiĂig zu siebzig.
Wir haben etwa dreiĂig BĂŒros auf der ganzen Welt. Die VertriebsaktivitĂ€ten sind umfangreicher verteilt, aber auch die Entwicklung bleibt nicht zurĂŒck. An einigen Produkten wird gleichzeitig in mehreren BĂŒros gearbeitet â ein Teil in St. Petersburg, ein Teil in Prag. Einige werden nur an einem Standort entwickelt, beispielsweise wird das Produkt, das das physische Backup von Linux ermöglicht, in Prag entwickelt. Es gibt ein Produkt, an dem ausschlieĂlich in Kanada gearbeitet wird.
Wir fĂŒhren eine dezentrale Entwicklung durch, um den Anforderungen der Kunden gerecht zu werden. GroĂe Auftraggeber fĂŒhlen sich sicherer, wenn die Entwicklung in derselben Region erfolgt, in der das Produkt betrieben wird.
Wir haben bereits ein sehr groĂes BĂŒro in Tschechien, und fĂŒr das nĂ€chste Jahr planen wir, in Prag ein weiteres zu eröffnen â fĂŒr 500 Entwickler und Tester. Diejenigen, die in der "ersten Welle" in die Hauptstadt Tschechiens gezogen sind, teilen auf Habr gerne ihre Erfahrungen und Tipps mit allen, die sich fĂŒr die Möglichkeit interessieren, in Europa zu arbeiten. In Russland befindet sich das BĂŒro in Sankt Petersburg, einige interne Projekte werden in Ischewsk geleitet, und der Support sitzt teilweise in Moskau. Insgesamt kĂŒmmern sich mehrere Hundert Menschen auf der ganzen Welt um den technischen Support. Dort gibt es Spezialisten mit unterschiedlichen technischen Qualifikationen und Spezialisierungen. Der höchste Level sind die Menschen, die in der Lage sind, das Produkt auf der Ebene des Source Codes zu verstehen, und sie arbeiten im selben BĂŒro wie die Entwickler.

Wie die Prozesse aufgebaut sind
UngefĂ€hr einmal im Jahr veröffentlichen wir groĂe Releases mit neuen Funktionen, und alle zwei bis drei Monate gibt es Updates zur Behebung von Fehlern und Anpassungen, die auf die dringenden Anforderungen des Marktes oder Ănderungen der Plattformen reagieren. Den Anforderungen werden PrioritĂ€ten zugewiesen â von geringfĂŒgigen bis zu kritischen, ohne die ein Release unmöglich wĂ€re. Letztere werden "Epics" genannt.
Es gibt das klassische Dreieck â QualitĂ€t, Menge der Ressourcen, Zeitrahmen (im Volksmund: "schnell, qualitativ hochwertig, gĂŒnstig, wĂ€hlen Sie zwei"). Schlecht zu arbeiten, können wir nicht, die QualitĂ€t muss immer hoch sein. Die Ressourcen sind ebenfalls begrenzt, obwohl wir stĂ€ndig versuchen, uns zu erweitern. Bei der Zeit ist es viel flexibler, aber sie ist oft ebenfalls fix. Daher ist das Einzige, was wir variieren können, die Menge an FunktionalitĂ€t im Release.
Normalerweise versuchen wir, die Epics nicht mehr als 30-40% der prognostizierten Fristen des Release-Zyklus zu halten. Das verbleibende können wir kĂŒrzen, verschieben, ĂŒberarbeiten oder anpassen. Das ist unser Spielraum.
FĂŒr jede Anforderung im Release wird ein temporĂ€res Team gebildet. Es kann drei oder fĂŒnfzig Personen umfassen, je nach KomplexitĂ€t. Wir halten uns an eine flexible Entwicklungsmethodik, jeden Freitag finden Workshops und Diskussionen ĂŒber die durchgefĂŒhrten und bevorstehenden Arbeiten fĂŒr jede FunktionalitĂ€t statt.
Die HĂ€lfte der Zeit des Releasezyklus wird fĂŒr die Entwicklung aufgewendet, die andere HĂ€lfte fĂŒr die Fertigstellung des Produkts. Aber wir haben das Sprichwort geprĂ€gt: âDie technische Schuld eines bankrotten Projekts betrĂ€gt nullâ. Deshalb ist es wichtiger, ein Produkt zu schaffen, das funktioniert und gefragt ist, als den Code endlos zu verfeinern. Wenn das Produkt populĂ€r ist, sollte es weiterentwickelt und an zukĂŒnftige Ănderungen angepasst werden.

Wie Veeam Leute fĂŒr die Entwicklung einstellt
Der Auswahlprozess ist mehrstufig. Die erste Stufe ist ein GesprĂ€ch zwischen dem Kandidaten und dem Recruiter ĂŒber die WĂŒnsche der Person. In dieser Phase versuchen wir zu verstehen, ob wir zu dem Kandidaten passen. Es ist uns wichtig, dass wir als Unternehmen interessant sind, denn einen Menschen in ein Projekt einzufĂŒhren, ist eine kostspielige Angelegenheit.
Wenn Interesse besteht, bieten wir in der zweiten Stufe eine Testaufgabe an, um zu verstehen, wie relevant die Erfahrungen des Kandidaten sind und was er als Fachkraft demonstrieren kann. Zum Beispiel bitten wir darum, einen Datei-Kompressor zu erstellen. Dies ist eine Standardaufgabe, die zeigt, wie der Mensch mit Code umgeht, welche Kultur und welchen Stil er verfolgt und welche Lösungen er verwendet.
Bei der Testaufgabe ist normalerweise alles deutlich erkennbar. Eine Person, die gerade mit dem Schreiben vertraut gemacht wurde und zum ersten Mal einen Brief verfasst hat, unterscheidet sich deutlich von jemandem, der stÀndig Briefe schreibt.
AnschlieĂend fĂŒhren wir ein Interview. Dieses wird normalerweise von drei Teamleitern gleichzeitig durchgefĂŒhrt, um die ObjektivitĂ€t zu maximieren. Zudem hilft es, technisch kompatible Personen zu gewinnen, die Ă€hnliche Methoden und AnsĂ€tze in der Entwicklung haben, selbst wenn sie letztlich in verschiedenen Teams arbeiten werden.
In einer Woche fĂŒhren wir mehrere Interviews fĂŒr die offene Stelle und entscheiden, mit wem wir weiterarbeiten werden.
Oft kommen Leute zu uns und sagen, dass sie einen Job suchen, weil sie an ihrem aktuellen Arbeitsplatz keine Aufstiegsmöglichkeiten haben â eine Beförderung kann man oft nur mit dem RĂŒcktritt des Chefs erwarten. Bei uns ist die Dynamik etwas anders. Vor zwölf Jahren war Veeam ein Start-up mit zehn Mitarbeitern. Jetzt ist es ein Unternehmen mit mehreren tausend Mitarbeitern.
Menschen kommen hierher wie in einen reiĂenden Fluss. StĂ€ndig entstehen neue Richtungen, Teamleiter werden zu frĂŒheren einfachen Entwicklern. Die Menschen wachsen technisch und administrativ. Wenn du eine kleine Funktion entwickelst, sie aber ausbauen möchtest, ist die halbe Arbeit bereits getan. UnterstĂŒtzung wird auf allen Ebenen geboten, angefangen bei den Teamleitern bis hin zu den EigentĂŒmern des Unternehmens. WeiĂt du nicht, wie man etwas administrativ macht â es gibt Kurse, interne Trainer und erfahrene Kollegen. Fehlt dir die Erfahrung in der Entwicklung â es gibt das Projekt Veeam Academy. Wir sind also offen fĂŒr alle, sowohl fĂŒr Profis als auch fĂŒr AnfĂ€nger.
Das Projekt Veeam Academy ist ein abendliches, kostenloses Offline-Intensivprogramm fĂŒr C# fĂŒr AnfĂ€nger mit Aussicht auf eine Anstellung bei Veeam Software fĂŒr die besten SchĂŒler. Ziel des Projekts ist es, die LĂŒcke zwischen dem Wissensstand und praktischen FĂ€higkeiten eines durchschnittlichen Hochschulabsolventen und dem Wissensstand zu schlieĂen, den ein guter Arbeitgeber verlangt. Drei Monate lang lernen die Teilnehmer die Prinzipien der OOP in der Praxis, tauchen in die Besonderheiten von C# ein und erkunden den Unterbau von .Net. Neben Vorlesungen, Tests, Laborarbeit und persönlichen Projekten entwickeln die Teilnehmer ihr gemeinsames Projekt nach den Regeln echter Unternehmen. Das Thema des Projekts ist im Voraus nicht bekannt â es wird zusammen mit allen in den ersten Tagen nach Kursbeginn gewĂ€hlt. Bei der letzten Gruppe lautete das Thema Virtuelle Bank.
Derzeit lĂ€uft die Einschreibung fĂŒr .
Quelle: habr.com
