it-swarm.com.de

Helfen Sie dem Benutzer, ein mentales Modell für das Versionskontrollsystem zu entwickeln

Wir entwickeln ein integriertes Versionskontrollsystem für eine große Unternehmensanwendung. Wenn Benutzer etwas an den zugrunde liegenden Daten im System ändern, geschieht dies über ein "Arbeitselement".

Dies ist ähnlich wie ein Versionskontrollsystem für Code implementiert: Wenn ein Benutzer mit der Arbeit an einem Arbeitselement beginnt, verzweigen wir die zugrunde liegenden Daten, um diese Änderungen vom Hauptsystem zu isolieren. Nachdem der Benutzer fertig ist, müssen diese Änderungen wieder in das Hauptsystem übernommen werden.

Dieses Arbeitselement kann mit Synchronisieren und Festschreiben von Änderungen schwierig werden. Ich mache mir Sorgen darüber, welches mentale Modell die Benutzer über Arbeitselemente aufbauen können und wie die Idee von Zusammenführungskonflikten oder fehlgeschlagenen Tests dargestellt werden kann, die bei einem Commit automatisch im Hintergrund gestartet wurden.

Kennt jemand Beispiele für Versionskontrollsysteme für Nicht-Programmierer, die die Details abstrahieren und dennoch Flexibilität und Robustheit bieten?

Oder wissen Sie etwas über mentale Modelle für Versionskontrollsysteme?

7
Laura Beckwith

Der Schlüssel zur Einführung der Versionskontrolle in eine Benutzeroberfläche besteht darin, sie so transparent wie möglich zu gestalten. Ich würde Begriffe wie "Verzweigen" und "Zusammenführen" aus der Benutzeroberfläche ausblenden, da diese Begriffe für den Benutzer nicht wirklich wichtig sind. Die Versionskontrolle unterstützt die Aufgabe, Änderungen vorzunehmen. Daher wäre die Erstellung transparenter Versionskontrollschnittstellen mein Hauptanliegen .

Dies erfordert möglicherweise auch einen Blick auf das umfassendere Problem - warum ist eine Versionskontrolle erforderlich? Kann das in der Architektur gelöst werden? Es hört sich so an, als würden Sie Änderungssätze isolieren, um Deadlocks zu vermeiden. Dies ist ein Indikator dafür, dass die Datenarchitektur nicht optimal gestaltet ist. Ich würde das zuerst bewerten, bevor ich eine weitere Ebene in die Versionskontrolle einführe, die den Prozess erschweren könnte.

2
Nic

Das beste Beispiel, das ich habe, ist das eingebaute in OS X Lion integrierte Dateiversionierung .

Die Versionsverfolgung erfolgt vollständig transparent, wie Nic in seiner Antwort erwähnt hat, und sie bieten eine Schnittstelle, die auf ihrem vorherigen Tool Time Machine basiert, um historische Versionen zu durchsuchen:

(OS X Lion version browser
Bild von Apple.com

Das Wichtigste an dieser Lösung (das ist technisch sehr schwer zu erreichen) und eines der Hauptprobleme bei Versionskontrollsystemen ist es, dem Benutzer den Status der Datei in verschiedenen Versionen visuell anzuzeigen.

Code-Versionierungssysteme wie Subversion und Git basieren auf zeilenweisen "diffs" -Dateien, die für Dokumente und andere visuelle Medien überhaupt nicht geeignet sind. Durch die Anzeige einer vollständig interaktiven Demo der Datei in jeder Version erleichtert die Apple-Lösung selbst Anfängern die Auswahl der entsprechenden Version.

1
Kit Grose