Neue Funktionen wurden implementiert, Gewinn! Aber halt, sie sind noch nicht für alle Kunden verfügbar, weil sie noch auf die Übersetzung warten. Das ist nicht ideal. Was tun wir dagegen? Seit wir den Einzelpostenfluss für unseren Entwicklungsprozess erreicht haben, haben wir hart daran gearbeitet, dasselbe für unseren Übersetzungsprozess zu erreichen, mit unserem Team von freiberuflichen Übersetzern. Eine Aufgabe, die anfangs unmöglich schien. Herausforderung angenommen!
Die Herausforderung
Wir praktizieren die Verbesserungs-Kata, eine großartige Methode, um große (scheinbar unmögliche) Ziele schrittweise und auf experimentelle Weise zu erreichen, so dass die Aufgabe weniger herkulisch wird.
So haben wir unsere Herausforderung für die Übersetzung neuer Funktionen definiert:
Zurück zum Einzelpostenfluss.
Übersetzt innerhalb eines Tages.
Keine Zeit für die Beantwortung von Fragen des Übersetzungsteams.
Nicht mehr als fünf Minuten für die Vorbereitung des Einzelpostenpakets.
Wir wollten eine Menge! Wo soll man anfangen? Wir haben die Dinge aufgeschlüsselt und zunächst zwei Zielbedingungen festgelegt, die erste Etappe unseres Marathons, wenn Sie so wollen:
Definieren und messen Sie die Zeit, die benötigt wird, um ein einzelnes Element in alle Sprachen zu übersetzen.
Übersetzen Sie alle Beschriftungen für neue Funktionen innerhalb von drei Tagen (bei Bedarf).
Nun, das war etwas, das sich umsetzen ließ.
Definition einer einzelnen Position
Auf der Entwicklungsseite
Ein einzelnes Element ist eine Funktion, die entwickelt und implementiert wird. Wir wollten dem Übersetzungsteam die Übersetzungen für jede Funktion liefern, sobald sie verfügbar waren. Wir brauchten eine Möglichkeit, diese Informationen für die Lieferung zu verpacken.
Wir wollten dem Übersetzungsteam Übersetzungen für jede Funktion liefern, sobald sie verfügbar waren.
Wir verwenden Jira, um unseren Entwicklungsfluss zu verwalten, und die Anforderungen für jede Funktion werden in einer so genannten Story in Jira niedergeschrieben. Wir begannen damit, jeder Story ein neues Feld hinzuzufügen, in dem die Entwickler Details zu neuen Labels oder Seiten, die sie für die neue Funktion erstellt haben, eintragen konnten. Außerdem verknüpften wir neue Labels mit der jeweiligen Story in unserer Datenbank, so dass wir leicht überprüfen konnten, welche Labels zu welcher Story gehören.
Sobald ein Beitrag online war, wurde dem Entwicklungsfluss ein neuer Status hinzugefügt: Bearbeitung von Übersetzungen. Wenn eine Story diesen Status durchläuft, wird eine Nachricht mit dem Inhalt des Feldes an das Übersetzungsteam gesendet. Hierfür haben wir einen Webhook verwendet. Webhooks sind eine Möglichkeit für Anwendungen, miteinander zu kommunizieren, wenn ein bestimmtes Ereignis eintritt. Dies war unsere erste Iteration.
Wir stellten schnell fest, dass sowohl das neue Feld als auch der Status leicht vergessen oder übersprungen werden konnten. Deshalb haben wir ein Popup-Fenster erstellt, das nicht ignoriert werden konnte und zu einem früheren Zeitpunkt im Prozess erschien, wenn eine Story von der Testphase zur Bereitstellung überging.
Es folgten einige (gesunde?) Diskussionen darüber, welche Informationen den Übersetzern zur Verfügung gestellt werden sollten. Sie mussten einen Kontext für das, was sie übersetzten, haben und verstehen, wie sich eine neue Funktion verhält. Wir kamen zu dem Schluss, dass kommentierte Screenshots zusammen mit einer kurzen Beschreibung ideal sind. Die Übermittlung von vielen Wörtern mit technischem Jargon ist weniger geeignet.
Wir haben festgestellt, dass wir bereits eine kurze Beschreibung jeder Story für die internen Versionshinweise verfassen, so dass die automatische Übernahme dieser Beschreibung in die Benachrichtigung den Entwicklern einen Schritt erspart. Bilder waren anfangs nicht im Webhook enthalten, wir mussten sie manuell hinzufügen, und das war mühsam. Wir haben also einige Zeit damit verbracht, auch das zum Laufen zu bringen.
All diese kleinen Schritte fingen an, sich zu etwas wirklich Nützlichem zu summieren!
Auf der Seite der Übersetzung
Sobald wir ein einzelnes Paket fertig hatten, mussten wir entscheiden, wohin wir es schicken wollten. Upwork war unser wichtigstes Mittel, um mit den Übersetzern auf individueller Ebene zu kommunizieren. Wir unterstützen 24 Sprachen, daher war es wichtig, die Einrichtung überschaubar zu gestalten. Da wir intern ohnehin Slack verwenden, luden wir das gesamte freiberufliche Team ein, einem eigenen Slack-Bereich für Übersetzungen beizutreten. Jeder Einzelne von ihnen hat zugesagt. Das war ein echter Wendepunkt!
Es war wichtig, die Einrichtung überschaubar zu gestalten
Alle 24 Teammitglieder an einem Ort in einer Gemeinschaft zu haben, war so viel einfacher zu verwalten. Wir haben einen eigenen Gruppenkanal in Slack eingerichtet, an den die Webhooks mit neuen Übersetzungen gesendet werden, sowie Sprachkanäle für die einzelnen Kontakte.

