Den Widerstand des Entwicklerteams gegen die vom QA-Ingenieur vorgeschlagenen Lösungen ansprechen?

Ich bin diesem Unternehmen als Engineer in Test beigetreten, um ein CI, automatisiertes Testen usw. zu erstellen. Mein Problem ist, dass, wenn ich Probleme identifiziere und den Entwicklern sage, wie sie sie beheben können, sie mich ignorieren und ziemlich feindselig sind. Wie kann ich sie dazu bringen, sich meinen Input anzuhören? Ich möchte, dass wir besser als Team arbeiten können. Im Moment fühle ich mich als QA-Typ gefangen, den niemand respektiert.

Einige Details zu dem, was passiert ist:

  1. Als ich festgestellt habe, dass die Webanwendung ein Problem hat, weil unser Front-End den Unterschied zwischen GET und POST nicht kennt, habe ich ihm das Problem in mehreren Zeilen erklärt. Er sagte, dass er es nicht versteht, also gab ich ihm den Link zu SO über genau das gleiche Problem mit Dutzenden netter und umfassender Antworten, er weigerte sich einfach, es zu lesen und fing an, alles zu tun, genau das Gegenteil von meinen Ratschlägen. Schreit mich oft an, während andere Kollegen in der Nähe sind, aber keine Chefs.
    Ich habe meinem Chef Nr. 1 gesagt, dass er nicht kooperieren will – ich habe keine Antwort bekommen.
  2. Wir hatten ein Meeting mit allen beteiligten Teams und kamen auf Branch-Benennung, Task-Tracker und Deployment-Workflow, aber derselbe Front-End-Typ verstößt ständig dagegen, indem er Fehler bereitstellt und sogar das GitLab auf 503 bringt, indem er lächerliche Branch-Namen verwendet.
    Ich habe Chef Nr. 1 immer wieder gebeten, ihm zu erklären, dass wir kooperieren sollen – keine Antwort.
  3. Als ich feststellte, dass Back-End-Code eine große Anzahl neu erfundener Räder hat, habe ich Back-End darauf hingewiesen, dass es in seiner Sprache stdlib Funktionen zum Reduzieren höherer Ordnung gibt und dass sie anstelle von for-each-break verwendet werden sollten kopieren. Er hat mich angeschrien, ist vom Tisch aufgestanden und hat wahnsinnig gestikulierend geschrien, dass ich "ihn nicht unterrichten soll, weil er seit ~7 Jahren in dieser Firma programmiert" und das gibt ihm aus irgendeinem Grund recht.
    Boss Nr. 2 lief herum und berichtete dem Boss Nr. 1, dass etwas passiert sei.

Sofort machte Chef Nr. 1 (der noch einige Monate remote arbeitet) einen Videoanruf mit mir und sagte mir, dass er nicht weiß, was passiert ist und es auch nicht wirklich wissen will – sagte mir, dass was auch immer passiert ist, es meine Schuld ist und, Zitat: "Egal wer Recht hat, die Freundschaft ist wichtiger als Kompetenz".

Seitdem ist ungefähr ein Monat vergangen – all diese Typen hören mir immer noch nicht zu, schreiben beschissenen Code, lernen nichts und haben mir nichts beizubringen. Immer wieder kämpfen sie mit Problemen, die nicht passieren würden, wenn sie auf mich hören würden, wenn ich sie warne. Aber selbst wenn ich mehr Jahre Programmiererfahrung habe und mehr Programmiersprachen beherrsche als sie insgesamt, da ich hier nur wenige Monate arbeite und in der Position des Engineer in Test bin, bedeutet das für sie, dass sie nicht auf mich hören sollten .

Kommentare sind nicht für längere Diskussionen gedacht; diese Konversation wurde in den Chat verschoben .
Diese Frage wird auf Meta diskutiert: meta.workplace.stackexchange.com/questions/3453/…

Antworten (6)

Mein Problem ist, dass ich Probleme identifiziere und den Entwicklern sage, wie sie sie beheben können

