Collaborative Coding

Tools für die Remote-Programmierarbeit

13.04.2020 von Serdar Yegulalp und Florian Maier
Sie wollen gemeinschaftlich programmieren trotz Remote-Zwang? Mit diesen Collaborative Coding Tools kein Problem.

In einem Softwareprojekt zu kollaborieren geht meist mit der Nutzung von Tools wie Git einher - und zieht eine Schleife von Modifikationen und Abstimmungsarbeit nach sich, an deren Ende das fertige Produkt - hoffentlich - in einer einheitlichen Code-Basis vorliegt.

Programmieren geht inzwischen auch remote ziemlich gut - nicht nur in Pandemie-Zeiten. Wir zeigen Ihnen ausgewählte Collaborative Coding Tools.
Foto: Monstar Studio - shutterstock.com

Im Laufe der letzten Jahre hat Echtzeit-Collaboration an Programmcode allerdings deutlich an Praktikabilität gewonnen. Natürlich sollte der fertige Quellcode am Ende weiterhin abgenommen werden, aber die Möglichkeit, den Kollegen bei ihrer Arbeit über die Schulter zu sehen, ermöglicht Lernen und Austausch auch über die Distanz und erleichtert die Entwicklungsarbeit unter Zeitdruck.

Wir stellen Ihnen sieben Collaborative Coding Tools vor, die gemeinschaftliches Remote-Programmieren in Echtzeit ermöglichen. Das funktioniert entweder über dedizierte Web Services oder per Add-on für Ihren Code Editor.

AWS Cloud9

Cloud9 stellt eine Entwicklungsumgebung per Browser bereit, die circa 40 verschiedene Programmiersprachen unterstützt. Mit Hilfe von "Shared Environments" können mehrere Softwareentwickler in Echtzeit am selben Projekt in der Cloud arbeiten. Über visuelle Markierungen wird dabei kenntlich gemacht, wer welche Zeilen geschrieben hat - auch ein Chat ist innerhalb der IDE verfügbar. Projekt-Admins können die Beteiligten mit verschiedenen Rechten ausstatten (read/write oder read-only). Einen "follow my lead"-Modus bietet AWS Cloud9 allerdings nicht.

Preis: bei jeder EC2-Instanz inklusive

Codeanywhere

Dieses Collaborative Coding Tool wird konsequent als "Code on the Go"-Umgebung vermarktet. Der Editor steht über Browser, Tablets und Smartphones zur Verfügung, unterstützt 75 Programmiersprachen und bietet für das Gros der Coding-Sprachen auch Cloud-basierte Entwicklungsumgebungen. Zu Codeanywhere gehören aber auch einige Echtzeit-Codesharing- und Collaboration Features. Projekte lassen sich entweder einfach per Link teilen oder auch in Echtzeit gemeinsam im selben Editor bearbeiten. Darüber hinaus bietet das Remote Coding Tool bei Bedarf auch verschlüsselten Zugriff auf Projekte (per SSH).

Preis: kostenlos für sieben Tage - danach ab 3 Dollar monatlich

CodeSandbox Live

CodeSandbox stellt eine Online-Entwicklungsumgebung für die schnelle Entwicklung von Web-Applikationen zur Verfügung. Diese Apps können auf JavaScript, TypeScript oder auch Frameworks wie React, Angular und Vue basieren. Im Live-Modus lassen sich Kollegen einladen, um gleichzeitig am selben Projekt zu arbeiten. Dateien können in Echtzeit bearbeitet werden und auch eine Chat-Funktion zum gegenseitigen Austausch ist integriert. Der "classroom mode" ermöglicht, bestimmte Teilnehmer als Zuschauer einzuladen.

Preis: kostenlose Version mit eingeschränkten Funktionen verfügbar - für 9 Dollar monatlich ohne Einschränkungen

