Wie soll ich auf einen Chef zugehen, der immer wieder Zeitarbeiter einstellt, nur damit ich etwas fertig mache?

Um es kurz zu machen, wir hatten in letzter Zeit viel Arbeit in meinem Job und um dieses Vakuum zu füllen, hat mein Chef Zeitarbeiter eingestellt. Zuerst stellte er drei ein, die etwa zwei Monate blieben, aber nachdem der Kunde eine Frist vorverlegt hatte, stellte er vor kurzem wieder einen ein.

Ich war sehr vorsichtig damit, Arbeit an sie zu delegieren, da sie ein riesiges Chaos in der Codebasis angerichtet haben, und wenn sich dann ein Schub für die Produktion nähert, werde ich angesprochen, um es funktionsfähig zu machen. Mein Chef ist diesbezüglich etwas wählerisch und hat mir gegenüber angemerkt, dass sie hier sind, um zu helfen, und ich ihnen etwas zu tun geben muss. Das Problem ist, dass er kein Entwickler ist und daher nicht weiß, was nötig ist, um schlechten Code zu reparieren oder zusammenzuflicken. er hat nur die Perspektive, dass er für sie bezahlt.

Ich hätte kein Problem damit, ihnen Dinge zu tun zu geben, wenn ich nicht wüsste (wie es jetzt schon unzählige Male passiert ist), dass sie in ein paar Wochen gehen und wenn etwas kaputt geht, werde ich derjenige sein, der beauftragt wird, es zu reparieren in Rekordzeit. Das letzte Mal, als dies passierte, verbrachte ich fast zwei Wochen damit, Code zu schreiben, den ich dann in einem Tag beheben sollte.

Wie vermittle ich das, ohne wie ein Perfektionist zu wirken, der alles selbst machen will?

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
Sind Sie in den Einstellungs-/Überprüfungsprozess involviert? Werden die neuen Mitarbeiter technischen Tests unterzogen? Sind sie eigentlich Zeitarbeiter oder Freiberufler?
Haben Sie es geschafft, an einem Tag Zeitarbeitscodes im Wert von 2 Wochen zu reparieren?
Wenn der Manager nicht im Softwarebereich tätig ist, in welchem ​​Bereich ist er tätig? Ist es möglich, dass Sie eine Analogie finden, die ihn besser trifft?
Es ist nicht Ihre Aufgabe zu entscheiden, wie Ihr Chef oder Ihr Unternehmen sein Geld ausgibt. Alles, was Sie tun können, ist einfach zu versuchen, "Ihr Ding" zu machen ... so gut Sie können.
@mathreadler Kompletter und völliger Unsinn. Jeder Chef, der sein Geld wert ist, kann seinen Untergebenen zuhören, wenn sie darauf hinweisen, dass eine Strategie mehr Probleme schafft als löst und letztendlich die Kosten erhöht. Sicher, es gibt schreckliche Chefs, aber das bedeutet nicht, dass Sie nicht einmal versuchen , sie auf das Problem aufmerksam zu machen.
@jpmc26 In ihren Augen ist es wahrscheinlich eher ein Vorteil und kein Problem, und plötzlich bekommen sie diesen langen, unerklärlichen Urlaub. Hmmm :) Kannst du es jetzt besser verstehen?

Antworten (10)

Vielleicht möchten Sie einige Argumente aus dem Buch The Mythical Man-Month von Frederick Brooks nehmen. Obwohl es ursprünglich 1975 geschrieben (1995 überarbeitet) wurde, ist es immer noch eines der wichtigsten Werke zum Management von Softwareentwicklungsteams.

Es ist am bekanntesten für die Kodifizierung des Brooks-Gesetzes :

Das Hinzufügen von Personal zu einem späten Softwareprojekt macht es später

Die Gründe sind:

  • Neue Entwickler müssen über die vorhandene Architektur des Projekts unterrichtet werden, bevor sie etwas Nützliches tun können. Dies nimmt dem bestehenden Entwicklungsteam Zeit ab.
  • Es gibt eine Obergrenze dafür, wie viele Personen gleichzeitig nützliche Beiträge zu einem Softwareentwicklungsprojekt leisten können. Es ist oft nicht möglich, sinnvolle Teilaufgaben zu finden, die an neue Personen vergeben werden können.

