Arbeiten mit Kunden, die nicht wissen, was sie wollen

19

Ich habe kürzlich einen Job begonnen, bei dem ich an einem vorhandenen System arbeite. Es erfordert Optimierungen und Updates sowie neuen Code. Ich habe jetzt mehrere Projekte zur Wartung und zum Hinzufügen von Funktionen durchgeführt, und einige davon haben sich erheblich von den tatsächlich angeforderten Projekten unterschieden. Daher musste ich den Artikel mehrmals programmieren, um ihn an die vom Anforderer gewünschte Stelle zu bringen.

Es macht mir nichts aus, die Funktion neu zu programmieren, wenn dies getan werden muss. Ich möchte jedoch die Bearbeitungszeit für meine Projekte verkürzen. Der Engpass scheint in der Wahrnehmung des Antragstellers zu liegen, was getan werden muss. Haben Sie Ideen, was ich tun könnte, um schneller herauszufinden, was der Anforderer benötigt?

Michael K
quelle
1
Das muss besser sein als das Gegenteil: Kunden, die wissen, was sie wollen, aber nicht, was sie brauchen.
Craig
2
Wissen Kunden jemals, was sie wollen?
Dominique McDonnell
6
"Der Kunde weiß nicht, was er will, bis Sie ihm geben, wonach er gefragt hat"
Benjol
Vor langer Zeit fing ich an, mir Gedanken über die Einstellung von Analysten für die organisierte Kriminalität zu machen. "Werden Sie mir sagen, was passiert, wenn der Client nicht in der Datenbank ist, oder muss ich grob werden?"
David Thornley
Bitte befolgen Sie diesen Vorschlag für diese Art von Frage: Organisatorische Aspekte
Maniero

Antworten:

20

Einige Ratschläge:

  • Hören Sie auf Probleme, nicht auf Lösungen . Viele Kunden sagen Ihnen gerne, wie sie ihre Probleme lösen können. Hör ihnen nicht zu. Sie sind der Programmierer und es ist Ihre Aufgabe, Lösungen für Probleme zu finden. Hören Sie stattdessen auf die Probleme der Kunden und finden Sie heraus, wie Sie sie am besten lösen können. Wie andere gesagt haben, wissen Kunden nicht wirklich, was sie wollen, manchmal muss man es ihnen zuerst zeigen.

  • Fragen stellen . Wenn Sie fertig sind, fragen Sie etwas mehr. Kunden kommen selten mit Details in Kontakt, da sie nicht wirklich darüber nachdenken. Die einzige Möglichkeit, an die benötigten Informationen zu gelangen, besteht darin, sie aus ihnen herauszuholen.

  • Dinge schriftlich festhalten Abhängig von der Situation mit dem Kunden kann dies zu einem späteren Zeitpunkt sehr wichtig sein, wenn sich der Kunde darüber beschwert, wie das, was Sie geliefert haben, "nicht das ist, wonach er gefragt hat". Wenn Sie detaillierte Spezifikationen aufschreiben, können Sie sicherstellen, dass Sie über alle erforderlichen Informationen verfügen, und Unklarheiten zwischen Ihnen und dem Kunden beseitigen.

  • Kommunikation ist der Schlüssel . Sprechen Sie nicht nur mit dem Kunden, holen Sie Informationen ein, schlagen Sie Code aus und sprechen Sie nicht mit ihm, bis es fertig ist. Bleiben Sie immer mit dem Kunden in Kontakt. Stellen Sie während des gesamten Vorgangs Fragen. Zeigen Sie ihnen die Fortschritte, die Sie erzielt haben, und erhalten Sie Feedback. Auf lange Sicht wird es allen das Leben leichter machen.

