Antipatterns in DevOps Interviews

Ich heiße euch alle willkommen, meine lieben Leser!

Heute möchte ich meine Gedanken zu einem seit langem brennenden Thema teilen und möglicherweise darĂŒber in den Kommentaren diskutieren.
Immer wieder stoße ich auf Artikel ĂŒber schlechte Praktiken bei der Programmierer-InterviewfĂŒhrung, die meiner Meinung nach ziemlich relevant sind und, hoffentlich, von den HR-Abteilungen großer und kleiner Unternehmen gelesen werden.

In unserer Gegend, soweit ich beurteilen kann, gibt es eine Nachfrage nach solchen interessanten EntitÀten wie DevOps-Ingenieuren. Ich gehöre zu denjenigen, die mit dieser Wortkombination nicht viel anfangen können (ja, ja, die DevOps-Methodologie usw.), deshalb sehe ich einige Unterschiede im Entwicklungspfad dieser Gruppe von Spezialisten.
ZunĂ€chst einmal glaube ich fest daran, dass jeder Mensch seinen eigenen Interessenkreis hat, auch im Arbeitsbereich. Das bedeutet, dass einige Menschen in der Cloud arbeiten wollen, andere sich mit dem tiefen eintauchen in Application Server beschĂ€ftigen, tief in Java eingreifen oder, Gott bewahre, YAML-Code schreiben möchten. Es entstehen also so genannte Infrastructure Engineers, Build Engineers, Senior YAML Developer 🙂
Das alles ermöglicht es, auf der einen Seite jemanden zu finden, der am besten zu eurem Aufgabenpool passt, und auf der anderen Seite fĂŒhrt es zu MissverstĂ€ndnissen in Interviews.
Aufgrund meiner persönlichen Erfahrung habe ich eine gewisse Anzahl von Dutzenden von Interviews durchgefĂŒhrt und auch an verschiedenen als Antwortgeber teilgenommen, und möchte mein Fazit zu dem, was passiert ist, mitteilen.

Das erste und wahrscheinlich mein Lieblingsantipattern ist das Verlangen, dass jemand alles macht, oder nicht klar zu wissen, wen man braucht, und sich eine Menge Kandidaten anzusehen, um herauszufinden, was man braucht. Das lĂ€sst sich wahrscheinlich auf jeden Bereich ĂŒbertragen, hat aber hier seine eigenen Besonderheiten.
Wie ich bemerkt habe, sind die Leute eher an Stellenanzeigen mit dem Wort DevOps interessiert als an Systemadministratoren, obwohl ich der Meinung bin, dass sich die Aufgabenebene im Wesentlichen in diesen beiden Bereichen auf Senior-Ebene stark unterscheidet.
Jeder Arbeitgeber, der tatsĂ€chlich einen Systemadministrator braucht, schreibt im Titel der Stellenanzeige DevOps und listet im Anfrageinhalt alles auf, K8S/Java/Gradle/OracleDB usw. in der Reihenfolge, wĂ€hrend der Mensch intern mit der UnterstĂŒtzung des K8S-Clusters und der Wartung des OracleDB-Stacks abseits des Teams beschĂ€ftigt sein wird.
Nun, wie sieht die Interaktion zwischen Entwicklern und Betriebsteams hier aus?
Es stellt sich heraus, dass es fĂŒr einen solchen Interaktionsprozess mit dem Team nicht vorgesehen ist und es ĂŒberhaupt keine Operations-Abteilung gibt, und Sie mĂŒssen auch die Computer der Entwickler konfigurieren.
Diese Option passt tatsÀchlich zu einem Teil der Bewerber, aber seien wir ehrlich, das ist ein Senior System Administrator, warum möchten sie das nicht so schreiben und was daran ist beschÀmend? Der Unterschied im Gehalt zwischen verschiedenen Berufsbezeichnungen? Aber das Budget des Unternehmens ist dasselbe, und egal wie man das Schiff nennt, es segelt mit demselben Budget.
Ich habe auch von so etwas gehört, heutzutage automatisiert ein Kandidat alles schnell und wird in die Produktentwicklung mit Python integriert, was spielt es fĂŒr eine Rolle, ĂŒberall ist Python dasselbe. Der Unterschied in Weltanschauungen und AnsĂ€tzen wird nicht berĂŒcksichtigt.