10 Dinge, die Software-Entwickler austicken lassen
Produkt- & Projektmanager
Ganz generell schätzen es Entwickler nicht so besonders, wenn ihnen jemand erklären will, wie sie ihren Job zu machen haben. Weil Produkt- und Projektmanager aber oft Entwickler-Teams leiten, passiert genau das. Das kann zu Unstimmigkeiten führen. <br /><br /> Dazu hat auch David Fox von devRant eine Meinung: "Letztendlich ist es in den meisten Fällen so, dass Produkt- und Projektmanager in irgendeiner Art und Weise die 'Besitzer' von Projekten und Prozessen sind, ohne dabei die täglichen Herausforderungen und Probleme der Softwareentwickler zu kennen."
Chefs
Genau wie die Produkt- und Projektmanager sind auch Development oder Engineering Manager dafür zuständig, Teams von Entwicklern zu führen und sicherzustellen, dass Projekte rechtzeitig und unter Budget fertiggestellt werden. <br /><br /> "In einigen Unternehmen können Situationen entstehen, in denen der Chef gleichzeitig Mitglied des Entwicklerteams ist. Insbesondere wenn der Chef vorher selbst Entwickler war und nach einer Beförderung zum Chef wird, ist Konfliktpotenzial gegeben", merkt Fox an.
Recruiter
Softwareentwickler müssen gar nicht selbst aktiv nach einem Job suchen, um von Recruitern und Headhuntern belästigt zu werden - dem Fachkräftemangel sei Dank. Es dürfte sehr schwer sein, einen Developer zu finden, der noch nicht in die Fänge der Recruiter geraten ist. <br /><br /> David Fox sieht insbesondere die Hartnäckigkeit der Recruiter als Problem: "Sie rufen an, sie e-mailen und sie lassen Dich einfach nicht in Ruhe - selbst dann, wenn Du gar keinen Job suchst. Und selbst wenn man eine Anstellung sucht, neigen viele Recruiter dazu, irrelevante Jobangebote zu machen oder Stellen zu empfehlen, deren Profil überhaupt nicht passt - etwa einen Job am anderen Ende des Landes, obwohl man gar nicht bereit ist, umzuziehen."
Dokumentation
Gibt es keine Dokumentation, beschweren sich die Softwareentwickler. Wenn es zuviel ist, beschweren sie sich und wenn sie die Dokumentation selbst erledigen müssen, auch. Sogar über die Art und Weise, wie andere Leute die Dokumentationsaufgabe bewältigen, beschweren sich die Entwickler. <br /><br /> An dieser Stelle seien sich auch endlich einmal alle Entwickler einig, wie Fox betont: "Softwareentwickler wollen eine ausführliche, gut geschriebene und akkurate Dokumentation - aber selber machen wollen sie es nicht."
Meetings
Meetings sind nicht nur für alle anderen ein Problem, sondern auch für Softwareentwickler. Insbesondere dann, wenn es sich um völlig unnötige, zeitraubende und stinklangweilige Zusammenkünfte handelt. Wie Fox erzählt, sind inzwischen auch Devotionalien mit der Aufschrift 'I survived another meeting that should have been an email' erhältlich.
Coworking Spaces
Mit dem Aufstieg der Agilität sind flache Hierarchien, Collaboration und Teamwork zum Alltag in Unternehmen geworden - insbesondere für Software-Development-Teams. Gerade die können ihre Arbeit in einem Großraumbüro aber meist nur schwer oder gar nicht bewältigen - sagen zumindest die Zahlen von devRant. <br /><br /> David Fox erklärt: "Es gibt einfach zuviel Ablenkung: die Kollegen unterhalten sich, Meetings werden verpasst, Telefonanrufe überhört. Es gibt auch eine Vielzahl an Beschwerden über den Kaffee im Büro und andere Annehmlichkeiten - oder eben das Gegenteil davon."
Kollegen
Selbsterklärend: Jeder hat wohl einen Kollegen oder eine Kollegin, den beziehungsweise die er ganz besonders schätzt. Nicht. <br /><br /> Im Fall der Softwareentwickler ist die Abneigung gegenüber Kollegen meist entweder in der mangelnden Qualität ihrer Arbeit oder einem völlig aus dem Leim gegangenen Ego begründet, gibt David Fox preis.
Vorstellungsgespräche
Wenn ein Softwareentwickler auf Jobsuche ist und zum Bewerbungsgespräch geladen wird, gibt es danach meist auch etwas zu meckern: <br /><br /> "Dumme Fragen oder die Lösung von völlig praxisfernen Aufgaben im Bewerbungsgespräch stoßen den Developern ebenso sauer auf, wie ein Gesprächspartner, der überhaupt nicht weiß, was ein Entwickler eigentlich genau macht", so Fox.
Fehler & Bugs
Softwareentwickler haben tagein, tagaus mit Fehlern und Bugs zu tun. Deswegen glaubt devRant-Gründer Fox, dass Entwickler in dieser Sache anders ticken: <br /><br /> "Die meisten anderen Probleme erfahren keine positive Auflösung, aber Bugs und Fehler sind behebbar und das fühlt sich gut an."
Quality Assurance
Die Quality Assurance (QA) - oder Qualitätssicherung - ist ein kritischer Teil der Softwareentwicklung. Dennoch bemängeln Softwareentwickler an QA-Experten häufig dieselben Dinge wie an Produkt- und Projektmanagern, so Fox. <br /><br /> "Die Qualitätssicherung bekommt das Produkt oder Projekt in die Hände, wenn die Entwickler es abgeschlossen haben. Deswegen verstehen sie oft nicht, welche Hürden und Workarounds die Entwickler im Entstehungsprozess bewältigen mussten. Offensichtlich kommt es auch regelmäßig vor, dass QA-Leute die Entwickler bitten, Bereiche nochmals zu überarbeiten, die sie auch selbst bewältigen könnten."