GSto
quelle
2
Hervorragende Liste, insbesondere Punkt 1. Viele Kunden werden fragen: "Können Sie hier eine Schaltfläche hinzufügen, die X enthält?". Wenn Sie jedoch weitere Fragen dazu stellen, warum die Schaltfläche gewünscht wird, finden Sie dies heraus, da sie versuchen, einige Probleme zu lösen Problem haben sie mit einer ganz anderen Funktion.
GroßmeisterB
2
Eine kleine Ergänzung zum ersten Punkt: Wenn sie eine Funktion zur Erleichterung einer Aufgabe benötigen, fragen Sie, ob Sie sehen können, wie sie die Aufgabe jetzt ausführen. Dies kann es viel einfacher machen, das eigentliche Problem zu erkennen und mögliche Fallstricke zu erkennen.
Glenatron
@glenatron: Das ist eine sehr gute Idee. da es mir unmöglich ist, das gesamte system zu lernen.
Michael K
@Gsto: Sprechen Sie bei # 2 davon, dass der Programmierer die Anforderung mit der Eingabe des Clients schreibt oder dass der Client sie schreibt? Eines der Probleme, die ich habe, ist, dass die schriftliche Anfrage des Kunden ungenau ist.
Michael K
Ich lasse den Kunden oder Anforderer oftmals wirklich beweisen, dass die Funktion oder Änderung eine Notwendigkeit ist und die Dinge verbessern wird. Möglicherweise haben Sie diesen Luxus nicht, aber wenn Sie den Kunden oder Antragsteller dazu bringen können, Ihnen zu zeigen, dass er vollständig versteht, warum er die Änderung wünscht und wie sie anderen zugute kommt, können Sie möglicherweise eine Alternative anbieten, um ihre Bedürfnisse zu erfüllen wollen.
Josaph
5

So ziemlich jedes Selbsthilfebuch, das Sie über Kommunikation lesen, wird Ihnen eine Variation davon bieten:

  • Erst verstehen, dann verstanden werden

Das kommt aus dem 7-Gewohnheiten-Buch, aber alle sind Variationen der " Active Listening " -Methode. Das Ziel ist es nicht nur zu verstehen, sondern ihnen zu kommunizieren, was Sie verstanden haben.

Sobald ich denke, dass ich eine gute Vorstellung davon habe, was sie brauchen (meiden Sie, was sie wollen, insbesondere wenn sie Implementierungsdetails beschreiben - das ist nicht Ihre Aufgabe), gebe ich ihnen Beispiele für Geschichten von verschiedenen Personen, die das System verwenden, und versuche, dies zu tun das lebt mit ihnen.

Dann setze ich das um und erwarte, dass sie, sobald sie das Feature gesehen haben, feststellen, dass es nicht genau das ist, was sie wollen. Halte alles flexibel. Die einzige Konstante ist die Veränderung. Normalerweise werden die meisten Ecken und Kanten nach dem zweiten schnellen Update nach dem ersten bearbeitet, aber ich stelle immer fest, dass ich mich asymptotisch einem Ideal annähere, das ich nie erreichen kann. Schließlich müssen Sie die unwichtigen Dinge loslassen und zu höherwertigen Zielen übergehen.

Scott Whitlock
quelle
4

Ich fühle deinen Schmerz....

Die schlechte Nachricht ist: Abhängig davon, mit welcher Art von Kunden Sie gerade zu tun haben, kann dies das übliche Geschäft sein.

Ein allgemeines Problem ist grundsätzlich, dass Kunden nicht wissen, was sie wollen . Sie wissen normalerweise, was sie in Bezug auf ein Geschäftsziel erreichen möchten, aber sie wissen oft nicht, wie es in Bezug auf die Softwarelösung aussehen soll. In vielen Fällen befinden Sie sich also in diesem iterativen Zyklus, in dem ein Projekt fünfmal so lange hin und her springt wie die ursprüngliche Schätzung, da der Kunde ständig seine Meinung ändert und eine Optimierung und Neuoptimierung der Lösung wünscht. Und ja, es ist nicht ungewöhnlich, dass sich das Endergebnis in etwas völlig anderes verwandelt als das ursprüngliche Ziel.

Ich hatte vor ein paar Jahren ein episches Beispiel dafür - ein Projekt, das ursprünglich 10 Wochen brauchte, um Code zu erstellen, verwandelte sich in eine 15-monatige Wiederholung. In diesem Fall lag es hauptsächlich daran, dass verschiedene Manager und Abteilungen des Kundenunternehmens unterschiedliche Anforderungen stellten. Sie schickten die Arbeit immer wieder zurück, um sie zu optimieren und erneut zu optimieren (unsere Software basiert auf Abonnements, und dies war ein wichtiger Kunde.) war keine finanzielle Belastung für uns - nur ein großer technischer Ärger wirklich).

Mein Rat lautet also im Grunde:

Wenn dies die Art und Weise ist, wie Ihre Branche und diese Kunden sind (das ist ein großer WENN), dann gewöhnen Sie sich einfach daran. Stellen Sie es sich als einen agilen, wartungsorientierten Job vor (so ist mein aktueller Auftritt mehr oder weniger). :)