Ich differenziere normalerweise den Niveau der FachkrÀfte, die kommen, und sehe jeweils meine eigenen Probleme.
Junior — fĂŒr mich persönlich ist ein Junior DevOps jemand, der das Systemadministrations- / Entwicklungsniveau gut beherrscht. Hier fĂ€llt es mir leicht, starke Linux-Anwender zu differenzieren, die in einem neuen Bereich wachsen wollen, oder Entwickler, die das BedĂŒrfnis haben, fĂŒr andere Entwickler gut zu arbeiten. Starke, mit gewissen Debugging-FĂ€higkeiten, log-Suche, oder mit einer Sammlung von programmierten Projekten.
Ich habe sowohl Systemadministratoren getroffen, die etwas ausprobiert haben und in die Cloud eintauchen möchten, als auch solche, die Frontend und Backend ausprobiert haben und aus irgendwelchen GrĂŒnden Interesse an den DevOps-Prozessen gefunden haben.
Auf diesem Niveau macht es mich immer stutzig, wenn man mit einem riesigen Technologiestapel ĂŒberfordert wird, Puppet, Ansible – warum hast du nicht alles ausprobiert? K8S, K3S – was ist der Unterschied? Wie viele Arten von Datenbanken kennst du? Warum so wenige? Wie funktioniert die VerschlĂŒsselung in Java? Besonders bei denen, die aus der Entwicklung gekommen sind, obwohl das sehr nĂŒtzliche FachkrĂ€fte sind, gibt es fĂŒr sie immer Arbeit in diesem Bereich.
Es macht mich immer sprachlos, wenn so etwas passiert, das erste, was ich fragen möchte — warum??? Das zweite, was mir in den Sinn kommt — ist der Interviewer bereit, Fragen zu einem so vielfĂ€ltigen Technologiestapel zu beantworten? Wollen sie wirklich einen Junior einstellen und ihm alles aufbĂŒrden?
So etwas passiert oft in verschiedenen Bodyshops, wenn jemand fĂŒr ein Projekt verkauft werden muss und mehr coole Worte fĂŒr den Lebenslauf benötigt werden oder das Unternehmen einfach niemanden einstellen möchte und nur sieht, welche Juniors es gibt.

Middle Niveau
Hier gibt es meiner Meinung nach einige Extreme. Erstens ist es wahrscheinlich schwierig, genau zu bestimmen, ob jemand auf Midlevel-Level zieht; entweder wird er auf Junior-Niveau gedrĂŒckt, oder man lĂ€sst ihn als Senior arbeiten, versucht, einen Senior-Preis fĂŒr einen Midlevel zu bekommen (ja, der Markt entscheidet, nichts Persönliches).
Das Erstaunlichste, was ich gesehen habe, ist, tief in das Programmieren einzutauchen, mit Python zu arbeiten, Java GC zu quĂ€len, also sich mit spezifischeren Themen zu befassen, oder umgekehrt, alte WissenslĂŒcken zu schließen, Netzwerke und Betriebssystemtreiber zu erkunden, wĂ€hrend ich schmunzle und mich freue, wie jemand das vergessen konnte. Und hier passiert das Interessanteste!
Meiner Meinung nach entwickelt ein Spezialist auf Midlevel-Niveau einen Interessenbereich und eine persönliche Perspektive darauf, woran er arbeiten möchte – auf dem neuesten Stack zu glĂ€nzen, indem er Tricks in den Code einfĂŒgt, oder sich fĂŒr ein herausforderndes Unternehmen weiterzuentwickeln, indem er in die Tiefen der Code-Performance eintaucht.
Ich denke, es ist bereits an der Zeit, nach den Prozessen zu fragen, an denen die Person gearbeitet hat, zu erkundigen, was am interessantesten war und was nicht, und auf Grundlage dieser Kenntnisse einen Fragencluster zu erstellen, wobei die Fragen unbedingt auf den eigenen Stack abgebildet werden. Andernfalls könnte eine spannende einstĂŒndige Unterhaltung ĂŒber die Konfiguration eines OpenShift-Clusters dazu fĂŒhren, dass man jemanden einstellt und ihn dann mit dem Aufbau von Monitoring beauftragt. Wahrscheinlich wird dies beiden Seiten gefallen.

