Ich arbeite in der IT-Funktion bei einem großen Einzelhändler und wir haben gerade ein Projekt mit dem Unternehmen gestartet, um ein Schlüsselsystem für unsere Website neu zu gestalten.
Die Geschäftsbenutzer wissen, dass sie das System aktualisieren und verbessern möchten. Sie haben einige sehr sehr hochrangige Prinzipien, wie es funktionieren soll, aber das war es auch schon.
Das Management möchte, dass das Entwicklerteam anfängt, "Dinge zu tun", weil Ressourcen verfügbar sind.
Ich kämpfe darum, den besten Weg zu finden, um unsere Zeit als Entwicklerteam zu verbringen. Das Zusammensitzen mit den Geschäftsanwendern hat nicht viel mehr als ein paar sehr hochrangige Prinzipien oder Dinge ergeben, die sie nicht wollen, aber sicherlich nichts, was ich in Betracht ziehen würde, um Anforderungen zu erfüllen.
Wie können Sie die konkrete Implementierung von Funktionen mit vagen Geschäftsanforderungen verknüpfen und sicherstellen, dass das Unternehmen mit den Ergebnissen zufrieden ist, wenn es an technischem Fachwissen mangelt und sich von einem Unternehmen ankauft?
quelle
Antworten:
Aus meiner Erfahrung würde ich keine Minute damit verbringen, mich zu entwickeln. Nicht einmal ein kleines Stück Code. In dieser Phase, in der der Kunde nicht weiß, was er will, ist es wirklich wichtig, gute Beratung zu leisten . Es ist für sie genauso wichtig wie für dich.
Hinter jedem Projekt steht ein Bedarf (der manchmal nicht offensichtlich ist) in Bezug auf das Geschäft des Kunden. Um die Notwendigkeit zu klären, müssen Sie zunächst so viel wie möglich über das Geschäft lernen. Dann können Sie den Kunden zu einer funktionalen Lösung führen.
Seien Sie während des Lernens vorsichtig, wenn Sie Bedürfnisse und Wünsche unterscheiden . Welches Kundenbedürfnis kann oder kann nicht dasselbe sein, wie es der Kunde wünscht?
Wenn der Kunde während der Analyse keine Entscheidungen trifft, treffen Sie diese selbst. Als Berater ist es Ihre Aufgabe, Ratschläge zu geben und den Prozess zu leiten .
Wie @Ewan betonte, ist es für die Kunden einfacher, Entscheidungen zu treffen, wenn sie eine Wahl haben. Das Anbieten mehrerer Alternativen (Aufdecken ihrer Vor- und Nachteile) erleichtert die Entscheidungsfindung. Das Verspotten von Prototypen ist eine gute Möglichkeit, einen Überblick darüber zu geben, was Sie für sie vorhaben. Der Kunde hat den ersten Kontakt (und die ersten Gefühle) darüber, wie die Dinge sein werden. Wenn Sie diese Übung der "Kreativität" durchführen, werden Sie schnell die Lichter und Schatten des Projekts sehen, bevor sie zu einem Problem werden.
Versuchen Sie, so viele Rückmeldungen wie möglich vom Endbenutzer zu erhalten . So oft die Person, die wir "den Kunden" nennen, ist es nicht, wer das System benutzen wird . In einer solchen Situation erhalten Sie vom tatsächlichen Endbenutzer ein besseres Feedback. Sie geben Ihnen wertvolle Tipps, was sie brauchen. Wenn Sie genau wissen, wer die richtigen Antworten auf Ihre Fragen geben kann, können Sie die Erwartungen der Kunden erfüllen.
Wenn Sie eine Reihe guter Anforderungen gesammelt haben, fügen Sie diese in den Prototyp ein. Agile Methoden wie SCRUM funktionieren in dieser Phase einwandfrei. Sprints über den Prototyp machen.
Prototypen werden während der Sprints verworfen / modifiziert. Sie können den Kunden auch zu dem "führen", der am besten zu Ihnen passt. ;-). Auf der Suche nach einem Win-Win-Deal.
Ich versuche zu verhindern, dass Manager mit der Entwicklung beginnen, bevor eine genau definierte und messbare Anforderung genehmigt wurde. Andernfalls ist es schicksalhaft, mit undefinierten Anforderungen zu beginnen. Es wird viel Geld und Zeit verschwendet (ohne Garantie, es wiederherzustellen), weil sich jemand entschlossen hat, "das Chaos" zu implementieren. Das Chaos und die Unsicherheit, wo unser so geliebter und verwirrter Kunde gerade lebt.
Es ist schockierend zu sehen, dass Unternehmen, deren Mitarbeiter ihre Arbeit erledigen, Ihnen jedoch nicht (vernünftigerweise) erklären können, wie . Es ist auch schockierend zu sehen, wie viele Projektmanager sich nicht für dieses Problem interessieren. Sie sagen einfach "Ja zu allen" oder "Lass uns anfangen und wir werden sehen, was passiert".
Schließlich wies @Ewan erneut auf den wichtigsten Punkt hin.
Vergessen Sie nicht, klar zu definieren, welche Anforderungen und Bedingungen erfüllt sein müssen, um zu sagen, dass das Projekt abgeschlossen ist . Die Annahmebedingungen
Keine Notwendigkeit zu sagen warum.
quelle
Schreiben Sie ein Dokument mit 2 oder 3 Lösungen wie folgt:
"Um 'High Level Principal x' zu erreichen, schlagen wir 'Technical Solution y' vor, was 'die technische Lösung bewirkt'"
Lassen Sie den Kunden die gewünschten und implementierten abmelden.
quelle
Es ist schwierig zu raten, ohne die Stimmungsmusik genau beurteilen zu können.
Entweder:
Oder:
Natürlich ist das 2. Szenario vorzuziehen. Sie können einige Designs mit Drahtrahmen versehen und damit im Schmutz rollen, bis Sie eine Art Plan haben.
Wenn Sie das erste Szenario behandelt bekommen, stellen Sie absolut klar, dass die Dinge, die Projekte immer und immer wieder töten, wollige Anforderungen sind und kein Konzept von "erledigt" haben. Sicher, das Projekt wird irgendwann fertig sein, aber wie viel Geld wird vorher angezündet worden sein?
quelle
Irgendwann benötigen die Entwickler eine Reihe von Anforderungen, mit denen sie eine Anwendung entwickeln und später prüfen können, ob sie den Anforderungen entspricht oder nicht. Und dann erstellen sie eine Anwendung, die die Anforderungen erfüllt.
Und es ist eine wirklich, wirklich gute Idee, Anforderungen zu haben, bei denen eine Anwendung, die die Anforderungen erfüllt, dem Unternehmen zugute kommt :-)
Jemand muss diese Anforderungen erstellen. Die Eigentümer des Geschäfts können nicht. Die Entwickler wollen nicht. Die Entwickler versuchten, die Eigentümer des Unternehmens dazu zu bringen, Anforderungen zu erstellen, waren jedoch nicht erfolgreich. Dennoch muss jemand diese Anforderungen erstellen.
Sie können versuchen, jemanden in der Firma zu finden und ihn zu seinem Job zu machen. Nicht wie die Entwickler es zuerst taten, indem sie versuchten, nach Anforderungen zu fragen, aber scheiterten, sondern eine Person auswählten und sie zu ihrem Vollzeitjob machten. Wenn das Entwicklungsteam der Ansicht ist, dass es die Anforderungen erstellen kann, schlagen Sie es dem Unternehmen vor und weisen Sie den Auftrag und die Berechtigung dazu zu.
In jedem Fall ist es Aufgabe einer Person, die Anforderungen zu erstellen. Und es muss klargestellt werden, dass, wenn das Entwicklungsteam die Anforderungen erstellt, die Anforderungen das sind, was das Unternehmen erhält, und wenn es ihnen nicht gefällt, müssen sie sicherstellen, dass die Anforderungen geändert werden. Tun Sie dies am besten, bevor die Entwicklungsarbeit beginnt.
Und Sie müssen den Menschen keine Wahlmöglichkeiten geben. Sie können ihnen sagen, dass in den Anforderungen enthalten ist, was passieren wird, und sie können sich entweder abmelden oder sich beschweren und die Anforderungen können geändert werden.
quelle
Wenn Sie der Meinung sind, dass ein Prototyp zu poliert ist und den Kunden verwirrt, skizzieren Sie ihn einfach. Sie können mehrere Versionen haben, wenn Sie der Meinung sind, dass dies den Client dazu auffordert.
Dies erfüllt die Anforderungen des Managements, dass Sie Dinge erledigen müssen, ohne eine Menge Code zu erstellen, den Sie wegwerfen werden (wenn Sie wissen, was für Sie gut ist.).
Der Kunde muss auch wissen, dass er für diese Art von Dingen bezahlen muss. Ansonsten gibt es wenig Anreiz, sie für das Projekt zu gewinnen. Es kann den Besprechungen zugute kommen, wenn Sie diejenigen eingrenzen können, die wirklich am Projekt und an der Entscheidungsfindung beteiligt sind, ohne dass viele Leute ihre nutzlosen Vorschläge einbringen, die die Dinge nur verlangsamen.
quelle
Lassen Sie uns ein Gedankenexperiment machen: Stellen Sie sich vor, Sie möchten ein Haus von Grund auf bauen und wissen nichts über das Bauen. Wie beschreiben Sie dem Builder die Anforderungen? Selbst wenn Sie könnten, wären es wahrscheinlich vage Aussagen wie "Ich möchte sicherstellen, dass ich viel Stauraum habe" und "Ich möchte eine moderne Küche". Natürlich kann nicht erwartet werden, dass Sie alle Vor- und Nachteile kennen: Der Architekt, der die Pläne zeichnet, wird Ihnen eine Menge Fragen stellen und einige Entscheidungen selbst treffen, die den Best Practices der Branche entsprechen.
Hier sind Sie: Jemand hat entschieden, dass er etwas will, aber es fällt ihm schwer, genau zu erklären, was er Ihnen will. Es ist Ihre Aufgabe, mit ihnen zusammenzuarbeiten, um es herauszufinden.
Wenn eine Ressource verfügbar ist und Sie über Prinzipien auf hoher Ebene verfügen, zerlegen Sie diese Prinzipien in User Stories. Von dort aus können Sie eine Liste der zu erledigenden Aufgaben erstellen. Machen Sie unterwegs Vorschläge, aber stellen Sie sicher, dass Sie zuerst die geschäftlichen Anforderungen für das Update vollständig verstehen. Ist die Leistung schlecht? Ist es unsicher? Ist das Design veraltet? Es liegt an Ihnen, mit vielen Details umzugehen, die Ihren Endbenutzern nicht bekannt sind. Dokumentieren Sie die von Ihnen getroffenen Entscheidungen und warum und lassen Sie sie von den Geschäftsbenutzern (oder der entsprechenden Person) abmelden. Jetzt haben Sie Anforderungen!
Denken Sie daran, dass ein Entwickler nicht ständig codieren muss. Er sollte auch einen erheblichen Teil der Zeit planen. Einige der wichtigsten Soft Skills, die ein Entwickler haben kann, stammen aus diesem Prozess, bei dem vage "Geschäftsideen" in ein Arbeitsprojekt umgewandelt werden, das ein Produkt liefert, das den Geschäftsanforderungen entspricht.
Der Bau eines Prototyps ist eine großartige Idee, um spezifisches Feedback zu erhalten, das zu besseren Anforderungen führt. Halten Sie es leicht und einfach: Es gibt Tools (hier eines ), mit denen Sie funktionierende Modelle erstellen können, ohne eine einzige Codezeile schreiben zu müssen.
Sicher kann es: Deshalb ist Kommunikation so wichtig. Erklären Sie, dass es sich immer wieder um einen Prototyp handelt. Schlagen Sie ein Wasserzeichen mit der Aufschrift "ENTWURF" darauf. Geschäftsanwender, insbesondere solche, die nicht technisch versiert sind, werden es unglaublich schwer haben, Ihnen nur Anforderungen zu stellen, insbesondere wenn nichts zu sehen ist. Wenn Sie schnell einen Prototyp erstellen können, mit dem sie spielen können, fällt es ihnen leichter, "Ich bevorzuge das gegenüber dem" zu sagen, wenn Sie ihn sehen.
quelle