Gute Softwareentwicklung braucht ein stabiles Kernteam, das von Anfang bis Ende zusammenarbeitet.

Ihr Vorgesetzter ist sich dieser Regel möglicherweise nicht bewusst. Also versucht er, Ihnen auf die einzige Weise zu helfen, die ihm einfällt: Fügen Sie Ihrem Projekt mehr Leute hinzu.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .

Das Problem mit Zeitarbeitskräften und Auftragnehmern (Offenlegung, ich bin einer) ist, dass es oft kein Comeback gibt, wenn die Lieferung schrecklich ist.

Es kann sich lohnen, mit Ihrem Chef über die Qualität der Zeitarbeit zu sprechen. Billig einzustellen bedeutet, die Kosten weiter nach unten zu verschieben, aber letztendlich wird er dafür bezahlen, den Code zu reparieren.

Sie können auch darum bitten, am Einstellungsprozess beteiligt zu werden, indem Sie einen kleinen Codierungstest durchführen, um sicherzustellen, dass es sich lohnt, die Zeitarbeitskräfte einzustellen. Nichts zu dramatisches, weniger als eine Stunde Arbeit, um sich ein Bild von den Fähigkeiten zu machen.

Was Sie geschrieben haben, wirft tatsächlich eine Reihe von Warnsignalen auf, die darauf hindeuten, dass die einzige praktikable Lösung darin besteht, Ihren Job zu wechseln. Sie haben geschrieben, dass Ihr Manager die Bedeutung und den Wert von Komponententests ignoriert. Ich nehme an, dass es bei der Analyse und dem Design genauso ist, da diese Missverständnisse normalerweise gebündelt auftreten. Sie sagen auch, dass er glaubt, dass das Hinzufügen eines temporären Entwicklers für einen Monat alles andere als eine weitere Verzögerung bringen wird. Anscheinend hat Ihr Vorgesetzter wenig Ahnung, wie das Softwareentwicklungsprojekt durchgeführt werden sollte, und es besteht wenig bis gar keine Chance, dass er seine Meinung ändert

Sie können es dennoch versuchen.

Während eine 9-Frauen-Entbindung in einem Monat eine beliebte Methode ist, um zu „beweisen“, dass das Hinzufügen von Personen die Arbeit nicht unbedingt beschleunigt, funktioniert es normalerweise nicht bei jemandem, der das Problem nicht wirklich versteht, es aber besser weiß. Verwenden Sie stattdessen das Beispiel des Grabens eines Brunnens.

Angenommen, Sie müssen einen Brunnen graben, der einen Durchmesser von 1 m und eine Tiefe von 15 m hat. Ein Mann braucht 15 Stunden, um es zu graben. Wie viele Männer werden benötigt, um die Aufgabe in 1 Stunde zu erledigen?

Die Antwort, die Ihnen die meisten Manager (und die meisten Leute im Allgemeinen) geben werden, wird sein, dass es 15 Männer sein werden, aber das stimmt nicht, und es ist einfach, es jedem zu zeigen, der überhaupt keine Ahnung vom Programmieren hat . Genau wie beim Codieren können Sie eine wühlende Person durch eine andere ersetzen. Sie können (bis zu einem gewissen Grad) Ihre Arbeit teilen. Aber nur ein Mann passt in ein 1m breites Loch, um überhaupt zu arbeiten. Wenn Sie eine zweite Person hinzufügen, wird die erste von ihnen behindert und kann ihre Arbeit nicht erledigen.

Sie können die Arbeit etwas beschleunigen, indem Sie eine erschöpfte Person gegen eine frische austauschen, sodass eine zweite Person ein wenig hilft. Es wird nicht 1/2 der Zeit sein, ein Save wird wahrscheinlich nicht mehr als 1/3 sein. Aber das Hinzufügen eines dritten Mannes wird höchstwahrscheinlich kein bisschen helfen. Die beiden werden sich etwa jede Stunde austauschen, um Zeit zu haben, ihre Ausdauer wiederzugewinnen. Wenn Sie also darauf bestehen, den dritten Arbeiter im Loch einzusetzen, wird der einzige Effekt sein, dass Sie mehr Zeit verlieren, wenn sie tauschen, oder einfach mehr Männer warten, bis sie an der Reihe sind, bezahlt werden, aber keinen Mehrwert bringen. Bestenfalls kein Gewinn, schlimmstenfalls ein Verlust.

