Es geht nicht um Methoden, sondern um die Kommunikation mit einem Kunden.
Ich hatte viele Situationen, in denen Kunden einem nicht abgeschlossenen Projekt ständig neue Funktionen hinzufügen wollten, und war überrascht, warum dies die Gesamtkosten und Verzögerungen erhöhen würde. Da der Kontext und die Persönlichkeit dieser Kunden unterschiedlich sind, waren unterschiedliche Ansätze erforderlich, aber ich kann versuchen, einige Richtlinien und Ratschläge zu isolieren:
- Stellen Sie sicher, dass ein Kunde Zugriff auf die allgemeinen Informationen hat, die erforderlich sind, um zu verstehen, warum sich eine Änderung einer Anforderung sowohl auf die Kosten als auch auf die Verzögerung auswirken kann . Mit anderen Worten, veröffentlichen Sie einige Artikel über diese Dinge und erklären Sie, was eine nicht-technische Person möglicherweise überhaupt nicht weiß.
Zum Beispiel ist es für die meisten Menschen völlig seltsam, dass eine Änderung, die sie für winzig halten, einen großen Einfluss auf das Projekt haben und sehr teuer sein kann (siehe Beispiel in meiner Frage ). Wenn sie darum bitten, einige Änderungen vorzunehmen, und jedes Mal, wenn Sie ihnen sagen, ohne etwas zu erklären, dass sie Tausende von Dollar zahlen müssten, wenn sie dies kostenlos oder für ein paar Dutzend Dollar erwartet hätten, würden sie wahrscheinlich denken, dass Sie gerecht sind ihr Geld stehlen. Dies gilt insbesondere, da einige unethische Programmierer und Softwareunternehmen nicht wartbare Produkte entwickeln (Sie können also nicht verlangen, dass sie später von einem normalen Entwickler geändert werden) und Sie dann bitten, für jede Änderung zu viel zu bezahlen.
- Stellen Sie sicher, dass ein Kunde verstanden hat , warum sich die gewünschte Änderung auf die Kosten auswirkt . Dazu können Sie ihr die Links zu Ihren Artikeln geben (siehe vorherigen Punkt) oder einfach auf nicht technische Weise zusammenfassen, was erforderlich ist, um eine angeforderte Änderung vorzunehmen.
Solche Erklärungen sind auch eine gute Idee, da sie Ihrem Kunden ein besseres Verständnis des Produkts und der Änderung ermöglichen. In einigen Fällen sagten einige meiner Kunden, dass die von ihnen gewünschte Änderung nicht zu klug sei und dass sie dies auf andere Weise tun würden. Sie können auch Dinge vorschlagen. Es wird von einigen Kunden sehr geschätzt (Warnung: andere hassen es) und zeigt, dass Sie wissen, wovon Sie sprechen (im Vergleich zu dem Code-Affen, der die Anforderungen nur in Code übersetzt, ohne zu viel über die möglichen Ansätze nachzudenken). .
- Stellen Sie sicher, dass ein Kunde nicht tun kann, was er will, es sei denn, er ist sich wirklich sicher. Für einige Leute besteht die einzige Möglichkeit darin, die Anforderungen endgültig zu sperren, bevor mit dem Codieren begonnen wird . Andernfalls ist es eine Katastrophe und das Projekt wird niemals enden . Für andere ist es nur eine gute Idee, niemals ein nicht abgeschlossenes Projekt zu sehen (im Allgemeinen haben meine Kunden sehr früh Live-Zugriff auf das nicht abgeschlossene Produkt, sodass sie auch frühzeitig Kommentare / Anpassungen vornehmen können).
Zum Beispiel hatte ich einen Kunden, der nach dem Senden der "endgültigen" Anforderungen durchschnittlich zehn Mails pro Tag mit zehn Anforderungsänderungen aufgrund geringfügiger Änderungen verschickte ("Können Sie die Rahmenbreite der mittleren Zone auf der Startseite ändern?" von drei auf sechs Pixel? ") zu den Änderungen, die das gesamte Projekt betrafen (nach zwei Monaten Entwicklung, eine Woche vor der Veröffentlichung:" Schließlich halte ich ASP.NET für eine schlechte Idee. Könnten Sie bitte zu PHP wechseln? " ).
Daher mussten wir für diesen Kunden alle Anforderungen sperren, bevor wir Code schreiben konnten. Es wurde im Vertrag geschrieben. Vor der endgültigen Veröffentlichung wurden keine Änderungen akzeptiert.
Schließlich war es nicht so schlimm, da wir seltsamerweise sehr gut organisiert sein durften: Das Projekt wurde gemäß den alten Anforderungen veröffentlicht, und einige Tage später starteten wir die nächste Version von Grund auf mit einem völlig anderen Set von Anforderungen.