Verdichtung der Geschäftsanforderungen zu technischen Spezifikationen [geschlossen]


8

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?


4
Es gibt mehrere Bücher darüber, daher ist es zu weit gefasst, um hier richtig beantwortet zu werden. Ich würde vorschlagen, dass Sie nach agiler Entwicklung suchen. Meine Strategie wäre es, die wichtigste Funktion auszuwählen und diese mit den Geschäftsbenutzern zu besprechen, um genügend Details zu erhalten, die Sie in Arbeitselemente aufteilen können, die Ihr Team innerhalb einer Woche realisieren kann. Vorzugsweise bietet jedes Arbeitselement einen kleinen Ausschnitt der Gesamtfunktionalität der Funktion.
Bart van Ingen Schenau

2
Ich wünschte, die Leute würden erklären, warum sie nicht gewählt haben!
Sutty1000

@ Sutty1000 Kannst du die Gründe für die engen Abstimmungen sehen? Das könnte Ihnen eine Idee geben ...
Robbie Dee

2
Der Job, den Sie suchen, ist "Business Analyst". Sie lernen, wie das Geschäft funktioniert, sie nehmen die wenigen Informationen, die der Kunde verlangt, sie wissen, welche Technologie machbar ist, und kombinieren alles, um "Geschäfts" -Anforderungen zu schaffen. Wenn Sie alle geschäftlichen Anforderungen kennen, können Sie mit Ihrem Entwicklerteam sprechen, um die technischen Anforderungen herauszufinden.
the_lotus

1
Ich denke, es ist ziemlich klar, was die Frage ist, und es gibt mehrere formale Antworten, die mit gängigen Entwicklungspraktiken wie Scrum usw. in Verbindung gebracht werden könnten
Ewan

Antworten:


4

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.

Lassen Sie den Kunden die gewünschten und implementierten abmelden.

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.


7

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.


Der Kunde erscheint nicht technisch. Dieser Ansatz ist für das OP praktisch, erzielt jedoch möglicherweise nicht das beste Ergebnis für das Unternehmen.
usr

Das hängt davon ab, wie viel Aufwand Sie in die Auswahl der technischen Lösung gesteckt haben. Nicht die Methode, die Sie wählen, um das Unternehmen dazu zu bringen, dem zuzustimmen
Ewan

4

Es ist schwierig zu raten, ohne die Stimmungsmusik genau beurteilen zu können.

Entweder:

Die Geschäftsbenutzer und das Management erledigen ihre Arbeit nicht und treten den Entwicklern nur die Dose auf den Weg (und so können sie die Entwickler treten, wenn etwas schief geht).

Oder:

Sie sind sich wirklich nicht sicher, was sie wollen und müssen, um vom Entwicklerteam geführt zu werden.


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?


0

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.


0

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.


Der Kunde muss auch wissen, dass er für diese Art von Dingen bezahlen muss - das OP funktioniert für die interne IT-Funktion - es gibt keinen Kunden per se, also keine Dollarkosten, aber ja, es wird Aufwand geben, während die Anforderungen herausgearbeitet werden ...
Robbie Dee

0

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.

Auch ein grundlegender Prototyp kann von Geschäftsanwendern häufig falsch interpretiert werden ...

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.