Überprüfung der Benutzeranforderungen, wie?


8

Meine Frage lautet: Wie können Sie die Anforderungen der Benutzer früh im Softwareerstellungsprozess überprüfen?

Ich zeige die Benutzerspezifikationen, Prototypen, Demos ... aber dennoch vergessen Benutzer, einige "unbedeutende Details" über den Prozess oder die Geschäftsregeln und Daten mitzuteilen. Was nach dem letzten Test als einige "wirklich kleine und seltene Ausnahmen" auftaucht - die in Änderungswünsche umgewandelt werden und viel Arbeit ansammeln.

Wie können Sie die Anforderungen der Benutzer zu Beginn des Projekts prototypisieren (oder überprüfen)?

Antworten:


2

Verwenden Sie eine iterative Entwicklung , die Sie zu häufigem Feedback an den Kunden / Benutzer zwingt .

Verbessern Sie auch die Zusammenarbeit zwischen Entwicklern und Benutzern, indem Sie (normalerweise nutzlose) Zwischenprodukte wie Projektmanager oder sogar Geschäftsanalysten entfernen (letztere können in sehr komplexen Geschäftsbereichen sehr erforderlich sein).

Das sind nur ein paar Empfehlungen. Zu diesem Thema gibt es viel zu sagen.

Ich empfehle Ihnen dringend, sich Scrum anzuschauen . Was mein Leben gerettet hat.


Iterativer Prozess. Es ist sehr gut, aber es schließt immer noch nicht die "kleinen Details" aus, die in einer späten Iteration auftauchen ... wo Sie viel Code ändern müssen, um diese "kleinen Details" zu integrieren.
user7876

Wie vorgeschlagen, können Sie diese kleinen Details im Allgemeinen reduzieren, indem Sie die direkte Zusammenarbeit verbessern. Dies wird sie nicht auslöschen. Sie müssen akzeptieren, dass Sie diesen Fällen erneut begegnen und dass die einzige Möglichkeit, sie zu behandeln, darin besteht, Änderungen zu akzeptieren. Eine Funktion wird nicht wie gewünscht implementiert? Dies wird in der nächsten Iteration behoben.

5

Beginnen Sie damit, Intermediates wie Business Analysten nicht loszuwerden, da diese tatsächlich darin geschult sind. Wenn Sie keine solchen Leute haben, akzeptieren Sie, dass mindestens einer Ihrer Entwickler diese Fähigkeit entwickeln muss.

Sammeln Sie im Laufe der Zeit eine Reihe von Instinkten über die Art von Dingen, nach denen Menschen häufig spät in Projekten fragen, und bringen Sie sie zu Beginn des Projekts ins Gespräch. "Wird der Rabatt für alle Bestellungen immer gleich sein oder variiert er je nach Kunde?" "Kann jeder Benutzer jeden Bericht sehen oder sind einige nur für Vorgesetzte?" "Ist die Umsatzsteuer immer gleich oder hängt es davon ab, wo der Kunde ist?" und so weiter.

Versuchen Sie außerdem, Ihren Code so zu schreiben, dass er von solchen Änderungen, die zu spät kommen, isoliert ist, da einige, egal was passiert, immer noch zu spät kommen. Wenn Sie in den Klick-Handlern für Ihre Schaltflächen Geschäftslogik haben, schaden diese Änderungen wirklich. Wenn Sie eine Geschäftslogik in einer bestimmten Klasse haben, deren Name es Ihnen leicht macht, sie zu finden, und Sie den Polymorphismus nutzen können, um beispielsweise regelmäßige Bestellungen und Eilaufträge zu erhalten, und jede Bestellung ihre eigenen Versandkosten berechnet, dann die Änderung, die sie haben gefragt ist viel weniger schmerzhaft.

Sie können verspätete Änderungen nicht verhindern. Gesetze ändern sich, Geschäftstreiber (Kunden, was der Verkauf verspricht, die großartige Idee, die der CEO hat, wenn er etwas im Flugzeug liest) ändern sich. Verhindern Sie, was Sie können, und nehmen Sie den Rest an, indem Sie Ihren Code so gestalten, dass er geändert werden kann.


Ich habe immer nicht verstanden, wie ein Entwickler ohne diese Fähigkeiten ein erfolgreicher Entwickler sein kann. Beschäftigen große Unternehmen wirklich Leute, um für Entwickler zu denken, und lassen Sie ihre Entwickler dann zu überbezahlten Schreibkräften werden?
Michael Shaw

