Sehr häufig haben wir Feature-Anfragen für Felder, die nur ein Kunde wünscht. Dies überfrachtet bestenfalls den Code der Anwendung. Wenn wir einige Monate nach dem Hinzufügen der Felder in ihrer Datenbank nachsehen, stellen wir oft fest, dass sie nicht einmal die zusätzlichen Felder verwenden. Es ist auch eine ziemlich alte Anwendung, daher erfordert das Hinzufügen eines einzelnen Felds mehrere Codeänderungen, das Ändern von Berichten und das Sicherstellen, dass dies keine Auswirkungen auf andere Kunden hat, die das Feld nicht sehen müssen.
Wie können wir sicherstellen, dass ein Kunde diese Funktionsanforderungen tatsächlich benötigt?
Wie sagen wir höflich "das brauchst du nicht wirklich"?
Derzeit werden für bestimmte Funktionsanforderungen Gebühren erhoben. (Bisher waren Feature-Anfragen in der Regel kostenlos.) Können wir sonst noch etwas tun?
Antworten:
Zahlen sie für die zusätzlichen Funktionen? Wenn ja, dann ist es wirklich nicht Ihre Sache, ob sie sie benutzen oder nicht. Gib ihnen, wofür sie bezahlen. Wenn dies jedoch nicht der Fall ist, liegt es an Ihrer Führung, zu entscheiden, ob sie bereit sind, ohne zusätzliches Einkommen weitere Funktionen hinzuzufügen.
quelle
Wir haben eine ähnliche Situation. Die Art und Weise, wie wir damit umgehen, ist der Aufbau einer vertrauensbasierten Beziehung, die uns die Freiheit gibt zu sagen, "das brauchen Sie nicht". Es braucht Zeit, Geduld und man muss darauf vorbereitet sein, viel zu reden und Mittagessen und andere langweilige Aufgaben zu haben. Diese langweiligen Meetings machen sich langfristig bezahlt und Sie können sich darauf konzentrieren, wirklich wichtige Features zu erstellen.
Wenn Sie sprechen, werden Sie auch sehen, ob das, wonach sie fragen, wirklich so wichtig ist.
quelle
Ich glaube nicht, dass Sie sich auf das Thema "Brauchen Sie es wirklich?" Einlassen können. Streit mit Kunden. Persönlich möchte ich fragen: "Wie wird Ihr Unternehmen dadurch mehr Geld verdienen?" Aber die Tatsache ist, dass einige Manager aus irgendeinem Grund nachverfolgen wollen und es gewohnt sind, sich durchzusetzen. Wenn Sie es nicht tun möchten, sagen Sie Nein oder verlangen Sie einen so hohen Geldbetrag, um die Anfrage zu entmutigen.
Überlegen Sie, wie Sie Ihrer Anwendung die Bearbeitung einer größeren Anzahl von Kundenfeldern erleichtern können.
Möglicherweise stellen Sie fest, dass bestehende Kunden das Wachstum Ihres Systems steigern. Die Branche könnte sich verändern, so dass neue Anforderungen auftauchen.
Entschuldigung, aber wenn Sie Ihren Kunden aus technischen Gründen nicht das bieten können, was sie wollen, und nicht profitieren, müssen Sie das Tempo erhöhen. Für einen Neuling wäre es nicht schwierig, mit mehr Feldern in Ihren Markt einzusteigen. Lassen Sie das also nicht zu.
quelle
Als ich für einen Moment von der anderen Seite des Fensters aus schaute, war ich bei meinem letzten Job einem ERP-System ausgesetzt, das es dem Endbenutzer ermöglichte, "benutzerdefinierte" Spalten zu jeder Entität / Tabelle hinzuzufügen. Nach meinen kurzen Interaktionen sah es so aus, als würden sie die Spalten dynamisch einer zweiten Tabelle mit einer Eins-zu-Eins-Zuordnung hinzufügen. Zum Beispiel:
WIDGET-Tabelle mit statischen Spalten:
WIDGETCUSTOM-Tabelle mit benutzerdefinierbaren Spalten:
Die Spalte WIDGET_ID könnte sie zusammenbinden. Ihre zusätzlichen Felder wurden beim Bearbeiten eines Widgets automatisch angezeigt, und Sie können sie in dynamische Berichte aufnehmen oder sogar nach ihnen suchen. Es war ziemlich effizient, da die Datenbank diese weiterhin verfolgen und diese Spalten bei Bedarf indizieren konnte.
Vom Standpunkt der Programmierung aus sehe ich, dass dies vernünftig bleiben würde. Jeder Kunde kann seine eigenen benutzerdefinierten Spalten haben, aber diese benutzerdefinierten Spalten beeinträchtigen nicht Ihre Kernlogik.
quelle
Feature "Anfragen" sind genau das, Anfragen. Wenn sie Anforderungen stellen, müssen Sie entscheiden, wie viel es dem Unternehmen wert ist, die Codebasis damit zu überfrachten. Wenn es zu einem endemischen Problem wird, können Sie es eingrenzen, aber wenn sie bereit sind, das zu bezahlen, was Sie verlangen, oder etwas in der Nähe, und es sind nur ein paar Features, die hier und da zu finden sind, sage ich, gehen Sie mit dem Geld.
Wenn dies ein ständiges Problem mit Ihrem Produkt ist und mehrere Kunden nach solchen Anpassungen suchen, ist es möglicherweise an der Zeit, diese Teile Ihrer App zu überdenken und sie so flexibel zu gestalten, dass die Kunden dazu befugt sind selbst, sei es Ad-hoc-Berichterstattung, flexible Datenerfassung usw. Versuchen Sie, diese Belästigungen in ein Verkaufsargument zu verwandeln. "Unser Bestandsdatenmodell ist nicht gut genug für Sie? Sehen Sie sich unsere Anpassungsoptionen an! Sie können es selbst tun!"
quelle
Sie sollten genau angeben, was Sie in diesem Feature tun werden, und eine geschätzte Zeit zum Erstellen des Features verwenden. Wenn der Kunde zusätzliche Felder wünscht, die in Ordnung sind, stellen Sie diese in Rechnung. Ich sage meinen Kunden, dass es in Ordnung ist, wenn Sie Features hinzufügen möchten, nachdem ich sie erstellt habe, aber in einigen Fällen wird es ein bisschen mehr kosten, sie zu bearbeiten.
Es fällt mir schwer zu verstehen, warum es Ihnen wichtig ist, ob sie es benutzen oder nicht. Es ist ganz einfach: Sie bauen, was sie wollen, und Sie werden dafür bezahlt.
Code Base Clutter? Wenn Sie Ihren Code umgestalten müssen, während Sie mit der neuen Funktion arbeiten, müssen Sie diesen in Rechnung stellen.
quelle
Erstellen Sie eine Liste mit verschiedenen Funktionen, die Sie hinzufügen möchten, einschließlich "nur ein paar zusätzliche Felder". Zeigen Sie die Liste Ihren Kunden und bitten Sie sie um Feedback, welche sie zuerst möchten. Erklären Sie, dass Ihre Ressourcen begrenzt sind und Sie nicht alles auf einmal tun können. Verwenden Sie das Feedback, um zu entscheiden, in welche Richtung Sie mit Ihrer Anwendung gehen möchten.
Wenn ein Kunde darauf besteht , dass die wenigen zusätzlichen Felder sind wirklich , dass wichtige und Sie immer noch entscheiden , sie nicht geben, hoffentlich kann der Kunde noch den Vorteil der Features sehen Sie stattdessen implementieren.
quelle
Es hört sich so an, als ob Sie von einem Pull-System profitieren könnten. Lassen Sie den Benutzer auswählen, welche Funktion als Nächstes implementiert wird, begrenzen Sie jedoch die Anzahl, die zu einem bestimmten Zeitpunkt in der Entwicklung sein kann. Ein Kanban-Board ist dafür großartig. Es kann dem Benutzer das Eigentum an dem Prioritätsprozess geben (auch bekannt als weniger Verantwortung und Stress für Sie). Vertrauen Sie mir, wenn der Benutzer entscheiden muss, welches Feature als Nächstes in die Entwicklung einbezogen wird, da er weiß, dass die anderen Anforderungen beiseite gelegt werden, wird er viel mehr in die Entscheidung investieren, was er wirklich benötigt.
quelle
Ich denke, Sie sollten Ihren Kunden bitten, einen oder mehrere von Ihnen durch einen "Tag im Büro" zu führen, um zu sehen, wie sie die Software wirklich nutzen ... Warten Sie ... Stellen Sie mich für 250 USD / Stunde ein und ich werde es herausfinden. Bitte, bitte nicht vergolden. Lass es einfach funktionieren. Den meisten Unternehmen ist es egal, dass es hässlich aussieht, wenn es gut funktioniert.
quelle
Verfolgen Sie die Anforderungen. Wählen Sie beim Entwerfen / Entwickeln der großen Funktionen eine Handvoll priorisierter Anforderungen aus, die in diese Version aufgenommen werden sollen.
quelle
Erstellen Sie ein Standardverhandlungssystem für Anforderungen. Vielleicht etwas basierend auf einem Fehlerberichterstattungs- oder Feature-Request-System wie fogbugz. Ermöglichen Sie Ihren Kunden, eine Anfrage zu stellen und diese anhand folgender Kriterien zu priorisieren:
quelle
Wenn der Kunde das vollständige Eigentum an der Anwendung hat, tun Sie, was er verlangt. Lassen Sie sie ihr Geld sprengen; Es gehört ihnen.
Wenn dies jedoch nicht der Fall ist, möchten Sie eine Lösung für diese Hilfsfelder suchen, bei der sie außerhalb des Kerndatenmodells gespeichert werden. Sie können dann so etwas wie eine Datenbankansicht verwenden, um die zusätzlichen Felder für diesen bestimmten Kunden wieder zusammenzuführen. (Abhängig von der Art der zu speichernden Daten gibt es verschiedene Möglichkeiten, den Zusatzspeicher zu erstellen. Am einfachsten ist nur eine Tabelle, die denselben Primärschlüssel wie einige PK in Ihrer Haupttabelle hat, die jedoch bei Verwendung ineffizient ist des Feldes ist sehr spärlich. Es ist nur wirklich ein Problem, wenn sie Funktionen des Feldes benötigen, die Dinge wie die Indizierung erfordern.)
Sie können die Kundenanfragen auch verschieben, indem Sie angeben, dass Sie nicht über ausreichende Ressourcen verfügen, um sie zu diesem Zeitpunkt zu implementieren. Es ist wirklich hilfreich, wenn Sie an diesem Punkt auf Ihre Roadmap verweisen, die angibt (Ihre beste Schätzung zu), wann es möglich sein wird, das, was sie wollen, kostengünstig umzusetzen. Und Sie sollten vorrangig darauf achten, die Anwendung in einen Zustand zu versetzen, in dem es möglich ist, die Funktionen kostengünstig zu unterstützen, da diese Metafunktion zu einem Hauptverkaufsmerkmal Ihrer Hauptanwendung wird.
quelle