Nieuwe functies zijn uitgerold, winst! Maar wacht, ze zijn nog niet beschikbaar voor alle klanten, omdat ze wachten op vertaling. Dat is niet ideaal. Wat doen we eraan? Sinds we single item flow hebben bereikt voor ons ontwikkelingsproces, hebben we hard gewerkt om hetzelfde te bereiken voor ons vertaalproces, met ons team van freelance vertalers. Een taak die in eerste instantie onmogelijk leek. Uitdaging aangenomen!
De uitdaging
We oefenen de Improvement Kata, wat een geweldige manier is om te werken aan het bereiken van grote (schijnbaar onmogelijke) doelen op een incrementele en experimentele manier, zodat de taak minder Hercules wordt.
Zo hebben we onze uitdaging voor vertalingen voor nieuwe functies gedefinieerd:
We wilden veel! Waar moesten we beginnen? We braken de dingen af en begonnen met het vaststellen van twee doelvoorwaarden, de eerste etappe van onze marathon zo je wilt:
De tijd definiëren en meten die nodig is om één item naar alle talen te vertalen.
Alle labels voor nieuwe functies binnen drie dagen vertaald krijgen (op aanvraag).
Dat was iets werkbaars.
Een enkel item definiëren
Aan de ontwikkelingskant
Een enkel item is een functie die wordt ontwikkeld en ingezet. We wilden vertalingen voor elke functie aan het vertaalteam leveren wanneer ze beschikbaar waren. We hadden een manier nodig om deze informatie te verpakken voor levering.
We wilden vertalingen voor elke functie aan het vertaalteam leveren wanneer ze beschikbaar waren
We gebruiken Jira om onze ontwikkelingsstroom te beheren en de vereisten voor elke functie worden opgeschreven in wat we in Jira een story noemen. We begonnen met het toevoegen van een nieuw veld aan elke story, waar ontwikkelaars details konden toevoegen van nieuwe labels of pagina's die ze voor de nieuwe functie hadden gemaakt. We koppelden nieuwe labels ook aan hun story in onze database, zodat we eenvoudig konden controleren welke labels bij welke story hoorden.
Er werd een nieuwe status toegevoegd aan de ontwikkelingsstroom zodra een verhaal online was: vertalingen verwerken. Als een story deze status had bereikt, werd er een bericht met de inhoud van het veld naar het vertaalteam gestuurd. Hiervoor gebruikten we een webhook. Webhooks zijn een manier voor apps om met elkaar te communiceren wanneer een bepaalde gebeurtenis plaatsvindt. Dit was onze eerste iteratie.
We merkten al snel dat zowel het nieuwe veld als de status gemakkelijk werden vergeten of overgeslagen, dus maakten we er een pop-upvenster van dat niet kon worden genegeerd en dat eerder in het proces verscheen wanneer een story werd overgezet van getest naar ingezet.
Er volgden enkele (gezonde?) discussies over wat voldoende informatie was om aan de vertalers te geven. Ze moesten context hebben voor wat ze vertaalden en begrijpen hoe een nieuwe functie zich gedraagt. We concludeerden dat geannoteerde schermafbeeldingen, samen met een korte beschrijving ideaal waren. Veel woorden met technisch jargon versturen, minder.
We realiseerden ons dat we al een korte beschrijving van elk verhaal schreven voor interne release notes, dus door dit automatisch naar de melding te halen, bespaarden we de ontwikkelaars een stap. Afbeeldingen waren aanvankelijk niet opgenomen in de webhook, die moesten we handmatig toevoegen en dat was een heel gedoe. Dus hebben we wat tijd besteed om dat ook werkend te krijgen.
Al deze kleine stapjes begonnen echt iets nuttigs op te leveren!
Aan de vertaalzijde
Toen we eenmaal een pakket van één item klaar hadden, moesten we beslissen waar we het naartoe zouden sturen. Upwork was onze belangrijkste manier om met de vertalers te communiceren, op individueel niveau. We ondersteunen 24 talen, dus het was belangrijk om de setup beheersbaar te maken. Omdat we Slack toch al intern gebruiken, nodigden we het hele freelance team uit om deel te nemen aan een speciale Slack-ruimte voor vertalingen. Ze accepteerden allemaal. Dit was een game-changer!
Het was belangrijk om de opstelling beheersbaar te maken
Het was veel gemakkelijker om alle 24 teamleden samen in één ruimte te hebben, in een community. We hebben een speciaal groepskanaal in Slack gemaakt om de webhooks met nieuwe vertalingen naartoe te sturen en taalkanalen voor individueel contact.