Ich denke, Sie überschreiten den Rahmen Ihrer Position, und ich bin nicht überrascht über die Reaktion, die Sie erhalten. Ihre Aufgabe ist es nicht , Entwicklern zu sagen, wie sie Dinge reparieren können. Ich bin schon lange in diesem Geschäft und hatte noch nie einen QA-Mitarbeiter, der mir gesagt hat, wie man Code schreibt. Aber andererseits habe ich noch nie mit QA-Leuten gearbeitet, die sich Code ansehen. Das liegt außerhalb des Geltungsbereichs der QA.

Wenn Sie zu einem Entwickler kommen, der darüber spricht, wie er Funktionen zum Reduzieren höherer Ordnung verwenden sollte und so weiter, kann ich Ihnen genau sagen, was ihm durch den Kopf geht: „Wenn Sie so gut im Programmieren sind, warum programmieren Sie dann nicht? ?" Ihr ganzer Beitrag hat eine solche Einstellung. Wenn du so gut bist und sie so schlecht, warum arbeitest du dann immer noch dort?

Wie Sie sagten, besteht die Hauptaufgabe der Qualitätssicherung darin, Probleme zu identifizieren. Sie tun dies durch Tests und Analysen. Alle Informationen, die Sie hinzufügen können, die bei der Lösung des Problems helfen würden, sind immer gut. Aber seien Sie vorsichtig mit Lösungsvorschlägen. Denken Sie daran, Ihre Aufgabe ist es, Probleme zu identifizieren, nicht Lösungen. Alle Entwickler erwarten von QA so viele Informationen wie möglich, um ein Problem zu lösen. Wenn Sie wissen, wie Sie das Problem beheben können, geben Sie auf jeden Fall Details an. Aber wenn Sie nur eine Meinung haben, dann stellen Sie klar, dass es sich um eine Meinung und nicht um eine Richtlinie handelt. Schreiben Sie „Ich denke, das liegt daran, dass XYZ bei jeder Anfrage ein Token benötigt“ oder „Ich vermute, wir lassen das Token weg.“

.**Wenn Sie wissen, wie Sie das Problem beheben können, geben Sie auf jeden Fall Details an.** - Bitte nein. Sagen Sie mir einfach, was falsch ist, wie ich es nach Möglichkeit duplizieren kann. Lassen Sie mich analysieren, wie das Problem mit dem Code behoben werden kann. Dafür werde ich bezahlt.
Das Problem mit Testern, die der Entwicklung sagen, was ihrer Meinung nach getan werden sollte, um etwas zu beheben, besteht darin, dass sie in 99 % der Fälle nicht genügend Informationen haben, um es besser zu machen, als zu raten, was die beste Lösung wäre. Finden Sie das Problem, erklären Sie detailliert, wie es reproduziert werden kann, und lassen Sie dann die Entwickler ihre Arbeit machen. Das Beste daran, Entwickler in der QA zu haben, ist, dass sie wissen, welche Informationen am hilfreichsten sind, um die Grundursache zu finden, und nicht, dass sie Ideen haben, wie sie behoben werden können.
@Chad Eine breitere Ansicht könnte sein, dass Sie und QA beide dafür bezahlt werden, funktionale Software pünktlich zu liefern, die dem Kunden einen Mehrwert bietet.
@Eric - Ich verstehe zwar Ihren Standpunkt ... aber Programmieren ist ein Teil der Kunst. Sie sagen dem Künstler nicht, wie er malen soll, nur dass Sie möchten, dass sich etwas ändert
@ColleenV - Und oft führt ihr Vorschlag zu einem Regressionsproblem. Wenn es eine einfache Lösung wäre, hätten wir es wahrscheinlich von Anfang an so gemacht.

Den Widerstand des Entwicklerteams gegen die vom QA-Ingenieur vorgeschlagenen Lösungen ansprechen?

Als „Engineer in Test“ verfügen Sie wahrscheinlich über mehr Programmierkenntnisse als die meisten QA, insbesondere in Ihrer aktuellen Arbeitsumgebung, basierend auf Ihrer Frage. Sie benötigen Programmierkenntnisse, um automatisierte Tests durchzuführen, und das erweckt den falschen Eindruck, dass diese Fähigkeiten von den Entwicklern akzeptiert und respektiert werden.