3

Sie müssen wirklich nur sicherstellen, dass Sie die dort aufgeführten Kriterien erfüllen. Wenn beispielsweise "Funktionalität x sollte für alle Benutzer verfügbar sein" angezeigt wird, stellen Sie sicher, dass dies der Fall ist.

Zu Beginn des Entwicklungsprozesses wird dies schwierig sein, aber je näher Sie an der Frist sind, desto mehr sollten Sie in der Lage sein, dies zu überprüfen.

Vielleicht können Sie die Dinge, die Sie noch nicht implementiert haben, überprüfen, ob sie in den Entwurfsüberlegungen enthalten sind, damit Sie wissen, dass sie während der frühen Entwicklung berücksichtigt werden.


Das Problem ist: Benutzer warten normalerweise, bis sie die laufende Software haben, und denken dann über Details nach. Es ist eigentlich die logische Denkweise. Zuerst das Wichtigste als die Details. Für Software sind Details jedoch genauso wichtig wie die Hauptlogik.
user7876

Warten Sie ... sprechen Sie über Benutzer, die überprüfen, ob ein Programm für ihre Bedürfnisse oder Entwickler erstellt wurde?
Chris

Benutzer haben die Anforderungen - Entwickler erstellen die Software. Es ist egal, wer was überprüft, das Problem ist, dass wir viele Zeilen codieren und sie dann ändern müssen, weil sich die Anforderungen ändern (oder fehlen) - Frage: Wie vermeide ich das?
user7876

Agilerer / iterativer Entwicklungsprozess. Kleinere Entwicklungszyklen ermöglichen eine regelmäßigere Überprüfung / Validierung Ihrer Codebasis === Ihrer Spezifikationen.
Chris

1
Es ist nicht so, dass der Code nicht den Spezifikationen entspricht. Das Problem ist, dass die Spezifikationen nicht vollständig sind. Da nichts aufgeschrieben ist, wird es von niemandem erkannt, bis der Endbenutzer das Programm vor sich hat und feststellt, dass es sich um ein bestimmtes Programm handelt Arbeitsweise ist nicht implementiert.
Michael Shaw

2

Ich erinnere mich, dass ich in einem Geschäftstreffen war und einer der Geschäftsanalysten sagte, dass es großartig sein muss, ein Entwickler zu sein, der immer eine feste Spezifikation hat, an der er arbeiten kann.

In der realen Welt gibt es einige Dinge, die dabei sehr hilfreich sind. Die erste besteht darin, zu akzeptieren, dass diese Details in letzter Minute eine Tatsache des Lebens sind. Die einzige 100% vollständige Spezifikation des Endprodukts ist der Quellcode. Wenn der Kunde dies bereits hat, müssen Sie es nicht schreiben, oder?

Das zweite, was zu tun ist, ist aktiv zu versuchen, die fehlenden Spezifikationsdetails auszuspülen. Jetzt könnten Sie versuchen, den Kunden dazu zu bringen, 300-seitige Use-Case-Dokumente und andere vertragliche Mechanismen abzumelden, aber am Ende kann ich mit 100% iger Sicherheit sagen, dass der beste Weg darin besteht, Ihren Kunden Software zu liefern. Lassen Sie sie es überprüfen, verwenden und aktiv ermutigen, die Spezifikation an ihre Bedürfnisse anzupassen (und sie gegebenenfalls für die Arbeit zu belasten). Auch wenn nur einige der Funktionen implementiert sind, ist Kundenfeedback der Schlüssel.

Der dritte, wenn Sie die Spezifikation lesen, überlegen Sie, was diese Anforderung ändern würde und wie Sie mit Variationen umgehen könnten. Es ist oft nicht sinnvoll, Änderungen zu überentwickeln, die möglicherweise nicht angezeigt werden, aber einen Plan zu haben und ebenso wichtig, nicht in zusätzlichen Schwierigkeiten zu entwerfen, wird Ihr Leben viel einfacher machen - und die zusätzlichen Brownie-Punkte, um cool zu bleiben und selbstbewusst zu sein, wenn Sie sagen "Wir können das schaffen, bis ... und es wird ungefähr 4 Tage dauern." wird andere dazu inspirieren, Vertrauen in dich zu haben.


2

