Sind By-Design-Bugs ein schlechtes Zeichen?


29

Ist es ein schlechtes Zeichen, wenn Benutzer Fehlerberichte für beabsichtigte Dinge einreichen?

Bedeutet dies in der Regel, dass die Anwendung verwirrend oder unklar ist, oder sollte ich sie nur auf einen einmaligen Benutzerfehler hinweisen, sofern nichts anderes angegeben ist?

(Ich habe eigentlich keine derartigen Berichte. Dies ist eine rein hypothetische Frage, ob das Vorhandensein von "Bugs" durch das Design eine schlechte Sache ist oder nicht.)


19
Vielleicht möchten einige der Programmierer bei Lotus Notes einen Kommentar abgeben, da die Standardantwort lautet: "Es ist kein Fehler, es ist eine Funktion, die Sie nicht verstehen."
James Anderson

5
Es deutet darauf hin, dass die Benutzeranforderungen, die an die Entwickler gestellt werden, nicht mit den Erwartungen der Benutzer übereinstimmen.
Versuch

7
@temptar "Es ist das, wonach ich gefragt habe, aber es ist nicht das, was ich wollte."
StuperUser

5
Kürzlich wurde mir ein "Bug" -Workitem für ein Verhalten zugewiesen, das genau das war, was in der Spezifikation ausdrücklich dargelegt wurde (und das in der Spezifikationsphase erörtert wurde). Während das Verhalten aus Sicht des Benutzers durchaus unerwartet gewesen sein kann (eine bestimmte Einstellung, die an anderer Stelle beachtet wurde, wurde ignoriert), sagt die Spezifikation buchstäblich alles andere als "Ignorieren wir das jetzt, um Zeit zu sparen". dann ist es für mich kein Fehler, sondern eine Änderungsanforderung. Sicherlich könnte ein gutes Argument dafür sein, dass dies geändert werden soll, aber nennen Sie es nicht einen Bug .
ein

7
@Dunk: Ich habe ein System implementiert, das jeden Tag 24 Stunden in Anspruch nimmt, weil wir den Kunden nicht von der Existenz der Sommerzeit überzeugen konnten. Sie würden einfach nicht glauben, dass es Tage mit 25 Stunden gibt. Ist das ein Fehler im Programm?
MSalters

Antworten:


54

Ist es ein schlechtes Zeichen? Ich denke, es ist eine Warnung, die es wert ist, untersucht zu werden, aber ich denke auch, dass sie passieren wird.

Wenn Leute irgendeine Art von Feedback an mich senden, versuche ich, es in drei Gruppen zu filtern:

  • Bugs
  • Funktionsanfragen
  • Fehlkommunikation

Bugs

Fehler treten auf, wenn etwas offensichtlich nicht so funktioniert, wie Sie es erwarten, oder wie der Benutzer es erwartet. Es fragte mich nach meinem Namen, ich gab "Scott" ein, drückte die Eingabetaste und sagte: "Hi Joe!"

Funktionsanfragen

Dies ist wie "Ich weiß, wir haben noch nie darüber gesprochen, aber kann das Programm anhand meiner Mausgesten feststellen, dass ich Linkshänder bin und die OK-Taste auf die linke Seite des Bildschirms bewegen?" In diesem Fall entspricht das aktuelle Verhalten sowohl Ihren Erwartungen als auch den Erwartungen des Benutzers , der jedoch die Erwartung ändern möchte.

Fehlkommunikation

In diesem Fall würden Sie ein Ergebnis von einem Szenario erwarten, der Benutzer erwartet jedoch ein anderes Ergebnis. Manchmal wird dies zu einer Feature-Anfrage, wenn sie ihre Erwartungen nicht mitgeteilt haben, dies aber glaubten. Manchmal wird dies zu einem Fehler, wenn sich herausstellt, dass Ihre Erwartungen falsch sind.