So können Sie die dritte Person für einige Hilfsaufgaben einsetzen, z. B. das Entfernen des überschüssigen Schmutzes aus der Brunnenumgebung. Gut, es bringt vielleicht 5 % Zeitersparnis für die Kosten eines vollen Arbeiters.

Aber wie können Sie einen vierten Mann einsetzen, ganz zu schweigen von weiteren 11? Wenn Sie wirklich darauf bestehen, alle zu nutzen, werden Sie zusätzliche Kosten wie Kommunikation, Zeit zum Austauschen usw. haben. Beginnend mit dem vierten Mann werden Sie also nur Verzögerungen ohne jeglichen Nutzen und zusätzliche hohe Personalkosten hinzufügen .

Und das setzt voraus, dass alle Arbeiter qualifiziert sind. Was ist, wenn das Graben eines Brunnens zusätzliche Präzision erfordert und Sie dafür eine ungeschulte Aushilfe einstellen? Sie müssen es ihnen beibringen, damit Sie die erste Stunde damit verbringen, zu zeigen, wie man Brunnenwände richtig herstellt, damit sie nicht auseinanderfallen, und wie man diese perfekt runde Form erreicht. Dann werden sie mit 50 % der Geschwindigkeit des trainierten Mannes arbeiten und ihre Arbeit wird immer noch nicht perfekt sein, sodass der Dauerwellen-Typ die Korrekturen vornehmen muss und etwas Zeit seiner Arbeit verliert. In Wirklichkeit wird der Brunnen fertig sein, bevor die neue Person etwas anderes als Verzögerungen bringen kann. Und es dauert länger, als wenn der Facharbeiter alleine gräbt. Sie können immer noch eine Zeitarbeit für diese Hilfsaufgaben oder die einfachen verwenden (während ich eine Pause mache, graben Sie in der Mitte, lassen Sie die Wände unberührt), aber das sind immer noch 5, vielleicht bestenfalls 10 % Gewinn.

Und es ist etwas so Einfaches wie einen Spaten zu schwingen. Die Codierung ist viel komplexer.

Fassen Sie es in etwa so zusammen:

Es ist offensichtlich, dass Sie einen Entwickler schulen müssen, und 1 Monat ist ein Minimum, um ihn auf dem grundlegenden Produktivitätsniveau laufen zu lassen, wenn er erfahren ist . Während des Trainings müssen Sie die Zeit eines regulären Entwicklers in das Training investieren, und die Arbeit von Zeitarbeitskräften muss sowieso überprüft werden, sodass das Hinzufügen von Personen für weniger als 4-6 Monate nichts als Verschwendung ist.

Die andere Idee schlug vor, dass Sie am Einstellungsprozess beteiligt sein könnten. Das ist ein guter Rat, um die Zeit zu verkürzen, eine neue Person in das Team einzuführen und die Anzahl der Fehler in ihrem Code zu begrenzen, aber es erfordert immer noch Training (ein Lead-In). Also ist eine Aushilfe, selbst eine qualifizierte, für einen Monat eine Verschwendung. Bestenfalls kann man damit Hilfsdinge schreiben. Wie Unit-Tests ;-)

Wenn Ihr Vorgesetzter einen solchen Vergleich nicht nachvollziehen kann, besteht Ihre letzte Möglichkeit darin, noch einmal auf den Arbeitsmarkt zu gehen.