Ein Beispiel für eine unserer automatisierten Slack-Nachrichten
Die nächste Aufgabe bestand darin, den Übersetzern unsere Herausforderung und Erwartungen mitzuteilen: Sie sollten auf die Webhooks reagieren, sobald sie eintreffen, idealerweise innerhalb von 24 Stunden. Wir waren gespannt, wie das ankommen würde, aber das Team passte sich schnell an. Slack ist ideal für Sofortnachrichten, einen schnellen Daumen hoch oder ein Häkchen. Im Anschluss daran haben wir ein kleines Übersetzungshandbuch verfasst, um zu erklären, wie und warum die Dinge funktionieren sollen, und um einige häufige Fragen zu beantworten. Wir haben es an den Slack-Bereich angeheftet, damit das Team bei Bedarf darauf zurückgreifen kann.
Da wir unser eigenes Übersetzungstool entwickelt haben und verwalten, bestand eine weitere Änderung, die wir für die Übersetzer vorgenommen haben, darin, dass wir ihnen einen neuen Filter hinzugefügt haben, damit sie die Bezeichnungen für jede Geschichte leicht finden können. Dann gingen wir noch einen Schritt weiter und fügten einen Link zu ihrem Webhook hinzu, der sie direkt zu dieser gefilterten Auswahl führt.
Messen Sie die Timings
Da wir ein System eingerichtet hatten, mussten wir in der Lage sein, den Fortschritt zu messen. Wir wollten wissen, wie schnell die Übersetzungen fertiggestellt wurden. Wir wollten das nicht für jede Sprache und jeden Text manuell machen, das Leben ist zu kurz! Also haben wir eine Möglichkeit entwickelt, aus der Datenbank einen Bericht über die Übersetzungszeiten pro Sprache und pro Story zu erhalten. Das ist jetzt mit wenigen Klicks möglich ... ohne einen Entwickler zu benötigen! Das hat uns einige Zahlen und Denkanstöße gegeben.
Verkürzung der Durchlaufzeit
Ok, alles ist da, aber die Bearbeitungszeit ist nicht so, wie wir gehofft hatten. Wir haben viel verlangt, um die zweiwöchige Durchlaufzeit auf drei Tage zu verkürzen (und strebten einen Tag an). Wir wollten wissen, was das freiberufliche Team daran hinderte, die eingehenden Webhooks zu bearbeiten. Es gab nur einen Weg, das herauszufinden, nämlich zu fragen. Das taten wir, und die Antworten waren überraschend.
Einige Übersetzer tendierten dazu, die Aufgaben stapelweise zu bearbeiten, anstatt sie einzeln abzuarbeiten, weil sie Probleme mit der Upwork-Zeiterfassung hatten und befürchteten, uns zu viel zu berechnen. Die manuelle Zeiterfassung zu fördern, war hier die Lösung. Wir vertrauen dem Team und wollen die Zeit, die es für unser Projekt aufwendet, fair entlohnen. Einige brauchten einfach Zeit, um sich an die neue Arbeitsweise zu gewöhnen.
Wir hatten immer wieder Beschwerden über Probleme mit den Slack-Benachrichtigungen, den sogenannten Pings. Nicht alle Teammitglieder nutzen Slack regelmäßig. Nachdem wir mit verschiedenen Slack-Funktionen wie Schlüsselwörtern, Erwähnungen, Tags und E-Mail-Benachrichtigungen experimentiert hatten, gelang es uns, das Problem zu lösen. Wir fügten eine Kanalerwähnung und Schlüsselwörter zu unserem Webhook hinzu, die je nach den Präferenzen der einzelnen Übersetzer sowohl Pings als auch E-Mails auslösten. Das bedeutet, dass keiner von ihnen in Zukunft Updates verpassen würde!
Es gab auch Änderungswünsche für unser Übersetzungsprogramm, um das Leben einfacher zu machen. Sie haben gefragt, und wir haben zugehört! Wir haben die Art und Weise, wie Bezeichnungen gespeichert werden, verbessert, so dass man sich schneller durch eine Liste arbeiten kann. Dann haben wir den Filter für die Suche nach ähnlichen Bezeichnungen verbessert, um die Konsistenz zu wahren. Außerdem haben wir ein Keep-Alive-Skript hinzugefügt, so dass aktive Sitzungen im Übersetzungstool nicht mehr wie früher nach 24 Minuten ablaufen.
Das Leben eines Freiberuflers kann ein einsames Leben sein
Das Leben eines Freiberuflers kann sehr einsam sein, und wir möchten das Team wissen lassen, dass es geschätzt wird, da es für uns von unschätzbarem Wert und für unsere Pläne unerlässlich ist. Owlsome Knowly-T-Shirts haben dabei vielleicht geholfen, zusammen mit ein bisschen Slack-Community-Geist?