Oft haben Sie jedoch Kenntnisse, die der Benutzer nicht hat. Was wäre, wenn sie sagten: "Auf diesem Bildschirm kann ich zweimal einen Datensatz mit demselben Vor- und Nachnamen für mich selbst hinzufügen! Das ist offensichtlich ein Fehler!" Ihre Antwort könnte lauten: "Es gibt viele Menschen auf der Welt mit dem gleichen Vor- und Nachnamen, daher muss diese Kombination nicht eindeutig sein. Wir haben eine Bereinigungsaufgabe, die nachts ausgeführt wird und einen Bericht über mögliche Duplikate per E-Mail an sendet Kundendienst, wenn er glaubt, ein Duplikat mit einem ähnlichen Namen und einer ähnlichen Adresse zu finden, und bittet ihn, es manuell zu überprüfen. "

Sie sollten also jeden Fehlerbericht lesen, aber die meisten komplexen Systeme werden Fehlerberichte haben, die eigentlich nur Funktionsanforderungen oder möglicherweise eine falsche Kommunikation der Anforderungen darstellen. Das Unverständnis über die zugrunde liegende Komplexität der realen Welt ist wahrscheinlich die Hauptursache für diese Probleme.


3
Fehlkommunikation beinhaltet auch das falsche Erinnern (oder das bloße Vergessen) der Erwartungen, die kommuniziert und vereinbart wurden.
Peter Taylor

1
Große Unterschiede, aber ich denke immer noch, dass die Anwendung versuchen sollte, die Fehlkommunikation zu erklären, wenn es geht. Bei mehreren Personen mit demselben Namen könnte die App sagen: "Wir haben bereits 3 John Smiths. Sind Sie sicher, dass es nicht einer von diesen ist?" Mit der Option "Nein, ich bin sicher, dies ist eine neue John Smith".
Alex Andronov

@Alex Andronov - Eine Fehlkommunikation bedeutet nicht, dass keine Maßnahmen ergriffen werden müssen: Ändern Sie entweder die Dokumentation, die QuickInfos usw., aktualisieren Sie das Schulungsmaterial oder geben Sie möglicherweise nur eine kurze Erklärung und fahren Sie fort.
Scott Whitlock

7

Dies wurde in früheren Antworten bisher nicht angesprochen, daher möchte ich hinzufügen, dass dies auch ein Zeichen für eine ignorante Nutzerbasis sein könnte. Ich verwende das Wort "unwissend" nicht abfällig oder herablassend, nur um auszudrücken, dass sie in ihrem Bereich oder in Bezug auf die Komplexität der Software selbst keine ausreichenden Kenntnisse oder Kenntnisse haben.

Die meisten Benutzer sind sich nicht bewusst, wie kompliziert Software sein muss, um bestimmte Anforderungen zu erfüllen. Etwas mit dem Effekt von 80% des Aufwands geht in nur 20% der Funktionalität (Rand- und Ausnahmefälle).

Sie verstehen manchmal nicht, warum sich die Software von Natur aus auf bestimmte Weise verhalten muss, um eine Vielzahl von Fehlern oder Datenverfälschungen usw. zu verhindern.

Dies ist kein Grund zur Sorge, da dies durch klare und präzise Dokumentation und Kommunikation verbessert wird.


2
+1 aber bitte schauen Sie sich den Unterschied zwischen komplex und kompliziert an ... Software muss überhaupt nicht kompliziert sein, ist aber oftmals sehr komplex.
Marjan Venema

Das ist sehr wahr. Der häufigste Fall, auf den ich stoße, ist, dass Benutzer den Unterschied zwischen vielen-zu-eins- und vielen-zu-vielen-Beziehungen nicht erkennen. Eine häufige Anfrage lautet: "Kann der Bericht die Bestellnummer in der Kopfzeile anzeigen?" und ich muss erklären, dass es in etwa 95% der Fälle nur eine Bestellnummer für das Material gibt, an dem sie arbeiten, aber in vielen Fällen kann die Abfrage Daten über mehrere Bestellungen hinweg enthalten. Dann muss ich fragen, ob ich alle Bestellnummern in der Kopfzeile durch Kommas getrennt auflisten soll oder ob ich die Bestellnummer in jeder Detailzeile des Berichts haben möchte.
Scott Whitlock

@ScottWhitlock Ja, es ist dasselbe. Ein guter Entwickler oder Business Analyst sollte dann nicht nur das tun, was der Kunde verlangt, sondern auch versuchen, das Kernproblem aufzudecken, das er hat, warum er eine solche Anfrage überhaupt gestellt hat. Sobald Sie das Problem identifiziert haben, können Sie eine geeignete Lösung finden und entsprechende Anforderungen oder User Stories schreiben.
maple_shaft