"Nehmen wir an, Sie müssen einen Brunnen graben, der einen Durchmesser von 1 m und eine Tiefe von 15 m hat. Ein Mann braucht 15 Stunden, um ihn zu graben. Wie viele Männer werden benötigt, um die Aufgabe in 1 Stunde zu erledigen?" Dies ist insbesondere fantastisch, da es im Gegensatz zu dem offensichtlichen Schwangerschaftsbeispiel das "Erwischt!" Blickwinkel, der gleichbedeutend mit dem ist, was passiert, wenn man versucht, mehr Entwickler einzustellen, also ist es kognitiv eher als Metapher zuordenbar, in Bezug auf die Bereitstellung dieses oberflächlichen "Nun, es SOLLTE so funktionieren!" erster Eindruck. Wir verwenden für jede Position, auch für Nicht-Entwickler, einen „einmonatigen Ramp-up“, und selbst das ignoriert die Kosten für den Rest des Teams.
Das Lustige ist, dass dies in vielen Kulturen eine typische Mathefrage in der Grundschule mit der akzeptierten Antwort „1h“ ist. Ich denke, es könnte die Hauptquelle für spätere Missverständnisse sein, dass das Hinzufügen von mehr Ressourcen die Zeit immer linear verkürzt. Das haben sie dir schließlich in der Schule beigebracht!
"Es ist unmöglich, einen Bleistift mit einer stumpfen Axt zu spitzen. Es ist ebenso vergeblich, es stattdessen mit zehn stumpfen Äxten zu versuchen." - Edsger W. Dijkstra
Das Brunnenbeispiel ist wahrscheinlich besser als Sie es machen - ein Mann muss graben, den Abraum aus dem Loch heben und den Abraum auf einen Haufen stapeln, bei zwei oder drei Männern zerfällt das Projekt natürlich in komplementäre Aufgaben (graben, heben, stapeln ), aber das Hinzufügen von mehr Personal als die Anzahl der ergänzenden Aufgaben hilft nicht - entweder Sie fügen einen Bagger hinzu und sie kommen sich gegenseitig in die Quere, oder Sie haben Leute, die warten, da die Menge an Beute zum Heben oder Stapeln nicht ausreicht beschäftige sie.
„Sie haben geschrieben, dass Ihr Manager die Bedeutung und den Wert von Komponententests ignoriert …“ Ja, nein. Ich habe manchmal den Müll gesehen, der zum Testen durchgeht. Unit-Tests sind keine Zauberei. Wenn die Person, die sie schreibt, nicht sowohl kompetent als auch erfahren genug ist, um schlechten Code ohne sie zu erkennen, werden sie sowohl anfänglich als auch langfristig Nettokosten verursachen. Hören Sie auf, so zu tun, als wären sie eine Wunderwaffe, und verwenden Sie „Pie-in-the-Sky“-Ansätze, um über Softwareentwicklung zu sprechen.
@ jpmc26 keine Technik ist eine Wunderwaffe in der Softwareentwicklung (und auch in anderen Bereichen, glaube ich). Dennoch helfen Unit-Tests und gut geschriebene geben Ihnen einen Mehrwert. Wenn der Chef sich weigert, das anzuerkennen, ist er normalerweise inkompetent. Und das ist für mich ein rotes Tuch. Beachten Sie, dass ich hervorragenden Code ohne Unit-Tests sowie schlechten Code mit ihnen gesehen habe.

Dies wagt sich an allgemeine Ratschläge zur Softwareentwicklung....

  1. Wenn der Code, den jemand schreibt, etwas kaputt macht, fügen Sie einen automatisierten Test hinzu, damit Sie ihn das nächste Mal früher sehen können.

  2. Überprüfen Sie Pull-Requests, führen Sie nichts zusammen, bis Sie sicher sind, dass nichts anderes kaputt geht.

  3. Tests machen eine gute Spezifikation. TDD ist ein guter Weg, um sicherzustellen, dass das, was Sie bekommen, das ist, was Sie wollen. Geben Sie jemandem die Aufgabe, den Code zu schreiben, den Sie benötigen (wie die Tests zeigen, die Sie bereits geschrieben haben).

  4. Peer-Programmierung könnte eine Option sein. Sie können Dinge sofort korrigieren und Fragen beantworten, während die Dinge weitergehen.