Ich denke, Sie dürfen die andere Seite nicht vergessen. Für jeden Benutzer ist es schwierig, eine vollständige Liste der gewünschten Details zu erstellen. Denken Sie an sich selbst, Sie denken die ganze Zeit an neue Dinge.

Es ist unglaublich schwer, alle Anforderungen und Details von etwas zu finden, von dem Sie nur eine vage Vorstellung haben. Ich glaube nicht, dass jemand das kann.

Ich habe hier ein Buch aus den 70ern mit dem Titel "Warum Softwareprojekte scheitern". Wenn ich in Blogs lese und IT-Magazine bekomme, lese ich auf dem Cover "Warum Softwareprojekte scheitern". Und wenn ich den Buchinhalt mit den aktuellen Auflistungen vergleiche ... hat sich nichts geändert. Iterative Entwicklung: Ja, viele Variationen und es hilft auf einer bestimmten Ebene. Aber nach all dieser Zeit haben die Inhalte der Magazine die gleichen Umschläge. Wenn Sie mir nicht glauben, graben Sie etwas Magz aus der Vergangenheit aus und sehen Sie, wie Sie den Text kopieren und in das Jetzt einfügen können.

Dieses Problem ist auf IT-Seite nicht lösbar. Wir haben neue Tools, Prozesse, Checklisten, Anforderungsanalyseschemata, (Geschäfts-) Anwendungsfälle, Entwicklungsframeworks, BPM, SOA erfunden, wie Sie es nennen, und es besteht immer noch das gleiche Problem ...

Sie müssen dies um den Anforderungsspezifizierer herum optimieren. Sie müssen diesen Menschen also die geeigneten Werkzeuge geben, damit sie ihr Niveau verbessern können:

Also zB für diese Personen: Spezifikationsmuster sofort einsatzbereit, Eingaben von anderen Projekten und Unternehmen, die die gleiche Kopie ihrer Endergebnisanforderungen und Lektionen erstellen, bringen Leute hinein, die durch den Dreck gegangen sind, und können dieser Person helfen, die Dinge zu spezifizieren Das hat die größten Probleme verursacht und ist nicht "trivial", sondern kann erst danach erlernt werden (z. B. leitende technische Berater, die das gleiche bei anderen Unternehmen tun). Geben Sie diesen Personen Anforderungen an Komponistenwerkzeuge für Versicherungen, Banken, Telekommunikation usw. : Erfinden Sie keine eigenen Prozesse. Kaufen Sie die generischen Prozesse sofort. Sie benötigen Tools, genau wie Entwickler Tools, Muster und Frameworks benötigen.

Löst es nicht, verbessert es aber erheblich. IMHO sollte die Verbesserung in diesem Bereich und nicht später erfolgen.

Genau wie ein Entwickler versuchen diese Personen nur, das Beste zu geben, was sie können. Aber im Gegensatz zu Entwicklern auf ihrem Gebiet sind die meisten Dinge, die wir nach 30 Jahren für selbstverständlich halten, in diesem Bereich nicht einmal vorhanden. Im Allgemeinen sind ihre Werkzeuge Outlook, Excel, Word und ein Board. Ihre Prozesse sind Brainstorming-Sitzungen. In diesem Bereich kann viel verbessert werden. Natürlich besteht das Problem hauptsächlich darin, dass sie "außerhalb" der IT sitzen, sodass selbst Pläne des CIO, die Situation in diesem Bereich zu verbessern, auf taube Ohren stoßen ... aber das ist eine andere Frage: Wie kann man das "verkaufen"?


1

Hühnerei-Problem

Was Sie zu kämpfen haben, wird in der Phase der Analyse der Softwareanforderungen als Hühnerei-Problem bezeichnet . Clients teilen keine Anforderungsdetails, da sie die Detailarchitektur nicht kennen, und Architekten können keine Detailarchitektur erstellen, da sie nicht alle Details der Anforderungen kennen.

Twin-Peak-Lösung

Es gibt jedoch eine bekannte Lösung für dieses Problem. Das ist ein Twin-Peak-Modell. In diesem Modell müssen Sie mehrere Iterationen der Kommunikation mit Kunden durchführen, angefangen von allgemeinen Anforderungen bis hin zu spezifischen Anforderungen, und Sie müssen Ihre Architektur von allgemeinen zu spezifischen Details weiterentwickeln.