Erfolg
Haben wir unsere Aufgabe erfüllt? Nein, noch nicht. Aber das ist in Ordnung. Wir haben große Schritte in die richtige Richtung gemacht, die wir uns vor einem Jahr nicht hätten vorstellen können. Wir haben unterwegs auch viel gelernt. Unsere Übersetzer sind eine unschätzbare Quelle für Informationen und Feedback, für uns und füreinander. Wir haben einen einheitlichen Arbeitsablauf und einen Prozess für Übersetzungen eingeführt. Das Team erhält den richtigen Kontext, was zu schnelleren und besseren Übersetzungen für unsere Kunden führt. Wir nennen das einen Gewinn!
Das Team erhält den richtigen Kontext, was zu schnelleren und besseren Übersetzungen für unsere Kunden führt.
Die Bearbeitungszeit ist noch nicht so schnell, wie wir es in unserer Herausforderung definiert haben, aber wir nähern uns an. Für die meisten unserer Sprachen sind die Übersetzungen innerhalb von drei Tagen fertig. Bei der letzten Zählung hatten wir Übersetzungen für 17 von 24 Sprachen innerhalb von drei Tagen, vier folgten kurz danach, und nur drei blieben länger als 10 Tage aus.
Was kommt als Nächstes? Nun, wir werden Sie auf dem Laufenden halten. Der Marathon ist noch nicht zu Ende. Wir arbeiten bereits an der nächsten Herausforderung.