Ich werde dieser hervorragenden Antwort auch hinzufügen, dass, wenn sie 2 Wochen lang Code schreiben, ohne dass sie überprüfen, was sie tun, dies geändert werden muss. Geben Sie ihnen Aufgaben von 1-3 Tagen und Sie können Fehler viel früher überprüfen und abfangen.
Nicht, dass diese Antwort nicht richtig wäre, aber angesichts der Beschreibung des Arbeitsplatzes durch das OP bezweifle ich, dass "Testen" überhaupt in das Vokabular des Chefs eingeht. Und Code-Reviews? Der OP-Chef wird nur sehen, wie Geld den Bach runtergeht ... :-/
Du hast wahrscheinlich Recht. Aber an diesem Punkt müssen Sie mit dem Chef sprechen und ihm klar machen, dass die Einstellung und Entlassung von Zeitarbeitern viel mehr kosten wird, als die Dinge richtig zu machen.
Das ist die richtige Antwort, das Problem sind nicht die temporären Entwickler, das Problem ist der Mangel an Disziplin und Organisation. @Aaron-f Sie müssen Ihrem Chef nicht mehr über Ihre Testfälle erzählen als über Ihre Variablennamen. Sie schreiben Code mit Tests, Punkt. Wenn es keine Tests gibt, ist es nicht fertig. Der beste Weg, um sicherzugehen, dass dies wahr ist: TDD
Tatsache ist, dass billiger in diesem Quartal in den nächsten zwei Jahren fast immer billiger ist. In jeder Phase der Entwicklung steigen die Kosten für die Behebung eines Fehlers um den Faktor 10. Kosten Sie 10 Dollar, um ein Problem während des Designs zu beheben? Die Behebung kostet 100, sobald sich der Code in der Entwicklung befindet, 1000 für die Behebung beim Integrationstest und 10000 für die Behebung in der Produktion. Agile Prozesse mildern dies nur ab, indem sie häufiger überprüft werden, aber es ist immer noch wahr. Der Chef von OP schiebt die Kosten auf eine spätere Phase, um jetzt auf Kosten der späteren Multiplikation von Risiken, Kosten und Zeitplanauswirkungen gut auszusehen.
"Tests machen eine gute Spezifikation aus. TDD ist eine gute Methode, um sicherzustellen, dass das, was Sie bekommen, das ist, was Sie wollen." Absolut falsch, weil die Leute, die die Anforderungen bestimmen, sie höchstwahrscheinlich nicht lesen können. Selbst dann ist der Unit-Test-Code nicht höherwertig als der Rest des Codes, den jemand schreibt, was bedeutet, dass Sie, wenn Sie eine Person haben, die nicht kompetent ist, schlechte Tests zusammen mit dem schlechten Code bekommen, was macht die Verwaltung des Codes noch teurer.

Wie kann man einen Chef ansprechen, der immer wieder Zeitarbeiter einstellt, nur damit ich etwas fertigstelle?

Du hast bereits. Alles, was Sie tun können, ist, es dem Chef zu sagen.

Inzwischen gibt es eine Lösung, der Grund, warum Sie die Arbeit wiederholen müssen, ist, dass Sie zu spät herausgefunden haben, dass es Müll war. Sie haben die Möglichkeit, einige Fähigkeiten zu üben und mehr Verantwortung zu übernehmen, aber Sie tun es nicht. Es ist kein esoterisches Problem, es ist nur eine Art, ein Problem und eine Lösungsmethodik zu betrachten. Es lohnt sich zu lernen.

Dies ist einer der Fälle, in denen Mikromanagement von entscheidender Bedeutung ist. Bewerten Sie die Situation als Ganzes (einschließlich der Menschen, sie sind eine Ressource) und erstellen Sie einen Lösungsplan, setzen Sie die Arbeitskraft unter diesen Bedingungen effizient ein. Das ist der EINZIGE Weg, Sie lassen selbst erfahrene Leute nicht von Ihrem Plan abweichen, sie haben nicht das vollständige Bild, Sie geben ihnen kleine Aufgaben und überprüfen alles, was sie tun, sie berichten Ihnen bei jedem Schritt.

Das Wichtigste ist, das Problem vollständig zu verstehen und einen soliden Plan zu haben. Teilen Sie es dann, wo immer möglich, in einfachere Aufgaben auf und verlassen Sie sich nicht darauf, dass jemand seinen Beitrag unbeaufsichtigt leistet.

Gute Antwort – OP-Ressourcen im Detail zu verwalten ist die einzige wirkliche Antwort, die die gewünschten Geschäftsziele erreicht.

Wenn Sie mit logischen Argumenten wie der 9-Monats-Analogie für ein Baby davonkommen, ist das großartig, aber meiner Erfahrung nach funktioniert dieses Argument nur bei Menschen, die es bereits verstehen. Und selbst wenn dies der Fall ist, folgen häufig Fragen zur optimalen Anzahl von Teammitgliedern.

