Ich wurde um ein Vorstellungsgespräch als Softwareentwickler bei einem E-Commerce-Unternehmen gebeten. Da ich mich sehr für Testautomatisierung und Continuous Integration / Continuous Delivery interessiere, habe ich sowohl in meiner aktuellen als auch in meiner früheren Firma Systeme dafür eingerichtet, mit teilweisem Erfolg.
Das neue Unternehmen hat derzeit keine Testautomatisierung, was für mich so etwas wie ein Warnsignal ist. Im ersten Telefoninterview wurde mir jedoch versichert, dass dies etwas ist, was das Unternehmen möchte, und es kein Problem für mich wäre, als starker Verfechter der technischen Praktiken von CI/CD und XP aufzutreten, wenn ich angeboten und angenommen würde die Arbeit.
Bei dieser Frage geht es darum, wie ich mich vor dem Risiko schützen könnte, ohne diese Dinge in einem Softwareteam arbeiten zu müssen, wo es nie so recht an der Zeit scheint, sie einzurichten. Wäre es eine gute Idee, während des Vorstellungsgesprächs das Management zu bitten, eine schriftliche Erklärung wie die folgende abzugeben und sie innerhalb des Unternehmens als Bedingung dafür zu verteilen, dass ich die Stelle annehme:
Das Unternehmen **** erkennt die Bedeutung der Testautomatisierung als Teil eines Continuous-Integration-/Continuous-Delivery-Prozesses an, um Softwarefunktionen zeitnah und zuverlässig auf den Markt zu bringen.
Wir erkennen auch, dass es ein Problem ist, dass unsere Software derzeit nicht in der Lage ist, sich selbst zu testen.
Daher ermutigen wir jeden internen Entwickler, am Aufbau und der Verbesserung von Testautomatisierungs- und Softwarebereitstellungssystemen zu arbeiten, soweit er der Meinung ist, dass diese Arbeit im Interesse des Unternehmens liegt. Das Unternehmen verpflichtet sich, die Zeit, die ein Entwickler für solche Arbeiten aufwenden darf, nicht auf weniger als 20 % seiner wöchentlichen Arbeitszeit bis April 2019 zu beschränken.
Dies gilt für aktuelle Entwickler und alle, die während dieser Zeit in das Unternehmen eintreten.
Es gibt einen großen Unterschied zwischen „wir sind damit einverstanden, dass Sie sich für CI/CD einsetzen“ und „wir stellen Sie ein, um CI/CD für uns zu implementieren“.
Ich glaube nicht, dass Ihre vorgeschlagene Erklärung diese Lücke schließt. Es ist nur ein weiteres Memo, das in ein oder zwei Monaten leicht ignoriert werden kann, da andere Probleme Vorrang haben.
Vielleicht wäre es eine bessere Idee, das Management zu fragen, welche expliziten Schritte sie unternommen oder geplant und budgetiert haben, um dies in den nächsten 3 Monaten zu tun, um dies zu erreichen.
Taten sagen mehr als Worte.
Das Schreiben von Tests, wie das Schreiben und Pflegen von Code, kostet Geld. Die Zuweisung von Ressourcen ist eine Geschäftsentscheidung , die von technischen Erwägungen getragen wird.
Mir wurde versichert, dass dies etwas ist, was das Unternehmen möchte, und es wäre kein Problem für mich, als starker Verfechter von CI/CD aufzutreten
Übersetzung: Sie haben gehört, dass es schlecht ist, keine automatisierten Tests zu haben, aber sie konnten bisher kein Buy-in erhalten, um Entwicklerzeit als Teil der regulären Feature-Entwicklung zuzuweisen.
Wenn Sie eingestellt werden, wird es Ihre Aufgabe sein, dem Management diesen Fall vorzulegen.
Es ist keine Einladung, die Unternehmenspolitik als Bedingung für Ihre Anstellung zu diktieren.
(Beachten Sie, dass ich sicherlich denke, dass automatisierte Tests eine gute Sache sind.)
Sie werden wahrscheinlich kein Druckmittel haben, um diese Dinge zu fordern oder das Engagement des Managements zu erzwingen, es sei denn, Sie werden technischer Leiter, eine Art Manager oder Führungskraft. Und selbst dann könnte es ein langer Weg sein. Das Ändern von Prozessen ist oft eine strategische Entscheidung, und das Unternehmen möchte wahrscheinlich einen Entwickler anstelle von jemandem einstellen, der die Prozessänderung überwacht.
Sie haben jedoch möglicherweise die Möglichkeit, die Dinge zu beeinflussen. Wenn das Unternehmen es ernst meint mit automatisierten Tests und CI/CD, könnten Sie mit Ihrem zukünftigen Chef einen Plan ausarbeiten.
Beginnen Sie damit, die kritischsten Teile der Lösung zu identifizieren, die am meisten von automatisierten Tests profitieren würden. Identifizieren Sie die Teile im Bereitstellungsprozess, die durch die Verwendung von CI/CD erheblich verbessert werden könnten.
Das Ziel könnte schließlich eine 100-prozentige Abdeckung sein, aber realistisch gesehen wird das äußerst selten erreicht. Aber wenn Sie zeigen können, dass das Unternehmen Geld sparen, weniger Fehler haben, die Kundenzufriedenheit verbessern, Ressourcen freisetzen usw. würde, indem Sie selbst diese kleinen Schritte unternehmen, würden Ihre persönlichen Interessen mit den Geschäftsinteressen des Unternehmens übereinstimmen.
Wenn dies gut angenommen wird, könnten Sie versuchen, sich auf einige x Stunden pro Woche/Monat zu einigen, die Sie für diese Sache aufwenden könnten.
Neuromagier
Steve-O