Ich interpretiere diese Situation als zwei grundlegende Probleme, möglicherweise drei.
- Ein unerwünschtes SDK-Upgrade hat es zur Quelle gemacht, wo es sich negativ auf das Produkt auswirken kann.
- Aus der Frage: Der Mitwirkende, der das unerwünschte Upgrade durchgeführt hat, wusste nichts über eine vorherige, spezifische Entscheidung, kein Upgrade durchzuführen.
Die erste davon ist meiner Meinung nach die schwerwiegendste. Wenn ein unerwünschtes SDK-Upgrade in den Code eingefügt werden kann, können auch andere Probleme auftreten.
Jemand schlug vor, einen Komponententestfall hinzuzufügen, der fehlschlägt, wenn das Upgrade erkannt wird. Ich glaube, dass dies ein gefährlicher Weg ist, der mit der Zeit zu einem Lavastrom führt . Es scheint unvermeidlich, dass das SDK irgendwann in der Zukunft aktualisiert wird, um neue Funktionen oder Bugfixes einzuführen, oder weil die alte Version nicht mehr unterstützt wird. Stellen Sie sich das Kratzen des Kopfes vor, vielleicht sogar Argumente, die auftreten, wenn ein solcher Unit-Test dann fehlschlägt.
Ich denke, die allgemeinste Lösung ist die Anpassung des Entwicklungsprozesses. Verwenden Sie für Git den Pull-Request- Prozess. Verwenden Sie für Subversion und ältere Tools die Optionen "branches" und "diff". Aber haben Sie einen Prozess, der es den Senior-Entwicklern ermöglicht, diese Art von Problemen zu erkennen, bevor sie es in die Codebasis schaffen und andere Entwickler betreffen.
Wenn der Pull-Anforderungsprozess in Ihrer Situation verwendet worden wäre und wenn jede Pull-Anforderung eng und spezifisch wäre, wäre nicht viel Zeit verschwendet worden. Eine Pull-Anforderung zum Aktualisieren des SDK wurde gesendet und mit dem Hinweis abgelehnt, dass das Upgrade nicht erwünscht ist. Kein anderer wäre betroffen gewesen, und das SDK-Upgrade müsste jetzt nicht zurückgesetzt werden.
Aber um die ursprüngliche Frage direkt zu beantworten, stimme ich anderen zu, dass es eine Verschwendung von wertvoller Zeit ist, von allen Entwicklern zu erwarten, dass sie den gesamten Versionsverlauf des Codes, die Versionshinweise usw. vollständig lesen. Was ist los mit einer kurzen Team-E-Mail?
Mögliches drittes Problem: Warum ist das Upgrade überhaupt nicht erwünscht? Mindestens ein Entwickler war der Meinung, dass das Upgrade eine gute Sache sein würde. Es gibt viele gute Gründe, ein Upgrade zu verzögern, aber auch viele schlechte. Achten Sie darauf, den Lavastrom (unnötiger Abwärtskompatibilitätscode) und den Frachtkult ("das können wir nicht aktualisieren, aber ich weiß nicht warum") zu vermeiden.