Was helfen könnte, wenn die Logik versagt, ist, einige Daten zusammenzustellen, die zeigen, wie die Arbeit tatsächlich erledigt wird, und sich darauf zu konzentrieren, welche Arbeit der Menschen behoben werden muss. Wenn Sie dies zusammenfassen, können Sie ein ziemlich dramatisches Diagramm darüber zeigen, wer tatsächlich zur Ausgabe beiträgt und wer davon abnimmt.

Ein Teil des Problems besteht darin, dass Manager unter Lieferdruck stehen und zeigen müssen, dass sie etwas tun, um dies zu erreichen. Nichts zu tun könnte sie unwirksam und irrelevant erscheinen lassen. Sie können dabei helfen, indem Sie einige Änderungen anbieten, die Ihr Vorgesetzter vornehmen kann (bessere Computer, Laptops, Whiteboards, ein Build-Server, andere Arbeitszeiten, isolierter Arbeitsplatz usw.).

Das Qualifikationsniveau der Zeitarbeitskräfte hängt wahrscheinlich davon ab, wie viel Geld Ihr Manager in sie investiert. Da sie nur Aushilfen sind, möchte er natürlich nicht zu viel Geld verschwenden. Wie Sie sagen, ist Ihr Chef kein Entwickler und geht wahrscheinlich nur davon aus, dass ein Programmierer programmieren kann.

Wenn es jedoch langfristig Ihre Arbeitsbelastung erhöht und Ihre aktuelle Arbeit beeinträchtigt. Sie müssen ihn für ein 1x1 ziehen und nur Ihre Probleme und den Grund, warum Sie nicht so viel Arbeit an sie delegieren, und Ihre Sorgen für die Zukunft, wenn Sie Arbeit an sie delegieren, vermitteln

Sie möchten sicherstellen, dass Sie nicht so wirken, als würden Sie es mit Ihrem Chef versuchen, aber gleichzeitig müssen Sie die Botschaft vermitteln, da er nicht versteht, was in der Entwicklung passiert. Wenn Sie einfach erwähnen, dass Sie die Arbeit gerne delegieren würden, aber nur, wenn Sie sich sicher fühlen, dies zu tun.

Ich finde es nützlich, ein konkretes Beispiel zu diskutieren. Nehmen Sie einen Fall von etwas, das eine Aushilfe getan hat und das von Ihnen repariert werden musste. Beschreiben Sie das Problem, an dem gearbeitet wird. Erstellen Sie eine sorgfältige Zeitleiste der Ereignisse und zeigen Sie, wann die Aushilfe gebeten wurde, daran zu arbeiten, wie lange die Aushilfe daran gearbeitet hat, wann die Probleme entdeckt wurden, wie die Probleme behoben wurden und wann der Code fertig war oder zumindest wieder da war verwendbar. Vergleichen Sie mit einer Schätzung, wie es mit einem stabilen Entwicklungsteam funktioniert hätte. Sie können zugeben, dass Sie sich das Beispiel ausgesucht haben, aber Sie haben auch eine Liste mit vielen Problemen, bei denen dies passiert ist.

Besprechen Sie jetzt Ihre Lösung, die eine dauerhafte Ergänzung des Personals zu sein scheint. Wie lange wird es dauern, diese Person zu schulen (aber Sie tun es nur einmal, nicht einmal pro Aushilfe), wie sind die Kosten im Vergleich (soweit Sie wissen) usw.

Es hört sich so an, als würde Ihr Chef/Ihr Unternehmen nicht verstehen, dass Sie zu viel zu tun haben. Die Einstellung von Aushilfen ist sinnvoll, wenn die Überlastung vorübergehend ist, ist aber eine sehr kostspielige Lösung, wenn die Überlastung dauerhaft ist. Sie müssen diesen Fall machen.

Die anderen Antworten sind alle sehr gut. Ich würde jedoch einen anderen Ansatz vorschlagen. Wenn dies ein wiederkehrendes Problem ist, dann ist es vielleicht, wie Ihr Vorgesetzter zu denken scheint, ein Hinweis darauf, dass Ihre Arbeitsbelastung zu hoch ist, als dass seine Erwartungen allein von Ihnen erfüllt werden könnten.