Wenn dies nicht die Art und Weise ist, wie die Dinge getan werden sollen, und Sie die Schuld für die langen Umwege auf sich ziehen, dann sprechen Sie mit Ihren Vorgesetzten. Erklären Sie ihnen, dass es Kommunikationsprobleme gibt und dass die Spezifikationen, die Sie von den Kunden erhalten, nicht klar genug sind, um die gewünschte Lösung zu implementieren. Sie möchten sich nicht in einer Situation wiederfinden, in der Sie die Schuld dafür tragen, dass Sie den Kunden nicht das geben, was sie wollen, wenn Sie nicht alle erforderlichen Informationen erhalten, um ihnen das zu geben, was sie wollen.

Bobby Tische
quelle
1
Das ist hier eigentlich ganz normal, aber ich möchte es zumindest für meine Projekte ändern. Ich denke, viele dieser Anfragen könnten viel schneller bearbeitet werden - eine einfache Anfrage könnte 3-4 (oder mehr) Wochen in Anspruch nehmen.
Michael K
2

Zuallererst sollten Sie akzeptieren, dass Kunden erst dann wirklich wissen, wonach sie suchen, wenn sie es sehen. Sie können Ihnen jetzt mitteilen, dass sie Feature X benötigen. Zeigen Sie ihnen Feature X, und Sie werden feststellen, dass sie Feature Y oder eine andere Variante von Feature X wirklich benötigen.

Ein guter Weg, um schneller herauszufinden, was der Kunde wirklich will, besteht darin, das Agile Manifest zu akzeptieren und zu befolgen , das sich auf Kommunikation und Zusammenarbeit mit dem Kunden konzentriert. Teilen Sie den Entwicklungszyklus in Iterationen auf und zeigen Sie dem Client an jedem Ende der Iteration einen Prototyp des Features. Auf diese Weise erhalten Sie sofortiges Feedback und können es gemäß dem Feedback des Kunden ändern, ohne zu viel Ressourcen in das Feature investieren zu müssen. Auf diese Weise sind sowohl Sie als auch der Kunde mit dem Ergebnis des Produkts zufrieden.

Ich bin mir ziemlich sicher, dass die Umstellung für Ihr Team oder Ihr Unternehmen schwierig sein wird, aber es ist eine der besten Möglichkeiten, um sich schnell ändernden Anforderungen gerecht zu werden.

Terence Ponce
quelle
1
+1 für "Zunächst sollten Sie akzeptieren, dass Kunden erst dann wirklich wissen, wonach sie suchen, wenn sie es sehen." Und das ist keine schlechte Sache. Einige der schlimmsten Projekte, an denen ich gearbeitet habe, waren diejenigen, an denen sie jemals versucht haben, herauszufinden, was sie wollten, bevor sie Entwickler involviert haben. Ob Sie es glauben oder nicht, mehrere Iterationen sind oft schneller als massives Upfront-Design.
Jon Hopkins
1

Viele, viele ähnliche Geschichten finden Sie hier . Ich habe noch nie einen Kunden gefunden, der genau wusste, was er wollte, auch nicht als Subunternehmer für ein anderes Entwicklungsunternehmen.

Ich bin glücklich genug, mit jemandem zusammenzuarbeiten, der eine wirklich gute Vorstellung davon hat, was er NICHT will oder vermeiden will. Normalerweise kann ich von dort aus an etwas arbeiten, mit dem sie zufrieden sind.

Meine Erfahrung liegt jedoch hauptsächlich in der Entwicklung von Anwendungen und Plattformen. Zum Glück muss ich mich selten mit ästhetischen Problemen befassen, wie es Webdesigner tun.

Tim Post
quelle
1

Nach vielen nervigen Umschreibungen betreibe ich nun das, was ich als vollständige Offenlegung bezeichne.

Nachdem ich die Anforderungen und Wünsche der Kunden besprochen habe, schreibe ich immer auf, was ich als gewünscht empfinde und wie ich vorgehen werde, um diese Anforderung zu erfüllen. Ich schicke ihnen dann, was ich geschrieben habe, und warte, bis sie zustimmen, bevor ich mit der Arbeit beginne.

Wenn es ein großes Projekt ist (mehr als 5 Tage Arbeit), werde ich auch Prototypen erstellen. Dies gibt ihnen die Möglichkeit, ihre Meinung zu ändern, ohne dass sich mein Code massiv ändert.

Es funktioniert nicht immer, aber ich bin in einer Position, in der der Kunde weiß, dass er seine Meinung ändert und nicht, dass ich es falsch umsetze.

Gruffputs
quelle