Een voorbeeld van een van onze geautomatiseerde Slack-berichten
De volgende taak was het communiceren van onze uitdaging en verwachtingen met de vertalers: reageren op de webhooks zodra ze binnenkomen, idealiter binnen 24 uur. We waren benieuwd hoe dit zou worden ontvangen, maar het team paste zich snel aan. Slack is ideaal voor onmiddellijke berichten, een snelle duim omhoog of een vinkje. Vervolgens stelden we een kleine vertaalhandleiding op om uit te leggen hoe we wilden dat alles zou werken en waarom, en we behandelden een aantal veelvoorkomende vragen. We hebben deze aan de Slack-ruimte vastgepind zodat het team deze kan raadplegen wanneer dat nodig is.
Omdat we onze eigen vertaaltool hebben gebouwd en beheren, hebben we voor de vertalers ook een nieuwe filter toegevoegd, zodat ze gemakkelijk labels konden vinden voor elk verhaal. Daarna gingen we nog een stap verder en voegden we een link toe aan hun webhook die hen rechtstreeks naar die gefilterde selectie zou brengen.
Meet de timings
Met een systeem op zijn plaats, moesten we in staat zijn om de voortgang te meten. We wilden weten hoe snel vertalingen werden omgezet. We wilden dit niet handmatig doen voor elke taal voor elk verhaal, het leven is te kort! Dus bouwden we een manier om een rapport uit de database te krijgen over de vertaaltijden per taal, per verhaal. Het is nu mogelijk met slechts een paar klikken ... zonder dat je een ontwikkelaar nodig hebt! Het gaf ons wat cijfers om te kraken en stof tot nadenken.
De doorlooptijd verkorten
Oké, alles staat op zijn plaats, maar de doorlooptijd is niet wat we hadden gehoopt. We hebben veel gevraagd om een doorlooptijd van twee weken terug te brengen naar drie dagen (we streefden naar één dag). We wilden weten wat het freelance team tegenhield om te reageren op de webhooks die binnenkwamen. Er was maar één manier om daar achter te komen en dat was door het te vragen. Dus dat deden we, en de antwoorden waren verrassend.
Sommige vertalers hadden de neiging om de opdrachten te bundelen in plaats van ze één voor één af te werken, vanwege problemen met de Upwork-tijdregistratie en omdat ze bang waren ons te veel in rekening te brengen. Het aanmoedigen van handmatige tijdregistratie was hier de oplossing. We vertrouwen het team en willen hen eerlijk compenseren voor de tijd die ze aan ons project besteden. Sommigen hadden gewoon tijd nodig om zich aan te passen aan de nieuwe manier van werken.
We hadden terugkerende klachten over problemen met de Slack meldingen, of pings. Niet alle teamleden gebruiken Slack regelmatig. Na experimenteren met verschillende Slack-functies zoals trefwoorden, mentions, tags en e-mailmeldingen zijn we erin geslaagd om het probleem op te lossen. We voegden een kanaalvermelding en trefwoorden toe aan onze webhook, die zowel pings als e-mails activeerden, afhankelijk van de voorkeuren van de individuele vertaler. Dit betekende dat geen van hen in de toekomst updates zou missen!
Er kwamen ook verzoeken om onze vertaaltool aan te passen om het leven gemakkelijker te maken. Ze vroegen erom en we hebben geluisterd! We hebben de manier waarop labels worden opgeslagen verbeterd, zodat je sneller door een lijst kunt werken. Daarna hebben we de filter voor het zoeken naar bestaande gelijksoortige labels verbeterd om consistentie te behouden. We hebben ook een keep-alive script toegevoegd, zodat actieve sessies in de vertaaltool niet na 24 minuten verlopen zoals vroeger.
Het leven van een freelancer kan eenzaam zijn
Het leven van een freelancer kan eenzaam zijn en we willen het team graag laten weten dat ze gewaardeerd worden, omdat ze van onschatbare waarde voor ons zijn en een integraal onderdeel van onze plannen. Owlsome Knowly T-shirts hebben daar misschien bij geholpen, samen met een beetje Slack gemeenschapszin?

Succes
Hebben we onze uitdaging gehaald? Nog niet. Maar dat geeft niet. We hebben enorme stappen in de goede richting gezet, die we ons een jaar geleden niet hadden kunnen voorstellen. We hebben onderweg ook veel geleerd. Onze vertalers zijn een onschatbare bron van informatie en feedback, voor ons en voor elkaar. We hebben één itemstroom met een proces voor vertalingen. Het team krijgt de juiste context, wat resulteert in snellere en betere vertalingen voor onze klanten. Dat noemen wij winnen!
Het team krijgt de juiste context, wat resulteert in snellere en betere vertalingen voor onze klanten
De doorlooptijd is nog niet zo snel als we in onze uitdaging hebben vastgelegd, maar we komen in de buurt. Voor de meeste van onze talen zijn de vertalingen binnen drie dagen klaar. Bij de laatste telling hadden we vertalingen voor 17 van de 24 talen binnen drie dagen, vier volgden kort daarna, met slechts drie vertalingen die langer dan 10 dagen open stonden.
Wat is de volgende stap? We houden je op de hoogte. De marathon is nog niet afgelopen. We zijn al bezig met de volgende uitdaging.