Indem Sie jedoch Vorschläge machen, wie die Probleme behoben werden können, überschreiten Sie Ihre beruflichen Grenzen. Sie haben begrenzte Informationen und Einblicke in den gesamten Entwicklungsprozess. Die Leute, die den Code schreiben, müssen für Lösungen verantwortlich sein, also lassen Sie sie ihre Arbeit machen.

Eine nicht-technische Analogie, die ich gerne verwende, ist diese: Wenn Sie einen Dachdecker beauftragen, Ihr Dach zu ersetzen, stellen Sie Fragen und beobachten ihn, um sicher zu sein, dass er gute Arbeit leistet. Aber wenn Sie auf das Dach steigen und anfangen, dem Dachdecker zu sagen, wie er "die Dinge besser machen könnte" oder was auch immer, sind Sie zu weit gegangen und werden Ihren Dachdecker wahrscheinlich wütend machen. Runter vom Dach und hör auf, dem Typen zu sagen, was er tun soll.

Konzentrieren Sie sich auf den Aufbau Ihrer Systeme und die Identifizierung von Entwicklerfehlern. Lassen Sie sie Lösungen für die von Ihnen identifizierten Probleme identifizieren und auswählen.

"Runter vom Dach und hör auf, dem Typen zu sagen, was er tun soll." JA.

Ich denke, Sie müssen Ihre Kommunikation mit der Entwicklung in zwei Teile aufteilen:

  • Formelle Berichte über erkannte Fehler.
  • Informelle Vorschläge von Ihnen an die Entwickler, wie diese behoben oder verhindert werden können, und informelle Vorschläge von den Entwicklern an Sie, wie Sie die Software testen können.

Sie sollten versuchen, eine gute Arbeitsbeziehung mit den Entwicklern aufzubauen. Das mag durch deine Art und Weise, wie du angefangen hast, erschwert worden sein, also ziehe dich für ein paar Monate zurück. Beginnen Sie, indem Sie sie um Rat fragen: „Ich denke, wir sollten mehr Belastungstests für Komponente X durchführen. Welche Art von Arbeitsbelastung könnte sie überlasten? Gibt es schwierige Bereiche, die zusätzliche Tests erfordern?“ die Annahme von Ratschlägen wird normal und unwichtig.

Sobald Sie diese Beziehung haben, versuchen Sie beiläufig zu erwähnen, dass Sie glauben, dass eine bestimmte Gruppe von Testfehlern durch eine Designänderung als Gruppe behoben werden könnte.

Ich möchte zunächst sagen, dass ich in einem sehr ähnlichen Bereich mit fast ähnlichen Zielen arbeite: IT Audit. Wenn ich Sie richtig verstehe, sind Sie frustriert, weil Sie das Gefühl haben, dass andere Ihren Rat nicht beachten und Ihr Chef Sie nicht unterstützt, indem er auf Beziehungen statt Kompetenz besteht.

Wenn Sie möchten, dass die Leute Ihnen zuhören und Ihr Feedback ernst nehmen, möchten Sie ihnen zunächst sagen, wie es ihnen bei ihrer Arbeit zugute kommt, wenn Sie Ihnen zuhören. In Ihrem Fall besteht der Vorteil in weniger Fehlern und besser funktionierendem Code, der die Geschäftsziele eher erfüllt. Kontinuierlich schlechten Code zu schreiben und sich zu weigern, sich zu verbessern, wenn sich die Gelegenheit bietet, zeugt von Verachtung, Aggression und fast Arroganz in gewissem Sinne, da sie es besser wissen. Wenn es fortgesetzt wird, garantiert ein solches Verhalten fast die Kündigung aufgrund von Inkompetenz und Unfähigkeit, gut mit anderen zusammenzuarbeiten.

Ich schlage vor, dass Sie das Positive annehmen – dass diese Entwickler nicht versuchen, aus Trotz feindselig zu sein. Höchstwahrscheinlich verstehen sie nicht, warum Sie wollen, dass sie sich ändern . Gehen Sie davon aus, dass die Menschen vernünftig sind, dass sie, so sehr sie auch nicht kooperieren wollen, ihren eigenen Job aufgrund dieses Konflikts nicht gefährden werden. Besprechen Sie mit diesen Entwicklern, wenn alle Parteien ruhig sind, und erklären Sie Ihren Denkprozess – warum Sie möchten, dass sie sich so ändern wie Sie und wie sie davon profitieren

