Idiot Proofing bedeutet für mich nur, sicherzustellen, dass der Benutzer keine Software beschädigen kann, selbst wenn er es versucht. Wenn beispielsweise ein Wert aus einem Textfeld gelesen und in einen doppelten Wert konvertiert wird und die zugrunde liegende Software idiotensicher ist, kommt es nicht zum Absturz, wenn der Benutzer einen nicht doppelten Wert eingibt.
Ich habe kürzlich einen Entwicklungsplan erstellt und eines der Elemente wurde als "Idiot Proof UI" bezeichnet. Die Leute, die ich diese Software entwickle, täuschen scherzhaft einen Verstoß gegen den Begriff vor, aber ich kann sehen, wo dieser Begriff die Leute tatsächlich aufregen würde.
Was gibt es Schöneres, als das zu sagen?
terminology
sooprise
quelle
quelle
Antworten:
Wenn Sie eine "idiotensichere Benutzeroberfläche" als Zeitplanelement einbinden, versuchen Sie lediglich, Ihre Software nachträglich zu verbessern. Jedes gut konzipierte System validiert seine Eingaben und gibt den Benutzern eine klare Anleitung. Es wird nicht als eigenständiges Element in den Zeitplan aufgenommen (das dann entfernt werden muss, wenn die unvermeidliche Krise eintritt).
Wenn es sich aber auch um ein diskretes Element handeln muss (ich weiß, wie manche Unternehmen über die Planung denken), sollte "Idiotproof-Benutzeroberfläche" in "Eingabevalidierungsbibliothek" geändert und an den Anfang des Zeitplans verschoben werden.
quelle
Validierung von Benutzereingaben Ich hätte gedacht, dass dies ein Fachbegriff ist. Ich sehe jedoch nichts Falsches an Idiotensicherheit, wenn diese in internen Dokumenten verwendet wird.
quelle
Härten ist ein gutes Wort. Wenn Sie gefragt werden, teilen Sie ihnen mit, dass die erste Übergabe von Software in der Regel für ideale Szenarien geschrieben wurde, und wie bei Stahlwerkzeugen muss die Software für den rauen Alltagsgebrauch durch echte Kunden "gehärtet" werden.
Robustifizierung ist ein weiteres gutes Wort dafür - Sie machen den Code robust gegenüber den Herausforderungen, denen echte Kunden ausgesetzt sind.
Beide Wörter klingen cool und industriell, geben weder den Benutzern noch den Programmierern die Schuld und bringen den Punkt auf den Punkt.
Übrigens, hier ist Metrowerks 'altes Maskottchen Arnold, der uns Mac-Programmierern geholfen hat, unseren Code mit einem Wärmebehandlungsofen, einer Schmiede, einem Amboss und einem kleinen Vorschlaghammer zu härten und zu stabilisieren:
quelle
Defensive Programmierung
Ist das, was mir beigebracht wurde. Damals, als wir unsere eigenen Stücke aus Holz schnitzen mussten.
Wenn Sie ein PC sein möchten, nennen Sie es "vorausschauende" Programmierung.
quelle
Als ich lernte, nannten wir es Kugelsicherheit .
Die meisten anderen Euphemismen, die ich gelesen habe, treffen jedoch auch zu.
quelle
Wie wäre es mit einem fehlertoleranten System oder einer fehlertoleranten Benutzeroberfläche?
quelle
"Idiot Proofing" sollte aus beidem bestehen
Entwerfen der Benutzeroberfläche so, dass sie benutzerfreundlich ist und den Benutzer dazu veranlasst, Daten so einzugeben, wie es die Programmierer erwarten
Testen der Benutzeroberfläche, um festzustellen, ob die Schnittstelle durch Eingabe unerwarteter Datenwerte beschädigt werden kann.
Beide Schritte werden möglicherweise im Entwicklungsplan angezeigt, wenn das Design von einem Experten für Benutzererfahrung überprüft wird und der gelieferte Code von einem Tester überprüft wird, um sicherzustellen, dass ungültige Daten korrekt verarbeitet werden (für Ihre Anwendung bedeutet dies "korrekt").
quelle
Idiotensicherheit umfasst weit mehr als nur eine einfache Eingabevalidierung. Ich würde so etwas nicht einmal in seine Definition aufnehmen.
Die Eingabevalidierung ist ein Prozess, bei dem Sie Benutzerdaten bereinigen und validieren, um sowohl illegale als auch unsinnige Werte zu beseitigen. Dies sollte immer mit Informationen geschehen, die von außerhalb Ihres Programms stammen, um das Offensichtliche zu beseitigen und sich vor Angriffen (z. B. SQL Injection-Angriffen) zu schützen.
Ich würde Idiotensicherheit als Logik betrachten, die den Benutzer davon abhält, sich durch andere rechtliche Mittel versehentlich großen Schaden zuzufügen.
Das
rm
Zurückweisen des Befehlsrm -rf /
und Schließen von Varianten hat beispielsweise nichts mit Validierung oder Richtigkeit zu tun. Es ist ein vollkommen gültiger Befehl. Leider handelt es sich um einen Befehl, mit dem Sie alle Daten von allen Laufwerken in Unix / Linux löschen können. Ein Idiot, der dies prüft, würde diesen Befehl ablehnen und vorschlagenrm -rf --i-really-mean-this /
, oder, wenn er sich im interaktiven Modus befindet, den Benutzer nach einer Warnung eine positive Antwort eingeben zu lassen.Alles, was das System zerstört, sollte idiotensicher sein. Alles, was zu einer möglichen Verlegenheit führen könnte, könnte auch ein Kandidat sein (z. B. "Sind Sie sicher, dass Sie diese E - Mail ohne Anhang senden möchten, obwohl Sie eine in Ihrem Text erwähnt haben?" Und "Sind Sie sicher, dass Sie diese E - Mail an senden möchten gesamte Firma? ")
Idiotensicherheit ist eine Zusammenarbeit zwischen der Qualitätssicherung (um der beste Idiot zu sein) und der Entwicklung (um all diese Szenarien zu antizipieren und um sie herum zu entwerfen).
Da für eine freundliche Synonym kann ich vorschlagen , „destruktive Code-Pfadanalyse“ oder „Benutzer - Feedback für kritische Operationen ermöglichen“. Wie auch immer Sie es nennen mögen, Sie sollten es wirklich so früh wie möglich im Entwurfsprozess starten.
quelle
"Sanity Checking" funktioniert ziemlich oft ...
quelle
Nennen Sie es "Hinzufügen von Poka-Jochen zur Benutzeroberfläche". http://en.wikipedia.org/wiki/Poka_yoke
quelle
"Fehlerbehandlung" oder "Eingabevalidierung" wären andere Begriffe, die ich für das, was Sie beschreiben, verwenden würde. Kugelsicher wäre ein weiterer Begriff, den ich in einigen Kreisen verwenden könnte, da die Idee hier darin besteht, die Software robust genug zu machen, um mit fast allem fertig zu werden. Rock Solid wäre ein weiterer Slang-Ausdruck, den ich mir vorstellen könnte, wenn jemand ihn auch hier verwenden möchte.
quelle
"Worst-Case-Szenarioprüfung". Weil wir alle als Entwickler wissen, dass es getan wird, wenn es getan werden kann . Sie müssen nur darauf vorbereitet sein, mit Ihrer Software den schlimmsten Fall zu bewältigen.
Sicherheitsmaßnahmen schützen Benutzer nicht nur vor Angriffen von außen, sondern auch vor sich selbst. Wir leben in einer unvollkommenen Welt mit unvollkommenen Nutzern.
quelle
Vergolden ist die höfliche (und sehr positiv klingende) Begriff , den ich verwenden , wenn es um die Verbesserung der End-User - Interface Erfahrung in irgendeiner Weise (GUI oder andere).
Wie Sie sagen, ist der größte Teil dieses Prozesses das Idiot-Proofing, zusammen mit Verbesserungen des Designs oder des Workflows (denken Sie an die Bestätigung des Endbenutzer-Feedbacks).
Die Idee dabei ist, dass Sie diesen Begriff im Arbeitsumfeld frei verwenden können und er sowohl vom Management als auch von den Benutzern als wertvoller Prozess (einmal abgeschlossen) angesehen wird, auch wenn er einige Zeit in Anspruch nimmt (und daher im Allgemeinen etwas Geld kostet).
Viele andere Begriffe, die sich auf diesen Prozess beziehen (oft das Ende des Zyklus), lassen ihn so klingen:
Indem ich Gold mit dem Prozess in Verbindung bringe (Metall bedeutet normalerweise eher "Wert" als "Kosten"), habe ich gesehen, dass sich der Prozess in einigen Manager-Einstellungen von Aufwand zu Investition gewandelt hat.
Es ist so, als würde man offen sagen, dass dieses klobige Stück Stahl bis jetzt noch kein Schmuck ist. Aber wenn es einmal plattiert ist ... dann ist es wertvoll.
quelle
Am häufigsten in Bezug auf Herstellungsprozesse verwendet, aber ich denke, eine wirklich gute Passform ist Poka-Yoke :
"[poka yo-ke] ist ein japanischer Begriff, der" ausfallsicher "oder" fehlersicher "bedeutet.
Es wurde ursprünglich als Baka-Joch beschrieben, aber da dies "idiotensicher" (oder "idiotensicher") bedeutet, wurde der Name in "milderes Poka-Joch" geändert.
Im weiteren Sinne kann sich der Begriff auf jede Verhaltensformungsbeschränkung beziehen, die für ein Produkt entwickelt wurde, um eine fehlerhafte Bedienung durch den Benutzer zu verhindern. "
quelle
Ein gängiger Begriff in größeren Läden ist auch Quality Assurance (QA) .
Es handelt sich um einen allgemeinen, vagen Begriff, den Sie innerhalb Ihres Release-Zyklus an Ihre eigene Bedeutung anpassen können.
quelle
Wir nennen es Human Proofing. Wir sind alle Idioten.
quelle