5

Wenn Sie einen Benutzer haben, der ein Experte auf seinem Gebiet ist, könnten Sie ein schwerwiegendes Problem haben. Stellen Sie sich vor, ein Buchhalter, der Ihre Software per Design findet, folgt nicht den allgemeinen Buchhaltungsverfahren oder einem Ingenieur, der feststellt, dass Sie eine falsche Formel haben. Dies sollte nicht zu schwer zu erforschen sein, um festzustellen, ob sie korrekt sind. Neugestaltung und Behebung bei Bedarf schnell.

Eine Meinung zu einem bestimmten UI-Feature oder einem Feld, von dem sie denken, dass es ein Währungssymbol oder eine andere Formatierung haben sollte, sollte berücksichtigt werden, zumindest bis Sie mehr Feedback erhalten. Die Recherche könnte etwas schwieriger sein.


1
Dann gibt es wohl keine einzige Antwort. Es sollte von Fall zu Fall beurteilt werden. Das habe ich mir gedacht.
Maxpm

5

Nach meiner Erfahrung führen Bugs dazu, dass Ihre Anwendungsfälle nicht zu Ihren tatsächlichen Benutzern passen. Lesen Sie, wie Sie echte Benutzer für Ihre Anwendungsfälle verwenden (nur die Angabe von Namen und einer Miniaturbeschreibung wirkt sich positiv auf die Qualität der Anwendungsfälle aus.)

Wenn bekannte Betriebssystemhersteller sagen, dass dieses Verhalten beabsichtigt ist, hatten sie im Allgemeinen eine einfache Implementierung oder einen wirtschaftlichen Vorteil im Sinn. Wenn Sie es nicht sind, versuchen Sie, die tatsächlichen Fähigkeiten und die Beziehung Ihrer Benutzer zu Ihrer Software herauszufinden. Verwenden sie es den ganzen Tag? Zum Spass ? Einmal in der Woche, weil es die TPS-Formulare ersetzt?


5

Die Benutzeroberfläche sollte dem Prinzip des geringsten Erstaunens folgen. Wiederholte Fehlerberichte zu einer Funktion, die wie geplant funktioniert, weisen darauf hin, dass dieses Prinzip nicht korrekt eingehalten wurde.


3
Oder dass es eine geteilte Benutzergruppe gibt. Nehmen wir zum Beispiel an, Ihre Webanwendung mimt einen Desktop. Erwarten Sie, dass das Schließen eines Fensters das Programm schließt? Ja für Windows-Benutzer, Nein für Mac-Benutzer.
Keppla

1
@Keppla - Sie machen einen guten Punkt. Sie können nicht jeden zufrieden stellen, daher sind bei "Bugs" wie den hier genannten einige Untersuchungen erforderlich, um sicherzustellen, dass Sie nach dem "Fix" nicht mehr Fehlerberichte erhalten als zuvor.
Joris Timmermans

1
Vielleicht, aber es ist viel leistungsfähiger, die Daten von "Hunderten von Menschen haben Fehler in diesem Bereich gemeldet!" zu zitieren. als es ist, ein paar tollwütige Benutzer zu haben, die Ihnen sagen, dass Sie ihre persönliche Interpretation des magischen Prinzips des geringsten Erstaunens verletzt haben und sie sind erstaunt. Ich bin des letzteren ein bisschen müde, da das "Erstaunen" eines Mannes das "direkte" eines anderen Mannes ist.
Jeff Atwood

@ Jeff Atwood - wie das Sprichwort sagt "eine Schwalbe macht keinen Sommer", "ein Fehlerbericht impliziert keinen Designfehler". Ein einzelner Fehlerbericht zu einer Funktion ist kein Grund für eine Neugestaltung, und selbst mehrere Berichte zu einer gemeinsamen Funktion bedeuten nicht unbedingt, dass die Mehrheit Ihrer Benutzer ohne eine "Korrektur" nicht zufriedener wäre. Vor allem, wenn Ihre ursprüngliche Version bereits beliebt ist und die Leute es gewohnt sind, sie "so" zu verwenden.
Joris Timmermans

2