Senior-Niveau
Oh, mein Lieblingsthema.
Vor Ihnen steht ein solider Spezialist, der sich in verschiedenen Projekten entwickelt hat, jemand, der bereits weiß, was er will und was ihm nicht so gefĂ€llt.
Und nun beginnt die Show:
– tiefgehende Fragen zur Systemadministration (siehe erstes Anti-Muster)
– tiefgehende Fragen zu Linux im Allgemeinen aus dem Bereich Theorie, die weit entfernt von praktischen Kenntnissen sind (die OSI-Ebenen, die beste Frage)
– akademische Fragen zum Programmieren (weil der Interviewer selbst die Materie nicht gut kennt; er wurde einfach gebeten, einen seltsamen DevOps zu interviewen)
Ich möchte hier eine kleine Anmerkung machen. Einmal wurde ich wĂ€hrend eines Interviews gebeten, ein StĂŒck Code zu schreiben. Auf einem Blatt Papier. So wie es alle mögen, jeden Tag schreiben, Papier ist unser Alles.
Nachdem ich die Aufgabe gelöst hatte, wurde nach dem Blick auf mein Blatt und die Lösung das Urteil gefĂ€llt, dass der Algorithmus suboptimal sein wĂŒrde. Ich schlug vor, dass der Interviewer seinen eigenen Algorithmus schreiben solle, darauf erhielt ich die Antwort: "Das fĂ€llt nicht in den Rahmen des Interviews". Ich bat um eine Minute, Ă€nderte den Code ein wenig und zeigte ihn, fragte, ob es so schneller oder langsamer sei? Darauf kam die Antwort, dass wir zur nĂ€chsten Frage ĂŒbergehen wĂŒrden. Der Unterschied war in der Arbeitsweise des Codes mit und ohne Schleife, und ich hatte eine Antwort vorbereitet, warum es besser sei, so statt so zu machen. Nun, danach hatte ich keine Lust mehr, Fragen zu beantworten und mit dieser Person zu arbeiten.
Es ist zu beachten, dass wir alle unterschiedlich sind und jede Kleinigkeit, die fĂŒr Sie unbedeutend ist, einen Kandidaten abschrecken kann.
— normalerweise haben Spezialisten auf Senior-Ebene einen klaren Technologie-Stack, aber nein, man muss noch einmal umherirren, zum Beispiel, Sie haben Ansible geschrieben, ausgezeichnet, und wir haben Puppet, wir haben Sie einfach so eingeladen, also erzĂ€hlen Sie uns von Puppet. Hervorragend! Haben Sie mit OpenShift gearbeitet? Wir haben K8s, wir wissen nicht, wo die Unterschiede liegen, aber Ihre Erfahrung ist irrelevant. Wunderbar!

Es gibt noch so eine Unterklasse — ich persönlich nehme Praktikanten auf, um sie zu Junioren auszubilden.
Ich wĂŒnsche mir, dass alle verstehen, dass ein Praktikant eine noch nicht vollstĂ€ndig entwickelte EntitĂ€t ist. Es macht mich schrecklich nervös, wenn Praktikanten auf die Stufe eines soliden Juniors gedrĂ€ngt werden und dann mit zufriedenen Gesichtern ein Praktikum (manchmal unbezahlt, schrecklich!) vorgeschlagen wird.
Mach das nicht.
Ein Praktikant ist meiner Meinung nach entweder ein Student im fortgeschrittenen Semester oder jemand, der unbedingt "in die IT gehen" möchte.
Mit Studenten ist es einfach — hervorragend herauszufinden, was sie an der UniversitĂ€t machen, was sie selbst gemacht haben, zu beobachten, bei welchen Fragen ihre Augen aufleuchten — wenn sie aufleuchten, zu fragen, warum gerade DevOps und was sie darĂŒber wissen. Den Menschen spĂŒren und verstehen, ob es angenehm sein wird, mit ihm weiterzuarbeiten und ob man diesen Menschen etwas lehren möchte.
Bei denen, die "in die IT gehen" möchten, ist es etwas strenger — zu beobachten, wie sehr sich die Person selbststĂ€ndig weiterbildet, was sie gemacht hat, bevor sie zu Ihnen ins Interview kam; eine gute Möglichkeit wĂ€re es, GitHub zu betrachten, sofern vorhanden, die Dichte der Commits und welche Übungen gemacht wurden. Auch fragen, warum letztendlich DevOps, schließlich ist es im Frontend lustiger und abwechslungsreicher?

Und zum Schluss möchte ich erneut einen Rat geben: Bestimmen Sie, wer Ihnen wirklich wichtig ist, und Sie werden sofort die richtige Person finden. Ermitteln Sie die BedĂŒrfnisse, betrachten Sie den Spezialisten als Fachmann, finden Sie seine StĂ€rken und nutzen Sie diese erfolgreich in Ihrer Arbeit. Seien Sie aufmerksam gegenĂŒber dem Bewerber; er ist zu einem GesprĂ€ch gekommen, nicht zu einem Wettkampf, wer den anderen ĂŒbertrumpft.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster