Allgegenwärtige Sprache - Konflikt zwischen Korrektheit und Benutzerfreundlichkeit

10

Ein zentraler Bestandteil von Domain Driven Design ist die konsistente Verwendung einer allgegenwärtigen Sprache im gesamten System - in Konversationen, Code, Datenbankschema, Benutzeroberfläche, Tests usw.

Ich bin an einem Projekt beteiligt, in dem es bereits eine etablierte Domain-Sprache gibt, die von einer internationalen Standardorganisation definiert wird.

Wir arbeiten jedoch für eine öffentliche Website, und die "richtigen" Begriffe für die Domain entsprechen nicht unbedingt der Art und Weise, wie die Öffentlichkeit sie normalerweise verwendet und versteht.

Der Kompromiss, den wir derzeit verwenden, besteht darin, die "offiziellen" Begriffe überall zu verwenden, außer in unseren Akzeptanzkriterien, die sich auf UI-Komponenten beziehen, in denen wir die informellen Namen verwenden.

Scheint dies ein vernünftiger Ansatz zu sein?

Andy Waite
quelle
Können Sie ein Beispiel liefern? Ich könnte dann eine detailliertere Antwort geben. Müssen Sie Begriffe für sie umschreiben oder gibt es kollidierende Begriffe mit insgesamt unterschiedlichen Bedeutungen? Wäre es überhaupt möglich, eine gemeinsame Basis zwischen den informellen Begriffen und der Domain-Sprache zu finden?
Falcon
1
Es ist schon eine Weile her, dass ich diesen Teil von Evans Buch gelesen habe, aber ich dachte, die allgegenwärtige Sprache sollte mit dem Domain-Experten verwendet werden? Ich würde sicherlich nicht erwarten, dass ein Benutzer die gesamte Terminologie des Domain-Experten versteht, daher würde ich dem Benutzer nur das präsentieren, was Sie als informelle Namen bezeichnet haben.
Kaleb Pederson

Antworten:

7

Ja, das scheint vernünftig. Wenn das Zielpublikum die Begriffe Ihrer Sprache nicht versteht oder sie falsch interpretiert, hat die Benutzerfreundlichkeit für den Endbenutzer Vorrang.

Ein Programm oder Inhalt, den ein typischer Benutzer nicht versteht, ist von geringem Wert. Mehr noch, wenn Sie ihnen nur eine vereinfachte Spitze eines Eisbergs präsentieren möchten, weil sie keine Domain-Experten sind und niemals sein werden.

Wenn Sie während der Entwicklung über die Domain sprechen, versteht normalerweise jeder die Sprache, da sie korrekt ist und sich alle Personen innerhalb der Domain befinden. Wenn jedoch durch die Kommunikation von Inhalten an Außenstehende der Domäne geschäftlicher Wert geschaffen wird, tun Sie dies so einfach wie möglich. Verwenden Sie Formulierungen und Sprachen, die am seltensten missverstanden werden, und verwenden Sie sie in der Benutzeroberfläche.

Behalten Sie die genaue Sprache in Ihrem Code und für die Kommunikation mit Personen, die mit der Domain befasst sind. Dies sind die Personen, die über die Spezifikationen verfügen und die Hauptbenutzer der Anwendungen sind, mit denen Sie die logischen Geschäftsdetails besprechen. In dem seltenen Fall, dass Sie die meisten logischen Geschäftsdetails wirklich mit Benutzern besprechen, die keine Ahnung von der Domain haben und nicht tief in diese eintauchen müssen, integrieren Sie ihre Sprache in Ihre Domain-Sprache, vorausgesetzt, sie haben überhaupt eine gemeinsame, eindeutige Sprache (was wahrscheinlich nicht der Fall ist).

Stellen Sie jedoch sicher, dass die Frontend-Entwickler Ihre informellen Bedingungen und die entsprechenden Domain-Bedingungen kennen.

Falke
quelle
1

Ich denke, der einfachste Weg, dies zu beantworten, besteht darin, die Linie genau dort zu zeichnen, wo Sie sie zeichnen würden, wenn Sie die Benutzeroberfläche in einer völlig anderen Sprache präsentieren würden.

Wenn Ihre Endbenutzer Dinge in Sanskrit sehen müssten, wie würden Sie den Unterschied zwischen der Benutzeroberfläche und dem Code (und anderer interner Kommunikation) überbrücken.

John Fisher
quelle
Gut gesagt. Dies weist auf das "Humpty-Dumpty-Problem" hin: Wörter sind nicht nur eine Substitution, sie beziehen sich auf Dinge, die Menschen unabhängig von den Wörtern und ihrer Verwendung kennen. Tiere verstehen zum Beispiel die Idee der "Temperatur". Wir hängen an Wörtern, wenn sie nur Symbole für Konzepte sind. Die Konzepte sind die wichtigen Dinge.