
Einblicke in die Arbeit von Sovereign Tech Fellow Sarah Hoffmann
Von Theresa Röcher
Open-Source-Maintainerin Sarah Hoffmann entdeckt gerne schöne Orte – sowohl in der realen Welt als auch im Code. In diesem Interview erzählt Sarah mehr zu ihrem Werdegang in der Open-Source-Welt: von den Technologien, an denen sie arbeitet, und den Herausforderungen, denen sie begegnet, bis hin zu ihren Erfahrungen in der Zusammenarbeit mit einer internationalen Community aus ehrenamtlichen Maintainer*innen.
Erzähl uns was zu deinen Hintergrund. Wie bist du zu Open Source gekommen?
Ich arbeite schon seit über 20 Jahren mit Open-Source-Software und habe auch selbst welche erstellt. Meine ersten Berührungspunkte mit dem Konzept “Open-Source” hatte ich während meines Informatikstudiums in Dresden. Für meine Diplomarbeit arbeitete ich an dem Open-Source-Betriebssystem L4 und setzte diese Arbeit in den folgenden Jahren als Vollzeitjob fort. Die einzigartigen Vorteile von Open-Source entdeckte ich jedoch, als ich 2007 auf das OpenStreetMap-Projekt stieß. OpenStreetMap befand sich damals noch in seinen frühen Tagen, und ein Großteil der Karte war eine leere Leinwand. In den folgenden Jahren wuchs das Projekt und wurde zu einer Kartenquelle, die den gesamten Planeten abdeckt. Ich habe unterstützt, als die ersten öffentlichen Verkehrsunternehmen zögerlich begannen, unsere Daten zu übernehmen, weil sie Karten benötigten, die über Ländergrenzen hinaus gingen. Ich habe Apps für Wanderer und Radfahrer entstehen sehen, eine Gruppe, die bis dahin nicht von kommerziellen Kartenanbietern bedient wurde.
OpenStreetMap konnte wachsen, weil es sowohl zur Nutzung als auch für Beiträge offen war. Doch es blieb nicht nur bei den Daten. Da es damals keine vorhandene Basis gab, auf der wir aufbauen konnten, entwickelten wir so gut wie unsere gesamte Software von Grund auf – alles als Open Source. Das machte es für mich einfach, mit eigenen Karten zu experimentieren oder meine eigene Routing-Software aufzusetzen. Außerdem begann ich, einen genaueren Blick unter die Haube der Software zu werfen, wenn etwas nicht wie erwartet funktionierte.
Im Jahr 2012 suchten die OpenStreetMap-Administratoren jemanden, der den Server für eine neue Geocoding-Software namens Nominatim einrichtete und bei der Einrichtung half. Das klang spannend, also übernahm ich die ehrenamtliche Aufgabe – obwohl ich weder Erfahrung mit PostgreSQL-Datenbanken hatte, noch viel über Suchtechnologien wusste. Doch als Administratorin zu arbeiten, erwies sich als großartige Möglichkeit, die Software kennenzulernen. Zunächst reichte ich kleine Patches zur Verbesserung der Produktivserver ein. Dann kamen die ersten Nutzerberichte, dass die Suche nicht wie erwartet funktionierte. Also kümmerte ich mich auch darum. Nach und nach war ich an immer größeren Verbesserungen beteiligt, bis ich eines Tages – einfach durch die Anzahl meiner Commits – zur Hauptentwicklerin wurde. Seitdem habe ich auf ähnliche Weise die Wartung weiterer Projekte im OpenStreetMap-Ökosystem übernommen: Ich war in irgendeiner Form auf diese Projekte angewiesen und wollte nicht, dass sie aufgegeben werden.
Erzähl uns mehr über die Projekte, an denen du während des Fellowships arbeiten wirst. Warum sind sie wichtig?
Mein Spezialgebiet ist Geocoding-Software. Das ist die Art von Software, der man eine Adresse oder eine Ortsbeschreibung gibt und die dann die entsprechenden Koordinaten zurückliefert. Oder umgekehrt: Man gibt ihr Koordinaten, und sie gibt die dazugehörige Adresse aus. Ich bin Maintainer von Nominatim und Photon, zwei verwandten Geocodern, die speziell für OpenStreetMap-Daten entwickelt wurden. Geocoding wird in fast jeder Anwendung gebraucht. Wo eine Karte auf einer Website ist, gibt es meist auch eine Suchfunktion. Wenn du einer App mitteilst, wo du bist oder wo du wohnst, wandelt sie diese Information oft in Koordinaten um. Und Apps, die deinen Standort verfolgen, machen es meist umgekehrt: Sie wollen herausfinden, in welchem Land oder in welcher Stadt du dich befindest.
Beim Geocoding gibt es zwei große Herausforderungen: Zum einen müssen die OpenStreetMap-Daten so aufbereitet werden, dass sie für das Geocoding nutzbar sind – und das ist viel schwieriger, als es klingt. Die reale Welt ist längst nicht so ordentlich und strukturiert, wie wir Computer-Nerds es gerne hätten. Jedes Land hat ein eigenes System und Eigenheiten, um Orte und Adressen zu beschreiben. Einen Geocoder zu entwickeln, der weltweit funktioniert, ist deshalb eine fantastische Möglichkeit, um verschiedene Kulturen kennenzulernen. Wusstest du zum Beispiel, dass es durchaus vorkommt, dass eine Straße auf jeder Seite einen anderen Namen trägt, weil die Straßenseiten jeweils zu zwei verschiedenen Dörfern gehören?
Die andere Herausforderung besteht darin, zu verstehen, wonach Nutzer*innen suchen – basierend auf den wenigen Informationen, die sie ins Suchfeld eingeben. Ist das ein Städtename? Eine Straßenbezeichnung aus dem Kartenausschnitt, den der Nutzende gerade betrachtet? Gehört diese Zahl zur Postleitzahl oder zur Hausnummer? Und steht „St“ für „Street“ oder für „Saint“?
Was hat dich zum Sovereign Tech Fellowship gebracht?
Ich habe Open-Source-Entwicklung und Maintainer-Tätigkeiten viele Jahre in meiner Freizeit gemacht. Das Problem dabei war, genügend Zeit für größere Verbesserungen zu finden und auch kontinuierlich daran zu arbeiten, sodass man sich meist auf die dringenden Probleme und Bugfixes konzentriert hat.
Mit der Unterstützung einiger Unternehmen, die die Relevanz von Open Source verstehen, wurde ich 2020 Freelancer, um vollzeit an Open-Source-Projekten arbeiten zu können. Das hat gut funktioniert – vor allem Nominatim hat in den letzten Jahren viele Verbesserungen erfahren. Dennoch ist es trotz der weit verbreiteten Nutzung durch kommerzielle Anbieter nach wie vor schwierig und zeitaufwendig, Unternehmen zu finden, die die Wartung und Weiterentwicklung der Software unterstützen.
Das Sovereign Tech Fellowship gibt mir die Möglichkeit, Zeit für klassische Maintainer-Aufgaben freizuhalten: auf Issues reagieren, gemeldete Bugs beheben, Pull Requests prüfen, Dokumentation verbessern, Tests durchführen, Releases vorbereiten und den Code ein wenig „aufräumen“. Das Fellowship deckt jedoch nur einen Teil meiner Zeit ab. Den restlichen Teil nutze ich für die Entwicklung neuer Features. Hier zähle ich weiterhin auf die Unterstützung der Nutzer*innen, um das Projekt voranzubringen.
Was macht die Zusammenarbeit in Open-Source-Projekten für dich besonders, und was gefällt dir am meisten daran?
Meine größte Erfahrung mit offenen Communities habe ich durch meine Arbeit in der OpenStreetMap-Community gesammelt. Es liegt in der Natur des Projekts, dass unsere Mitwirkenden aus der ganzen Welt kommen und sehr unterschiedliche kulturelle Hintergründe und Interessen haben. Diese Unterschiede kann man nicht ignorieren – schließlich wollen wir gemeinsam eine weltweite Karte erschaffen. Im Laufe der Jahre hat sich eine Mischung aus „Leben und leben lassen“ und intensiven Diskussionen als unser Ansatz bewährt. Bisher hat das ziemlich gut funktioniert. Natürlich können die langwierigen Debatten manchmal anstrengend sein, aber das Ergebnis ist eine Kartendatenbank, die weltweit nutzbar ist und gleichzeitig lokale Besonderheiten berücksichtigt. Teil dieser Community zu sein, hat mir eine Menge praktische Erfahrung in der Community-Kommunikation vermittelt.
Es liegt in der Natur des Projekts, dass unsere Mitwirkenden aus der ganzen Welt kommen und sehr unterschiedliche kulturelle Hintergründe und Interessen haben. Im Laufe der Jahre hat sich eine Mischung aus „Leben und leben lassen“ und intensiven Diskussionen als unser Ansatz bewährt.
Die Zusammenarbeit in einer Open-Source-Software-Community ist im Vergleich oft unkompliziert. Die meisten Beteiligten haben einen technischen Hintergrund, was eine gute Grundlage für ein gemeinsames Verständnis schafft. Da ich Projekte mit wenigen, aber regelmäßig Mitwirkenden betreue, habe ich zudem die Freiheit, die Richtung der Projekte weitgehend selbst zu bestimmen. Dennoch kommt es immer wieder vor, dass externe Beitragende eigene Anforderungen umsetzen und damit dem Projekt eine leicht andere Richtung geben als ursprünglich geplant. Ich denke, ein guter Maintainer in einem Open-Source-Kollaborationsprojekt muss die richtige Balance finden: Einerseits den Beitragenden Raum für ihre Ideen lassen, andererseits dafür sorgen, dass das Projekt als Ganzes auf Kurs bleibt.
Ein guter Maintainer in einem Open-Source-Kollaborationsprojekt muss die richtige Balance finden: Einerseits den Beitragenden Raum für ihre Ideen lassen, andererseits dafür sorgen, dass das Projekt als Ganzes auf Kurs bleibt.
Eine der Herausforderungen bei Open-Source-Projekten ist es, Nutzer-Feedback zu bekommen. Oft wissen Maintainer nicht einmal, wer ihre Software einsetzt und wofür sie genutzt wird. Das kann die Priorisierung von Aufgaben erschweren – ein Problem, das ich auch bei osm2pgsql und pyosmium, die ich betreue, immer wieder sehe. Bei Nominatim ist die Situation jedoch anders. Wie bereits erwähnt, bin ich auch Systemadministrator für die stark genutzte Installation auf der Hauptseite von OpenStreetMap. Dadurch kann ich neue Funktionen direkt in einer produktiven Umgebung testen – mit all den Vorteilen und Herausforderungen, die das mit sich bringt. Es gibt kaum eine bessere Möglichkeit, Feedback zu bekommen, als von Mappern, die gerade das kleine Geschäft um die Ecke eingetragen haben und nun stolz nach ihrem Beitrag suchen. Als Systemadministrator ist man auch von Natur aus motiviert, in hochwertigen und schnellen Code zu investieren.
Was machst du, wenn du nicht an Open Source arbeitest?
Einer der Nachteile von OpenStreetMap ist, dass es dazu neigt, in alle Bereiche des Lebens überzuschwappen. Ich gehe gerne auf lange Wanderungen und liebe es zu reisen, wenn ich eine längere Auszeit brauche. Allerdings lasse ich mich bei der Wahl meines Reiseziels oft davon leiten, wo die Karte noch Verbesserungen braucht. Der positive Nebeneffekt: So habe ich wunderschöne Orte entdeckt, die ich sonst wahrscheinlich nie als Reiseziel in Betracht gezogen hätte. Wenn ich wirklich mal eine Pause vom Bildschirm brauche, verbringe ich gerne Zeit auf meinem großen Balkon direkt neben meinem Büro, wo ich mein eigenes Obst und Gemüse anbaue. Es gibt nichts Besseres als eine frisch gepflückte Erdbeere als Belohnung nach einer langen Code-Review-Session.
Vernetze dich mit Sarah
Wir sind dankbar, dass Sarah Teil der ersten Kohorte des Sovereign Tech Fellowships ist und für ihre unermüdlichen Beiträge zum FOSS-Ökosystem. Wenn du an Sarahs Arbeit interessiert bist, kannst du die unten gelisteten Repositories aufrufen und ihren eigenen Ankündigungs-Blogbeitrag zum Sovereign Tech Fellowship hier lesen.

CC BY-SA 2.0, aratamediasolutions

CC BY-SA 2.0, aratamediasolutions