Vor kurzem gab es eine SO Frage, wie man ein Feature implementiert, das blockierte Benutzer vom Kopieren von Text von einer Seite in ihrem Browser. Es gab viele negative Kommentare zu dieser Funktion, sowohl weil es praktisch nicht möglich ist, effektiv zu implementieren, als auch weil es die Erfahrung der Benutzer beeinträchtigt.
Was muss ein Programmierer in solchen Situationen im Umgang mit seinen Kunden oder Arbeitgebern tun?
Versuchen Sie zu verstehen, warum der Kunde eine so schlechte Idee umsetzen und Alternativen vorschlagen möchte.
Um das Problem anzugehen, muss ich normalerweise einen Schritt zurücktreten. Dieses Problem tritt in der Regel auf, weil der Kunde / Kunde etwas allgemeines erreichen möchte (dh sicherstellen möchte, dass der Endanwender weiß, was er auf eine Webseite eingibt) und eine bestimmte Lösung gefunden hat (dh, er darf nicht kopiert / eingefügt werden) ) auf ihr wahrgenommenes Problem. Die Lösung besteht darin, mehr Fragen zu stellen, um herauszufinden, was der Kunde tatsächlich erreichen möchte. "Warum" ist eine mächtige Frage - wie ist "Was ist das zugrunde liegende Problem, das Sie angehen wollen?"
Sie könnten zynisch sein, im Fall des Kunden, und nur die Stunden nutzen, die Sie benötigen, um es zu implementieren und dadurch Ihrem Unternehmen viel Geld zu geben. Die andere Art, die ich sehe, ist, den Kunden zu fragen, warum er es braucht und ihm von den Nachteilen (schwer zu implementieren, negative Benutzererfahrung, etc.) zu erzählen und dann den Kunden eine letzte Entscheidung treffen zu lassen, wenn er wirklich möchte, dass Sie implementieren es.
Fragen Sie den Kunden, welches Problem diese Funktion lösen oder korrigieren soll. Viele Male ist das Problem real und kann leicht gelöst werden, sie haben nur eine verrückte Vorstellung davon, wie es gelöst werden sollte. Normalerweise basierend auf schlechten Informationen aus zweiter Hand.
Sobald Sie das Problem kennen, sollten Sie in der Lage sein, mehrere praktische Lösungen vorzuschlagen.
Sie werden gelegentlich auf den Kunden stoßen, der denkt, dass er / sie mehr weiß als Sie und auf einer verrückten Lösung für ein Nicht-Problem oder Schlimmeres besteht. Wenn du nicht wirklich das Geld brauchst oder die Kopfschmerzen haben willst, renn weg, so schnell du kannst.
Was muss ein Programmierer tun?
Die meisten dieser seltsamen / schlechten Ideen / schwer zu implementierenden / unpraktischen Anforderungen haben typischerweise einen tieferen, möglicherweise fehlgeleiteten, aber dennoch realen Grund (zum Kunden). Wenn man diesen Grund besser versteht, ist man besser in der Lage:
Ich persönlich wäre so ehrlich wie möglich. Ich würde die Vorteile / Nachteile der Funktion bereitstellen und sicherstellen, dass der Kunde alle Informationen hat, die für eine gute Entscheidung erforderlich sind.
Letztendlich zahlen sie dafür ... aber Sie müssen zumindest sicherstellen, dass sie informiert sind, wenn sie diese Art von Entscheidungen treffen. Natürlich müssen Sie auch entscheiden, ob Sie mit einer Lösung in Verbindung gebracht werden möchten, der Sie sich widersetzen ... und ich denke, das ist etwas, das jeder Einzelne selbst entscheiden muss.
Das Beste, was Sie tun können, ist, so klar wie möglich zu erklären, warum die angeforderte Funktion eine schlechte Idee ist. Gehen Sie nicht über Bord, da das Aufzeigen von obskuren Fehlern / Problemen mehr schaden als nützen kann (aus eigener Erfahrung). Darüber hinaus, wenn es klar ist, warum das Feature in Frage gestellt wird, könnten Sie alternative Lösungen anbieten, die das Basisproblem adressieren (vorausgesetzt, es ist keine grundsätzlich schlechte Idee).
Solange Sie bezahlt werden möchten, stimmen Sie leider zu, Dinge zu tun, die Sie nicht akzeptieren. Solange Sie sich aufrichtig bemühen, Ihre Bedenken zu kommunizieren (vorzugsweise gut dokumentiert), können Sie nicht viel tun. Wenn Sie Glück haben, wird Ihr Kunde / Arbeitgeber vernünftig sein und das Problem sehen.
Wenn Sie erklären können, warum die Implementierung der Funktion, die ebenfalls hilfreich sein kann, sehr kostspielig ist. Zum Beispiel, wenn jemand sagte, dass diese Funktion $ 1.000.000 kostet, kann es überraschend sein, wie oft jemand eine Anfrage zurücknimmt, weil sie nicht so viel ausgeben wollen, um es zu bekommen.
Tags und Links project-management