Codeshare

Der Minimalismus-King unter den Collaborative Coding Tools ist Codeshare. Die App liefert dennoch jede Menge Nutzwert für Softwareentwickler, die nicht mehr brauchen als einen Code Editor im Stil von Pastebin. Um mit anderen Developern zusammenzuarbeiten, setzen Sie einfach eine Codeshare-Instanz auf und teilen den Link. Programm-Code, der im Editor erstellt wird, lässt sich mit einem Klick herunterladen, jede Instanz läuft automatisch nach 24 Stunden aus. Eine Videochat-Funktion ist ebenfalls integriert.

Preis: kostenlos

Floobits

Kollaboratives Programmieren in Echtzeit und Chat-Optionen bietet auch Floobits - entweder per Browser oder als Addon für verschiedene Editoren wie Sublime Text, Atom, Neovim, Emacs und IntelliJ IDEA. Visual Studio Code wird allerdings nicht unterstützt. Der Floobits Service ermöglicht mehreren Nutzern (auch mehr als zwei), gleichzeitig zusammenzuarbeiten. Die Rechtevergabe ist dabei sehr granular (no access, read, write, adminitrate) gestaltet. Mit dem Collaborative Coding Tool lassen sich öffentliche und private Workspaces einrichten, Terminals gemeinsam nutzen und Verzeichnisse ohne Beteiligung eines Editors synchronisieren. Für Video- und Text-Chats kommen WebRTC und IRC zum Einsatz.

Preis: kostenlos für bis zu fünf öffentliche Workspaces, privater Workspace kostenlos für eine Woche - uneingeschränkt ab 15 Dollar monatlich

Teletype for Atom

Der Code Editor Atom ist ein Produkt von GitHub und verfügt über eine ausufernde Add-on-Bibliothek. Mit Teletype wird Atom zum Collaborative Coding Tool. Sie können andere Entwickler zu aktiven Tabs in Ihrer Atom-Instanz einladen und in Echtzeit gemeinsam programmieren. Die Zusammenarbeit läuft dabei stets auf Peer-to-Peer-Basis über das WebRTC-Protokoll. Der Nachteil: Teletype bietet keine Features für fortgeschrittene Nutzer, wie etwa eine granulare Rechtevergabe.

Preis: kostenlos

Visual Studio Live Share

Falls Sie oder Ihre Kollegen bereits Visual Studio (Code) nutzen, integriert Microsofts Visual Studio Live Share Collaborative Coding in diese Entwicklungsumgebungen. Projekte können im "read only"- oder "live editing"-Modus geteilt werden, auch Terminals, Debugging Sessions oder Editor-Fenster sind "share-bar". Darüber hinaus steht auch eine Funktion zur Verfügung, um die Schritte einzelner Kollegen in Echtzeit mitzuverfolgen. Sogar laufende Web Application Server können mit anderen Nutzern geteilt werden. Nutzer, die weder Visual Studio noch Visual Studio Code nutzen, können sich per Browser einklinken.

Preis: kostenlos

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation InfoWorld.