Es gibt zwei Arten von Fehlern: Die Funktionalität entspricht nicht den Absichten des Programmierers, oder die Funktionalität entspricht nicht den Anforderungen. Programmierer tendieren dazu, sich auf die ersteren zu konzentrieren, was den letzteren schadet. Einfach ausgedrückt, wenn Ihre Benutzer viele "by-design Bugs" melden, entsprechen Ihre Anforderungen nicht Ihren Vorstellungen.


2

Nicht unbedingt. Es kann sein, dass sich der gemeldete Fehler in einer Verwendung der Software befindet, die gerade außerhalb des ursprünglich definierten Bereichs liegt. Betrachten Sie eine Software, die für A, B und C entwickelt wurde (für ein einfaches Beispiel, zeichnen Sie Linien, Dreiecke und Rechtecke). Wenn D ein logischer nächster Schritt ist (z. B. Fünfecke), kann der Benutzer davon ausgehen, dass dies auch getan werden sollte, und dass dies nicht der Fall ist, ist ein Fehler. Wenn dies jedoch außerhalb des ursprünglichen Bereichs liegt, handelt es sich nicht um einen Fehler. Es könnte stattdessen ein Versehen (Fehler) im Design oder ein grauer Bereich in den Spezifikationen oder ein anderer Satz von Annahmen sein, die vom Entwickler und vom Benutzer gemacht werden.

(Bearbeiten - hat meinen Kommentar zu der Antwort gemäß dem Vorschlag von @Marjan Venema hinzugefügt.


Ich sehe das nicht wirklich als Fehlerbericht markiert. Eher wie ein Vorschlag oder eine Funktionsanfrage. (Obwohl es bei einigen Bug-Tracking-Systemen sowieso als eins gelten kann.)
Maxpm

1
Ich stimme zu, die meiste Zeit, aber es kann ein Versehen (Fehler) im Design oder ein grauer Bereich in den Spezifikationen oder ein anderer Satz von Annahmen bedeuten, die vom Entwickler und vom Benutzer gemacht werden.
James McLeod

1
James, wenn du diesen Kommentar zu deiner Antwort hinzufügst, wird die ganze Antwort besser.
Marjan Venema

1

Ich glaube, es ist ein schlechtes Zeichen, hauptsächlich aufgrund der Tatsache, dass das Design nicht generisch ist und die Benutzeranforderungen nicht vollständig verstanden / analysiert werden.

Ich sehe zwei Kategorien von Design, - Design durch Zufall. - Design mit Absicht.

Design aus Versehen führt häufig zu solchen Problemen und kann nicht aufrechterhalten werden.


1

Ich möchte die Antwort von maple_shaft über die "Ignoranz" der Benutzer ergänzen. Sie müssen auch bedenken, dass 90% der Benutzer sich nur um ihre eigenen Erfahrungen und die Art und Weise der Nutzung des Systems kümmern . Sie interessieren sich nicht für andere Benutzer, warum sollten sie? Es ist unsere Aufgabe als Designer / Entwickler, die Beiträge aller Arten von Anwendern zu berücksichtigen und für jeden etwas zu schaffen, das so gut wie möglich passt. Meistens kann man nicht für jeden eine optimale Lösung finden.

Aber natürlich müssen Sie das Feedback Ihrer Benutzer lesen und auswerten! Sie sind schließlich diejenigen, die Ihre Schöpfung benutzen!


0

Die Benutzer, die die Fehleranfragen einreichten, wurden im Allgemeinen nicht zu dem Entwurf konsultiert, sodass es nicht verwunderlich ist, dass sie Dinge als Fehler ansehen, die absichtliche Entwurfsentscheidungen waren. Für einen Benutzer ist alles, was nicht wie erwartet funktioniert, ein Fehler.

Ich habe festgestellt, dass das Problem oft ein Anzeichen dafür ist, dass der BA oder der PM nur Anforderungen von Managern und nicht von tatsächlichen Benutzern hat. Die Erwartungen der Manager an das System unterscheiden sich häufig erheblich von den tatsächlichen Anforderungen der Dateneingabeberechtigten. Mir wurde beigebracht, Daten direkt von den tatsächlichen Benutzern zu sammeln, aber die meisten BAs, auf die ich in letzter Zeit gestoßen bin, sprechen nur mit Managern (und im Allgemeinen relativ hohen Managern).

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.