Ihr Chef ist auch hier unvernünftig, indem er auf Beziehungen statt Kompetenz besteht. Ich bin völlig anderer Meinung. Ihre Arbeit wirft ein gutes oder schlechtes Licht auf Ihren Chef. Wenn Ihr Chef alle Verantwortlichkeiten abstreitet, setzt er seinen eigenen Job aufs Spiel. Indem er nicht anerkennt, dass Kompetenz und Mehrwert durch Prozessverbesserung das sind, wonach er und seine Teammitglieder (Sie selbst) letztendlich beurteilt werden, zeigt er ein bemerkenswert schlechtes Urteilsvermögen. Die Situation ist unangenehm, aber den Kopf in den Sand zu stecken, löst das Problem nicht.

Ihre Arbeit dient als Kontrolle über die Arbeit anderer und Sie müssen das aufgrund dieser Tatsache akzeptieren - Es wird immer Menschen geben, die Sie nicht mögen. Nehmen Sie die Straße und sehen Sie das Feedback nicht als persönlichen Angriff, egal wie unangenehm es ist. Wachsen Sie sich ein dickeres Fell und lernen Sie, nicht auf die Anfeindungen / Unprofessionalität anderer zu reagieren - Langfristig wird Ihnen diese Praxis gute Dienste leisten.

"Aggression und fast Arroganz in gewisser Weise, da sie es besser wissen. Wenn ein solches Verhalten fortgesetzt wird, garantiert es fast die Beendigung" - mehr als ein Jahr ist vergangen. Ich bin immer noch hier, nicht mehr in der Qualitätssicherung, aber diese aggressiven Typen, die sogar verbale Belästigungen begangen haben, während alle es gesehen/gehört haben – sie sind immer noch hier und sind jetzt wahrscheinlich noch besser mit dem Chef befreundet als früher, weil „oh, das haben wir so viel Zeug zusammen ..." Wie gesagt, ich bin nicht mehr in der QA, also gibt es jetzt weder ein angemessenes CI noch ein regelmäßiges Codereview - wir arbeiten an verschiedenen Projekten, nur auf derselben Büroetage.

Ich stimme dieser Antwort zu, eine klare Trennung zwischen Berichten über Probleme (Ihre Aufgabe) und informellen Vorschlägen zu deren Behebung vorzunehmen . Dazu füge ich einen weiteren Ansatz hinzu: Stellen Sie Fragen .

Ich bin ein technischer Redakteur und oft dafür verantwortlich, die Grenzfälle in einer Schnittstelle herauszufinden, bevor ich sie dokumentiere, denn wie wir alle wissen, ist keine Spezifikation jemals zu 100 % vollständig. Manchmal entdecke ich ein Verhalten, das, sagen wir mal, nicht ganz wünschenswert ist – es ist kontraintuitiv, oder es ist widersprüchlich, oder es ist teuer. Ich habe in meiner Karriere ziemlich gute Arbeit geleistet, indem ich erklärt habe, was meiner Meinung nach passieren würde und was ich stattdessen gesehen habe, warum es mich interessiert (wenn es nicht aus dem Kontext ersichtlich ist), alle Spekulationen, die ich über die Ursache habe, mit anderen teile und um Input oder Hilfe gebeten habe . Sie können schließlich einen Vorschlag machen oder einen Samen pflanzen, ohne jemandem zu sagen, was er tun soll.

Hier ist ein Beispiel dafür, was ich meine:

Ich habe einige Sicherheitstests durchgeführt. Ich dachte, dass eine Client-Anfrage nach Daten vom Dienst abgelehnt würde, wenn der Benutzer nicht autorisiert ist, aber ich konnte trotzdem Daten lesen. Insbesondere habe ich einen Client gestartet, einige Daten gelesen, die Autorisierung dieses Benutzers auf dem Server widerrufen und dann einige weitere Daten gelesen, und das hat funktioniert. Prüfen wir nicht jeden Anruf? Wenn wir es zwischenspeichern, geben wir an, wie lange zwischen den erneuten Überprüfungen liegen, oder bleibt das unbestimmt? Ich möchte sicherstellen, dass ich dies in der Verwaltungsdokumentation klar erkläre.