Sie weisen darauf hin, dass seine Lösung dafür nicht funktioniert, und Sie müssen ihm möglicherweise erklären, warum. Die anderen Antworten decken die meisten möglichen Argumente ab, die Sie diesbezüglich vorbringen könnten. Aber wenn Sie eine Änderung sehen möchten, ist der beste Weg, dies zu erreichen, im Allgemeinen, Ihre eigene alternative Lösung vorzuschlagen.

Anstatt weiterhin Zeitarbeitskräfte einzustellen, könnte er vielleicht eine dauerhafte Verstärkung des Teams in Betracht ziehen. Wenn Sie tatsächlich bereit sind, Aufgaben zu delegieren, dies aber nicht können, weil die Codequalität nicht den Anforderungen entspricht, dann ist dies der Teil, den Sie beheben müssen. Wenn Sie jedoch möchten, dass jemand in das Erlernen Ihrer Architektur und Ihres Programmierstils investiert, muss er eine gewisse Erwartung haben, dass sich die Investition auszahlt. Eine dauerhafte Verstärkung des Teams ist zwar mit zusätzlichen Kosten verbunden, aber die verbesserte Qualität des Beitrags und der geringere Betreuungs-/Nacharbeitsbedarf können sich langfristig leicht bezahlt machen.

Unit-Tests

Diese Antwort schlägt vor, dass Sie Komponententests schreiben und sie für die Tests codieren lassen sollten. Das ist ein Ansatz, aber es verlässt Ihre Arbeit als Schreiben von Komponententests. Das ist vielleicht nicht das, was Sie wollen. Und um die besten Ergebnisse zu erzielen, müssen Sie großartige, umfassende Tests schreiben und gute Entwickler haben. Denn Tests kontrollieren das Ergebnis und nicht den Prozess. Es ist durchaus möglich, lausigen (schwer zu wartenden und zu modifizierenden) Code zu schreiben, der Tests besteht.

Ein anderer Ansatz besteht darin, die Dinge umzudrehen. Anstatt Sie Tests zu schreiben, lassen Sie die anderen Entwickler die Tests schreiben. Sie fahren mit dem Schreiben des Codes fort, den Sie sowieso schreiben wollten. Wenn es die Tests besteht, großartig. Ist dies nicht der Fall, können Sie darüber nachdenken, warum. Wenn der Grund darin besteht, dass der Test scheiße ist (also nicht den tatsächlichen Anforderungen entspricht), löschen Sie den Test. Jedes Mal, wenn Sie das tun, notieren Sie diese Entscheidung.

Sie können auch die bestandenen Tests auf Nützlichkeit überprüfen. Auch hier gilt: Wenn sie beim Kodifizieren der Anforderungen nicht hilfreich sind, löschen Sie sie. Notieren Sie die Entscheidung.

Dies beruht darauf, dass es einfacher ist, Tests zu überprüfen als Code. Es ist also viel einfacher zu sehen, ob ein Entwickler das Schreiben von Tests in Code absolvieren kann, als festzustellen, ob der Code des Entwicklers allein gut genug ist.

Schreiben Sie am Ende der Amtszeit des temporären Entwicklers Statistiken darüber, wie viele Tests nützlich waren und wie viele gelöscht wurden. Das sind dann die Informationen, die Sie Ihrem Chef präsentieren, wenn Sie gegen die Einstellung von mehr Zeitarbeitskräften argumentieren. Geben Sie an, wie viel Zeit es gedauert hätte, die Tests zu überprüfen, im Vergleich dazu, wie viel Zeit es gedauert hätte, die endgültige Testsuite zu schreiben. Wenn diese Zahl netto negativ ist, hat das Unternehmen Geld für einen „Entwickler“ bezahlt, um Ihre Software zu verschlechtern. Selbst wenn es netto positiv ist, vergleichen Sie die Kosten der Zeitarbeit mit Ihren Kosten.

Meiner Erfahrung nach reagieren Chefs auf finanzielle Argumente am besten mit Beweisen. Ohne die Beweise können sie das Argument zurückweisen. Mit technischen, aber nicht finanziellen Beweisen werden sie die Beweise nicht unbedingt verstehen (einige mögen es, aber viele nicht). Drücken Sie also alle technischen Beweise in finanziellen Begriffen aus.