Geben Sie hier die Bildbeschreibung ein

Vorteile des Twin-Peak-Modells:

  • Die Anforderungen berücksichtigen Systemgrenzen
  • Schnelle Entwicklung von Designalternativen
  • Schnelle Erstellung von Prototypen
  • Effiziente Entwicklung der Architektur durch Nutzung vorhandener Lösungen
  • Die Arbeitsbelastung der Anforderungen kann anhand des ersten groben Architekturplans geschätzt werden
  • Kostensenkung, da vor der Entwicklung der Lösung „unrealistische“ Anforderungen identifiziert werden
  • Risikominderung in der Entwicklung

Referenz


1
Eine der zuverlässigsten Analysemethoden besteht darin, dass ein Analyst den Auftrag, den er analysieren muss, tatsächlich ausführt oder bereits Erfahrung darin hat. Das Problem der vollständigen Kommunikation der Anforderungen tritt zu einem erheblichen Teil auf, weil viele Analysten (oder IT-Experten, die sich mit Analysen befassen müssen) nur wenig oder gar keine operative Erfahrung haben, um die Fähigkeiten in der Analyse zu ergänzen.
Steve

0

Sie müssen den Benutzern mitteilen, dass die Kosten umso höher sind, je später im Projekt eine „Anforderung“ identifiziert wird. Sie können entscheiden, dass sie die Änderung doch nicht wirklich brauchen. Wenn sie auf den Änderungen bestehen, aber die zusätzlichen Kosten / Zeitverzögerung ablehnen, haben Sie ein Problem, das verhandelt werden muss. Dies wird nicht durch Technologie oder Planung gelöst, sondern durch Vertriebs- und Kundenbeziehungsmanagement.

Es ist die beste Wahl, ständig funktionierende Software vor sich zu haben UND von ihnen zu verlangen, dass sie sich die Mühe machen, sie zu verwenden / zu testen / zu bewerten . Sie werden Verträge, Spezifikationen, Diagramme und User Stories nicht vollständig verstehen.

Dies ist Teil des Joel-Tests. Schnappen Sie sich jeden, den Sie finden können, um die Software während des gesamten Entwicklungsprozesses so oft wie möglich zu testen.


0

Wenn Sie die Arbeit wirklich richtig machen möchten, bevor Sie mit der Arbeit an Code oder dem Entwerfen einer Architektur beginnen, setzen Sie sich mit einigen der Personen zusammen, die die Benutzer Ihres Codes sein werden (nicht deren Management oder andere übergeordnete Stakeholder), und holen Sie sich diese um Ihnen zu zeigen, wie Sie ihre Arbeit machen. Idealerweise erledigen Sie den Job tatsächlich für ein oder zwei Tage. Dadurch erhalten Sie ein Verständnis für die Funktionsweise des aktuellen Systems und die Art der Personen, die dies tun. Es zeigt Ihnen auch die Frustrationen, die sie mit dem aktuellen System haben, und die Dinge, die ihre Produktivität beeinträchtigen. Sie müssen auch all die täglichen Probleme und Belästigungen hören, was bedeuten kann, dass Sie das Notwendige tun müssen, um sicherzustellen, dass das Feedback bei Ihnen oder Ihrem Designteam aufhört, wenn die Idee besteht, ihre Ansichten an andere Mitglieder ihrer Organisation weiterzugeben wahrscheinlich das zu hemmen.

Für jede Benutzergruppe muss jemand, der an der Entwicklung dieses Teils der Software arbeitet, dasselbe tun. Dann können Sie sich alle treffen und diskutieren, was Sie in den Rollen gelernt haben, die Sie beschattet haben, um zu sehen, ob es Bereiche mit Überkreuzungen gibt und wie Sie die Dinge für alle Beteiligten am einfachsten machen können.

Ich schlage nicht vor, dass dies andere Anforderungserfassungsprozesse ersetzt, aber es ist eine Ergänzung, mit der Sie verstehen, was die tatsächlichen Benutzer von Ihrem System benötigen. Unabhängig davon, was das Management für erforderlich hält, sind die Manager und Geschäftsanalysten wahrscheinlich nicht die tatsächlichen Benutzer des Systems. Wenn Sie jedoch dafür sorgen können, dass das System für diese Benutzer gut funktioniert, werden sie produktiver und die Manager glücklich und zufrieden Damit Ihr Unternehmen gut aussieht.

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.