Angenommen, die Antwort lautet, dass der Autorisierungsstatus auf dem Server zwischengespeichert wird und der Entwickler keine weiteren Garantien abgeben möchte. Um das Gespräch fortzusetzen:

Danke; Ich verstehe. Wenn also ein Serveradministrator sicherstellen möchte, dass eine Sperrung sofort wirksam wird, weil es sich möglicherweise um eine Situation mit hohem Risiko handelt, gibt es eine Möglichkeit, den Cache zu leeren? Oder muss er die Sitzung beenden und den Client erneut verbinden?

Was wir hier getan haben, ist, das Problem des Benutzers zu beschreiben und laut darüber nachzudenken, wie er es mit der Software, so wie sie ist, lösen kann. Ein Entwickler, der dachte, dass eine kleine Verzögerung bei der Aktualisierung der Autorisierung keine große Sache ist, könnte noch einmal darüber nachdenken, ob die Antwort darin besteht, eine Clientsitzung neu zu starten – vielleicht ist das zu schwergewichtig. Oder vielleicht ist das vollkommen in Ordnung, und Sie werden lernen, dass Kundensitzungen kurz und kurzlebig sein und oft erneuert werden sollen, in diesem Fall haben Sie etwas über das Design gelernt .

Sie und der Entwickler sind Kollegen mit unterschiedlichen Fachgebieten. Keiner von Ihnen sollte dem anderen vorschreiben, wie er seine Arbeit zu erledigen hat, aber Sie sollten beide offen dafür sein, sich auszutauschen, zu lernen und zusammenzuarbeiten, um die Probleme Ihrer Kunden zu lösen.

Wie bereits angedeutet, könnte die beste Strategie darin bestehen, einen Schritt zurückzutreten und Ihren Eifer einzudämmen, allen zu sagen, wie die Dinge zu beheben sind, und sich stattdessen darauf zu konzentrieren, Lösungen für die Probleme zu identifizieren, zu dokumentieren und zu testen.

Auch in diesem speziellen Fall könnte die Arbeitsplatzkultur dem Dienstalter und der Arbeitsteilung Vorrang vor der Kompetenz einräumen. Sich in einem solchen Umfeld Respekt zu verdienen, kann ein langwieriger Prozess und ein harter Kampf sein, der mehr Zeit und Mühe erfordert, als an einem anderen Arbeitsplatz erforderlich gewesen wäre. Es klingt, als wäre das Management mitschuldig und schätzt den Status quo über Anpassung und Veränderung.

Ich frage mich, ob sich dieses Muster geändert hätte, wenn die Geschäftsanforderungen die Geschwindigkeit der Fehlerbeseitigung vorangetrieben hätten, dh wenn die Fehler offensichtliche und messbare Verzögerungen und Kundenbeschwerden verursacht hätten. Dies wäre schwierig zu beheben, bis sich die Anreize ändern, aber das liegt wahrscheinlich außerhalb Ihrer Kontrolle. Wenn Sie glauben, dass dies auf eine Dysfunktion am derzeitigen Arbeitsplatz hinweist und Sie ohne Hoffnung auf eine Trendwende weiterhin demotiviert, bis hin zur Kündigung, ist es möglicherweise an der Zeit, andere Beschäftigungsmöglichkeiten in Betracht zu ziehen.

Es gibt jedoch eine Reihe von Änderungen an Ihrem Verhalten, die einen Versuch wert erscheinen, bevor Sie die aktuelle Situation als irreparabel abtun. Ich möchte Sie ermutigen, zunächst einen Schritt zurückzutreten und Ihre eigene Herangehensweise an diesen Prozess zu überprüfen und den Rat zu befolgen, nicht zu viele Ratschläge zu den Korrekturen zu geben, es sei denn, Sie werden vom Entwicklerteam dazu aufgefordert.