Versionskontrolle gehört für Softwareentwickler zum täglichen Brot. Auch Fachanwender haben Bedarf an der Versionierung gemeinsam bearbeiteter Dateien. Fehlerhafte oder halbfertige Dateien können sich zum Beispiel in der robotergesteuerten Prozessautomatisierung weitreichend auswirken. Doch jetzt werden bei Softwareentwicklern bewährte Revisionsprozesse für jeden zugänglich. Unser neu entwickeltes Software-Werkzeug macht es auf einfach bedienbare und verständliche Weise möglich, Änderungen nachzuvollziehen, zu teilen und umzukehren.
Versionskonflikte:
Ein Problem (nicht mehr) aus dieser Zeit
Das manuelle Kopieren von Dateien auf Netzlaufwerke und das Schmücken dieser mit vielsagenden Namen wie „XYZ_Version 3.0_final“ sorgt für Überdruss. Wer welche Änderungen vorgenommen hat, ist nicht ersichtlich. Es kommt zu Konflikten zwischen gleichzeitigen Änderungen an derselben Datei. Wer darüber entscheidet, welche Änderungen letztendlich übernommen werden sollen, ist auch nur selten eindeutig geregelt. Schnell häufen sich weitere Dateikopien an. Bunte Benennungen à la „XYZ_Version 3.1 (Mitarbeiter A)“ und „XYZ_Version 3.1 (Mitarbeiter B)“ sind keine Ausnahme. Was tut nun Mitarbeiter C, der unter Zeitdruck Version 3.2 erstellen soll?
Solche Szenarien sind bekannt und frustrierend. Problematisch wird es spätestens dann, wenn die Dateien Teil eines automatisierten Geschäftsprozesses werden. Denn robotergesteuerte Prozessautomatisierung (RPA) in Produktivsystemen kann nur mit eindeutigen und fehlerfreien Dateien reibungslos funktionieren.
Zeitaufwand und Missverständnisse bei der Erstellung und Verwaltung von Dateiversionen bergen viel Potenzial zur Optimierung. Produktivitätshemmer in der Datenversionierung müssen mit unserem neu entwickelten Tool nicht länger hingenommen werden.
Seit geraumer Zeit setzen Softwareentwickler zur Versionsverwaltung spezielle Lösungen wie Git oder Subversion ein und profitieren von mächtigen Konzepten. Bearbeitungsstände werden durch Branching vorsichtig verändert, durch Committing gesichert und durch Pushing und Pulling geteilt. Allerdings sorgen dieser Jargon und die Vielzahl möglicher Optionen bei Nicht-Eingeweihten für Verunsicherung. Hier setzt unser Werkzeug an. Ungeachtet der Vorkenntnisse lässt es jeden von den Vorteilen der etablierten Ansätze profitieren.
Die Lösung:
Professionelle Versionierung bei einfacher Bedienung
Bei der Definition automatisierter Prozesse für das RPA-Tool „viadee Roboter“ dürfen nur funktional einwandfreie Dateien für Produktivsysteme freigegeben werden. Mit dieser Motivation suchten wir eine adäquate Lösung zur Dateiversionierung. Das Ergebnis ist ein Referenz-Prozess nach folgenden Maßgaben:
- Verbesserter Zugang zur Versionskontrolle für Fachanwender durch einfache Bedienbarkeit
- Erhöhte Transparenz über die Tätigkeiten einzelner Teammitglieder
- Integration aller Beteiligten von der Erstellung über das Review bis zur Produktivsetzung
- Berücksichtigung aktueller Best Practices aus den Bereichen Agile Softwareentwicklung, DevOps und Continuous Integration
- Automatisierung, wo möglich und sinnvoll
Das in diesem Zuge entwickelte Software-Werkzeug hilft bei der praktischen Umsetzung des Referenz-Prozesses. Es unterstützt die Bereitstellung lokal erstellter Dateien für den gemeinsamen Zugriff und die Befolgung eines iterativen, auf Wunsch auch mehrere Teammitglieder einbindenden Revisionsprozesses. Unsere Lösung vereint die Stärken der Versionsverwaltung Git und der bewährten Camunda BPMN-Prozess Engine. Die jargonfreie Weboberfläche (siehe Abbildung 1) lässt Nutzer von ihnen profitieren, ohne dass sie sich im Detail mit ihnen auseinandersetzen müssen.
Abbildung 1: Ausschnitt aus der Weboberfläche unseres Versionierungswerkzeugs
Der aktuelle, allgemein akzeptierte Versionsstand ist für alle Nutzer auf einem „Master-Branch“ zugreifbar und bearbeitbar. Änderungen eines Fachanwenders, sogenannte „Commits“, legt das Werkzeug in einem „Feature-Branch“ ab. Der „Master-Branch“ bleibt davon zunächst unberührt (siehe Abbildung 2).
Durch die Vergabe von Nutzerrollen wird geregelt, welche Personen das Recht zur Begutachtung und/oder zur Freigabe von Änderungen haben und entsprechend verantwortlich sind. So kann ein zweiter Mitarbeiter (Reviewer) bei Änderungen automatisch benachrichtigt werden, um diese zu begutachten. Wenn nötig, kann er sie mit eigenen Kommentaren versehen und an den Urheber zur Überarbeitung zurückgeben. Notfalls darf er Änderungen auch gänzlich ablehnen. Im Idealfall gibt der Reviewer die Änderungen jedoch für eine Integration in den Master-Branch („Merge“) frei.
Abbildung 2: Möglicher Workflow bei der Bearbeitung einer Datei D durch drei Nutzer. Die Linien stellen „Branches“ dar, die Kreise „Commits“.
Gleichzeitige Änderungen an derselben Datei sind dank diesem „Branching“ kein Problem mehr. Durch „Commits“ wird nachvollziehbar, wer zu welchem Zeitpunkt welche Änderungen vorgenommen hat. Die Rückkehr zu früheren Versionsständen ist jederzeit möglich. Das Designieren der für den „Merge“ zuständigen Nutzer regelt eindeutig, wer für die Lösung von Konflikten zwischen Änderungen verantwortlich ist. Auch der Zeitpunkt für den „Merge“ lässt sich im Vorhinein festsetzen.
Die Nutzerrollen und Bedarfe einzelner Unternehmen lassen sich durch den modularen Aufbau unseres Werkzeuges flexibel integrieren. So mag beispielsweise ein Review-Schritt unter bestimmten Gegebenheiten eher stören. Er kann entsprechend ausgelassen werden. Neben RPA können viele weitere Anwendungsbereiche, wie die Testautomatisierung oder das Dokumentenmanagement, durch dieses Werkzeug bedient werden.
Tests oder Geschäftsprozesse werden bei Ihnen bereits automatisiert, doch Sie befürchten Schwierigkeiten aufgrund nicht einwandfreier Dateien? Wie gehen Sie mit Versionierung um und welche Probleme sehen Sie? Wir freuen uns auf Ihre Fragen und Anregungen!
Hinweis: Dieser Blogbeitrag ergibt sich im Wesentlichen aus den Ergebnissen der Abschlussarbeit von Martin Kubicki, die in Zusammenarbeit mit der WWU Münster 2018 erstellt wurde.
Von der Test- zur Prozessautomatisierung: aus vtf wird mateo
Das ehemalige viadee Testframework (vTF) hat sich weiterentwickelt. Um dem Leistungsumfang des gewachsenen Produktportfolios gerecht zu werden, erscheint es unter neuem Namen. Erfahren Sie mehr über Testautomatisierung mit mateo core, das Testen von Weboberflächen mit mateo web und robotergesteuerte Prozessautomatisierung mit mateo rpa.
zurück zur Blogübersicht