Ich glaube daran, schlechte Anforderungen zurückzudrängen. Aber ich glaube auch, dass, wenn Sie Ihr Bestes gegeben haben, um zu erklären, warum sie schlecht sind und sie immer noch wollen, Sie zustimmen und Ihren Job machen.
Ich hatte zum Beispiel Leute, die Anforderungen wollten, die sich gegenseitig ausschließen, was die Anwendung bereits tut. Wenn ich das tue, wird dies zu 100% garantiert brechen. Also sende ich die Anforderung zurück und sage ihnen, dass dies gegen diese andere Geschäftsregel verstößt, die wir bereits eingeführt haben. Möchten sie diese Regel auch ändern? Oft hat die kleine Gruppe, die eine bestimmte Anforderung hat, keinen Zugriff auf das Gesamtbild dessen, was der Rest der Anwendung tun kann. Die meiste Zeit, als ich eine dieser Antworten zurückgeschickt habe, hat der Kunde festgestellt, dass die Anfangsregel kritischer war, und festgestellt, dass sich die gewünschte Änderung nicht gelohnt hat. Wenn sie sich entschieden haben, die Änderung vorzunehmen, haben sie dies nach Rücksprache mit den Personen getan, die die ursprüngliche Anforderung vorangetrieben haben.
Manchmal können sie nur Fragen zur Klärung stellen, um zu erkennen, dass das Problem nicht so einfach ist, wie sie dachten. Manchmal möchte man fragen, warum sie etwas wollen und kommt zu dem wirklichen Bedürfnis, das die Veränderung antreibt. Sobald Sie dies verstanden haben, ist es oft einfacher, eine alternative Lösung zu finden, die für Sie als Entwickler geeignet ist und deren Anforderungen erfüllt. Wenn Sie diese Lösung dahingehend präsentieren können, wie sie ihren Anforderungen besser gerecht wird als der ursprüngliche Vorschlag, haben Sie die Chancen, dass Ihre Änderung akzeptiert wird, erheblich verbessert.
Manchmal, wenn eine Änderung auf einer grundlegenden Ebene in Ihrem Design zu Chaos führt, reicht es aus, ihnen die neue Schätzung der Stunden, die die Änderung dauern wird, mitzuteilen, um sie zu deaktivieren. Wenn Sie dies mit einer Risikobewertung kombinieren, die aufzeigt, in welche kritischen Funktionen Sie möglicherweise neue Fehler einführen, und ihnen mitteilt, dass 3 Personen 6 Wochen engagierten Einsatz benötigen, ist dies plötzlich nicht mehr so wichtig.
Aber manchmal sagt man ihnen, dass dies keine gute Idee ist und warum, und sie sagen immer noch: "Schade, dass wir es brauchen." Sie gewinnen einiges und Sie verlieren einiges und manchmal haben sich die geschäftlichen Anforderungen wirklich geändert, und die Anwendung muss dies berücksichtigen. Sobald die Entscheidung endgültig ist, ist es nicht mehr an der Zeit zu hinterfragen, was Sie tun, und es ist an der Zeit, damit fortzufahren. Wenn Sie Ihre Einwände dokumentiert haben, sollten Sie persönlich immer noch an einem guten Ort sein, wenn das Budget überschritten wird und neue und aufregendere Fehler verursacht. Und sie sind möglicherweise sogar eher bereit, Ihnen beim nächsten Mal zuzuhören, wenn Sie nachweislich bei solchen Dingen richtig liegen.
Der Schlüssel zum Gewinnen vieler dieser Diskussionen (niemand gewinnt alle) besteht darin, zunächst eine Erfolgsbilanz zu erstellen, um zu wissen, wovon Sie sprechen. Senden Sie als nächstes ein schriftliches Dokument, in dem angegeben ist, welche Bedenken Sie haben (viele Manager sind risikobehaftet, sie möchten mit größerer Wahrscheinlichkeit nicht, dass jemand ein Dokument hat, das sie später als falsch erweist, und sie widmen dem, was Sie schriftlich festhalten, mehr Aufmerksamkeit) und schließlich um sicherzustellen, dass sie alle Kosten (nicht nur Stunden, sondern auch Sicherheitsrisiken, das Einführen neuer Fehler, das Versäumen von Fristen usw.) für die Durchführung der Änderung verstehen. Veränderung ist nicht kostenlos und sie müssen das verstehen. Der nächste Schlüssel ist, dies wie ein Erwachsener und nicht wie ein jammerndes Kind zu tun ("aber ich möchte es nicht benutzen ... weil es mir nicht gefällt"). Machen Sie ein Geschäftsmodell, wenn Sie es nicht tun, und Sie werden viel weiter kommen, wenn Sie eine schlechte Anforderung zurückschieben.