Software-Entwicklung und Slack – Ein Dreamteam!

Wirf einen Blick darauf, wie Slack dafür geschaffen wurde, den Erfolg von Entwicklerinnen und Entwicklern effektiv zu fördern – Ab dem ersten Tag bis hin zu unseren aktuellen Best Practices für Entwicklung.

Wow, das ging schnell!

Im Jahr 2009 waren wir ein kleines Team von Software-Entwicklern, die ein Massive-Multiplayer-Game namens Glitch entwickelten.

Wir fingen an, Internet Relay Chat zu benutzen (erinnerst du dich an IRC?), um alle auf demselben Stand zu halten. Im Laufe der Arbeit an dem Spiel wünschten wir uns immer wieder, dass unser IRC-Channel mehr als nur einfache Kommunikation leisten könnte. Also begannen wir, ihn zu optimieren, zu ergänzen und neue Möglichkeiten hinzuzufügen, um die Dinge schneller zu erledigen.

Nun ja, das Spiel war ein Flop, also haben wir uns auf dieses neue Zusammenarbeits-Ding konzentriert, das wir entwickelt hatten. Das war eine gute Entscheidung. Denn letztendlich hatten wir einen hervorragenden Product-Market Fit: eine wirklich effektive Möglichkeit für Teams, zusammenzuarbeiten.

Vielleicht liegt das daran, dass wir nicht versucht haben, etwas zu „designen“. Es gab kein Ego und keine Spekulationen über einen fiktiven Benutzer. Wir waren die Nutzer. So wurde Slack geboren.

Heute ist Slack größer geworden, als wir es uns jemals erträumt hätten – und die Einführung durch Entwickler-Teams jeder Größenordnung ist ein entscheidender Grund dafür. Ja, Slack wird in so ziemlich jeder Abteilung und Nische eingesetzt, doch Software-Entwicklung ist der Bereich, in dem alles seinen Anfang nahm. Und gerade von Software-Entwicklern bekommen wir nach wie vor viel positives Feedback – einer der Gründe, weshalb wir morgens lächelnd zur Arbeit kommen. Es ist schön zu wissen, dass wir etwas schaffen können, was sich direkt auf den Arbeitsalltag von Entwicklern auswirkt.

In diesem Leitfaden wird anhand einiger Beispiele erklärt, wie Entwicklerinnen und Entwickler Slack in ihrem Arbeitsalltag nutzen. Wir hoffen, dass es ein wenig Aufschluss darüber gibt, warum gerade Entwickler offenbar sehr begeistert von Slack sind.

Warum Slack so gut zur Software-Entwicklung passt

Alle erdenklichen nicht-technischen Teams nutzen Slack, und zwar jeden Tag. Die Lösung scheint sich organisch an die jeweilige Arbeit anzupassen.

Doch es hat den Anschein, dass Slack zur Software-Entwicklung passt wie die Faust aufs Auge. Schließlich handelt es sich dabei um eine ziemlich spezialisierte Art von Arbeit.

Wenn man darüber nachdenkt, entwickelt sich die Arbeit im Allgemeinen immer mehr in diese Richtung. Aber Software-Entwicklung ist ein idealer Anwendungsbereich. Sie erfordert eine Art von Zusammenarbeit, die mit E-Mails und Meetings einfach nicht möglich ist. Für diese Art von Tätigkeit wird eine neue Form der Zusammenarbeit benötigt.

Slack: die Channel-basierte Kommunikationsplattform

Leute, die Slack noch nie benutzt haben, betrachten die Plattform als eine Messaging-App. Doch Slack ist sehr viel mehr als das. Die Lösung passt sich an die Arbeitsweise verschiedener Projekt-Teams an, an ihre bestehende Software und an Veränderungen.

  • Channel-basierte Nachrichtenübermittlung

Auf diese Weise können Teams Channels erstellen, die für bestimmte Aufgaben, Projekte oder Probleme bestimmt sind. Zum Beispiel einen Channel #entw-neue-website, in dem sich alle Entwicklerinnen und Entwickler zusammenfinden, um an der neuen Website zu arbeiten. Oder einen Channel #triage-mobile-app, in dem Projekt-Teams zusammenarbeiten, um Fehler in der mobilen App zu beseitigen.

Channels sind viel besser als Einzelnachrichten oder geschlossene E-Mail-Threads, weil sie es einfach machen, die richtigen Leute zur richtigen Zeit in die richtigen Themen einzubeziehen.

  • Eine durchsuchbarer Wissensspeicher

Wissen ist nur dann wertvoll, wenn es auch auffindbar ist. E-Mail-Anhänge verschwinden in der Regel für alle aus dem Blickfeld, die nicht in der E-Mail auf CC gesetzt sind. Slack hingegen ist ein zentraler Ort, an dem alle Beteiligten sämtliche relevanten Dokumente, Unterhaltungen und Entscheidungen finden – wie z. B. bestimmte Produktspezifikationen oder die Unterhaltung über diese neue Funktion von neulich.

  • Eine Integrationsschicht

Mit Slack wird die Software, mit der deine Mitarbeiterinnen und Mitarbeiter den Großteil ihrer Zeit verbringen, (z. B. GitHub, Jira, Jenkins und Trello), in einem Ort integriert, an dem die Arbeit tagtäglich besprochen wird. Dadurch wird der ständige Kontextwechsel minimiert, der durch die Arbeit in vielen verschiedenen Apps entsteht.

Hinweis: Indem diese drei Dinge an einem einzigen Ort zusammengeführt werden, wird das Potenzial jeder einzelnen Komponente noch erhöht. Die zentrale Plattform ist weitaus mehr als die Summe ihrer Teile.

Vorteile für Teams in der Software-Entwicklung

Die richtige Channel-basierte Kommunikations-Plattform hat einen direkten Einfluss auf die Dinge, die für jedes Entwickler-Team am wichtigsten sind: besserer Code, der schneller geliefert wird, optimierte Service-Zuverlässigkeit und eine bessere Erfahrung für Entwicklerinnen und Entwickler (damit deine Mitarbeiterinnen und Mitarbeiter glücklich sind – und bleiben). Jede Software, die dir bei alledem hilft, ist wahrscheinlich einen Blick wert.

„Slack ist eine dynamische Dokumentationsplattform, und alles ist durchsuchbar.“

Malika RajvanshySenior Engineer, Slack

IDC hat uns geholfen, unsere Aussagen mit Zahlen zu belegen: Entwickler-Teams nutzen Slack, um mehr zu erledigen.

So optimiert Slack den gesamten Prozess der Software-Entwicklung

Unsere Entwickler-Teams zählen zweifelsohne zu den erfahrensten Benutzerinnen und Benutzern von Slack für die Software-Entwicklung – sie leben quasi in der App. Doch jeden Tag hören wir nach wie vor von neuen Anwendungsbereichen und interessanten Apps und Integrationen, die von Software-Teams integriert werden.

Gehen wir ein paar von ihnen durch, organisiert nach Phasen im Software-Entwicklungszyklus.

Plan

Slack hilft Produkt-Managern, Designern und Entwicklern, sich darüber einig zu werden, was sie entwickeln und warum.

Details des Slack-Channels
Slack-Thread zum Thema Feedback-Formular für App-Benutzerinnen bzw. App-Benutzer
  • Den gesamten Prozess mit einem einzigen Channel für ein neues Produkt oder eine neue Funktion starten

Er könnte einen Namen wie #funktion-neu-app haben. Jetzt gibt es einen einzigen Ort, um das Projekt auszuarbeiten, Funktionsanforderungen zu sammeln, Alternativen zu diskutieren und grundlegende Entscheidungen bezüglich Funktionalität und UX zu treffen.

  • Wenn Dokumente hier geteilt werden, ist alles stets auffindbar

Slack lässt sich wunderbar mit Google Docs integrieren, sodass alle Dokumente für alle Beteiligten und eventuelle Neuankömmlinge nur einen Klick entfernt sind.

  • Du hast eine Frage? Stelle sie einfach im Channel

Starte eine Diskussion und erhalte eine Lösung, die alle sehen können. Jetzt ist das Ganze dauerhaft festgehalten. Jetzt ist das Ganze dauerhaft festgehalten.

Code

Slack hilft Entwicklern, die vielen beweglichen Teile einer großen Code-Basis aufeinander abzustimmen, was die Entwicklung beschleunigt und die Qualität verbessert. Wenn es an der Zeit ist, mit dem Programmieren zu beginnen, sorgt Slack dafür, dass das gesamte Team am selben Strang zieht:

  • Ein Channel #entw-produkt-name beherbergt alles

Einschließlich der täglichen Arbeit in den Bereichen Entwicklung und QA; Pull-Anfragen, Code-Merges, Design-Revisionen, täglicher Standup-Meetings, Diskussionen usw.

  • Eine zentrale Plattform für die Code-Prüfung

Slack unterstützt jeden Prozess, den Entwicklerinnen und Entwickler zum Verzweigen, Zusammenführen, Prüfen und Veröffentlichen von Code verwenden – unabhängig davon, ob die Entwicklung anhand von Versionszweigen, Funktionszweigen oder eines zusammengeführten Masters erfolgt.

Git-Integrationen (mit GitHub, Bitbucket oder dem Repository deiner Wahl) stellen sämtliche Änderungshinweise direkt in Slack zur Verfügung.

  • Eine neue Art von Standup-Meeting

Standup-Meetings sind ein wichtiger Teil der agilen Entwicklung, doch sie müssen nicht zwangsläufig von Angesicht zu Angesicht stattfinden. Entwickler-Teams benutzen Slack für Standup-Meetings – egal ob jeden Morgen oder jede Woche – und halten nur dann synchrone Meetings ab oder starten Video-Anrufe, wenn diese sinnvoll sind (für viele Entwicklerinnen und Entwickler ist das beste Meeting ein abgesagtes Meeting).

Integrationen mit Software wie Standuply übertragen zusammenfassende Berichte automatisch in Slack, damit deine Projekt-Teams Ziele und Aufgaben teilen, Geschäftskennzahlen verfolgen, Meeting-Notizen posten sowie den Fortschritt und die Zufriedenheit des Projekt-Teams im Blick behalten können.

Checkpoint-Integration in Slack postet Pull-Anforderung im Channel

Wiederverwendung von Code fördern: Die Wiederverwendung von Code ist ein Kernprinzip effizienter Entwickler-Teams, doch es stellt eine Herausforderung dar, wenn Hunderte von Entwicklerinnen und Entwicklern an vielen verschiedenen Produkten beteiligt sind. Bevor sie neuen Code schreiben, können deine Entwicklerinnen und Entwickler sämtliche Slack-Channels durchsuchen, um zu sehen, ob jemand anderes bereits etwas Ähnliches erstellt hat. Der nächste Schritt besteht darin, in den richtigen Channels zu fragen: „Hat schon jemand einen Terminplaner erstellt?“ Hör auf, das Rad neu zu programmieren.

Code mit Snippets erstellen und teilen: Mit Snippets ist es kinderleicht, Code, Konfigurations- und Log-Dateien direkt in Slack zu teilen. Kolleginnen und Kollegen können sie herunterladen, die Rohdatei einsehen und Kommentare hinterlassen.

Slack in Aktion

Erweiterbarkeit als Kernstück

Slack versucht nicht, die Arbeit der Software zu übernehmen, die deine Projekt-Teams bereits nutzen – wie z. B. PagerDuty, GitHub oder Jenkins.

Stattdessen vereint Slack einfach alle diese verschiedenen Apps und bringt die relevanten Informationen aus den Apps in die Channels, in denen die Arbeit besprochen wird (und bietet die Möglichkeit, direkt von Slack aus Aktionen in diesen Anwendungen auszulösen).

„Wann immer ich eine Slack-Integration gesehen habe, habe ich sie aktiviert. Das hat einen gewaltigen Mehrwert geschaffen und uns so viele Schritte in unserem Prozess erspart.”

Thomas LawlessSenior Software Engineer, IBM

Diese Integrationen helfen Entwicklerinnen und Entwicklern, das zu machen, was sie lieben: Systeme schaffen, die einfach funktionieren. Die in diesem Leitfaden präsentierten Beispiele sind nichts weiter als das: Beispiele. Es gibt so viele Möglichkeiten, Slack zu nutzen, wie es Software-Teams gibt, die Slack verwenden.

Test

Das Testen ist fest mit dem modernen Entwicklungs- und Bereitstellungsprozess verflochten. Slack unterstützt einen dynamischen, kollaborativen und transparenten Ansatz für das Testen.

Durch die kontinuierliche Integration wird deine Test-Suite für jeden Merge-Vorgang mit jedem neuen Code-Block ausgeführt. Slack optimiert den Prozess in vielerlei Hinsicht, im Großen wie im Kleinen:

  • Ein Channel #testen–funktion koordiniert die QA

Lass das QA-Team in einem offenen Forum mit Entwicklern zusammenarbeiten.

  • Jira-Integration automatisiert Test-Workflows

Erfasse Issues in Slack und hole sie automatisch in die Pipeline. Sende anpassbare Benachrichtigungen von Jira in deine Channels. Weise Issues innerhalb kürzester Zeit Leuten zu und sei dir sicher, dass sie dort aufgezeichnet werden, wo sie hingehören.

Manche Projekt-Teams benutzen Slack, um Änderungsanfragen automatisch in einen neuen Channel zu verschieben und gleichzeitigTrello oder Asana zu aktualisieren.

  • Einen Channel für jeden Client einrichten

Mit speziellen Test-Channels für iOS, Android und Web.

Jira Slash-Befehl in Slack

Mit Jenkins arbeiten

Viele Teams nutzen Jenkins als ihren Server für kontinuierliche Integration. Es dauerte nicht lange, bis sie neue Möglichkeiten entwickelt hatten, um Jenkins mit Slack zu integrieren und sämtliche Arten von Routine-Entwicklungsaufgaben zu automatisieren.

Ein Beispiel: Die benutzerdefinierte Slack-Integration eines Software-Teams erstellt einen Jenkins-Server, auf dem eine große Test-Suite läuft, wann immer ein Entwickler eine Pull-Anfrage eröffnet.

Wenn die Tests durchgeführt wurden, erscheinen die Benachrichtigungen in den richtigen Slack-Channels. Wenn der Code den Test nicht besteht, wird eine Benachrichtigung an den Entwickler gesendet.

Veröffentlichung

Eine kontinuierliche Lieferung erfordert generell viele kleine Code-Veröffentlichungen, die mit hoher Frequenz implementiert werden. Slack hilft Entwickler-Teams, bestimmte Aspekte davon zu optimieren, indem Workflows und Benachrichtigungen automatisiert werden.

Ein Beispiel: Eines unserer eigenen Software-Teams hat eine App namens Deploy Wizard programmiert, die sich in Arbeitsabläufe integrieren lässt und den Status des Codes im Channel kommuniziert. Sie beginnt mit einer „Kanarienvogel“-Phase (eine winzige Veröffentlichung, um plötzliche Ausfälle zu erkennen) und weitet diese dann schrittweise auf 10, 25, 75 und 100 % der Benutzerbasis aus.

Deploy Wizard-Integration in Slack postet Staging-Updates

Deploy Wizard pingt im Laufe der Bereitstellung die richtigen Entwickler und Channels in Slack an. Das Ganze wird von den jeweils zuständigen Bereitstellungsleitern (speziell ausgebildete Entwickler, die in Dreistundenschichten arbeiten) gemanagt.

Wenn Entwicklerinnen und Entwickler ihren Code in der Staging-Umgebung testen wollen, geben sie das in ihrer Merge-Anfrage an. Die Bereitstellung wird in der Staging-Phase angehalten, bis eine Entwicklerin oder ein Entwickler im Channel #bereitstellung meldet, dass sie oder er den Code getestet hat.

Einige Entwickler-Teams benutzen Slash-Befehle (wie z. B. /deploy_produktname_staging), um eine Bereitstellung direkt über Slack auszulösen. Automatisierte Nachrichten informieren, wenn die Bereitstellung erfolgreich war, mit einem Link, um sie zu überprüfen (oder einem Button, um sie in die Produktion weiterzuleiten).

Abläufe

Entwickler-Teams nutzen Slack, um Fehler-Tickets zu testen, Vorfälle in Rekordzeit zu erkennen und sich gemeinsam Problemen zu widmen.

  • Alle Probleme werden zum Channel #triage-produktname geleitet

Einschließlich Berichte vom Kunden-Support (manuell oder über Integrationen mit Tools wie Zendesk).

  • Integrationen bringen alle Hinweise an einem Ort zusammen

Anstatt zu erwarten, dass Entwicklerinnen und Entwickler E-Mails überwachen oder in Dashboards vorbeischauen, wird Slack zum zentralen Ort, an dem alle Hinweise die am besten geeigneten Leute erreichen, die dann reagieren können.

Die Aggregation von PagerDuty-Ereignissen oder Asana-Tickets und das Posten von diesen in den richtigen Channels verkürzt die Zeit bis zur Klärung von Vorfällen und schafft einen Triage-Trail. Die Team-Mitglieder können direkt von Slack aus zusammenarbeiten, um Vorfälle auszulösen, einzusehen, zu bestätigen und zu beheben.

Ebenso kann Slack alle Web-, Transaktions-, Server- und mobilen Hinweise von New Relic in einen Slack-Channel für eine schnelle Reaktion abrufen. Alle, die neugierig auf den Vorfall sind, können einfach im Channel vorbeischauen und mehr erfahren. Dies reduziert die Anzahl der Manager, die die Reaktions-Teams für ständige Updates unterbrechen. Es ist alles da.

Emojis und Reacjis helfen bei der Fehlersuche und lösen Workflows aus.

Reacjis sind eine effiziente Möglichkeit, die Reaktionen von Team-Mitgliedern zu erfassen – aber sie sind auch eine Möglichkeit, automatisierte Arbeitsabläufe auszulösen. Eine App sammelt diese, damit sie aggregiert, markiert und umgesetzt werden können. Alle offenen Issues (Augen-Emoji, aber kein Häkchen) werden in PagerDuty angezeigt.

Ein automatisierter Channel #entscheidungen: Manche Projekt-Teams benutzen das Richterhammer-Emoji, um anzuzeigen, ob eine Entscheidung getroffen wurde. Ein Bot leitet dann alle diese Entscheidungen in einen Channel #entscheidungen weiter, wo das Management den Entscheidungsfluss einsehen kann – und die Team-Mitglieder mühelos suchen können.

Und wir haben einen Bot entwickelt, der diese in einem speziellen Channel sammelt und über sie berichtet.

Der Personalaspekt

Software-Entwickler sind gefragt. Wenn du deine Talente halten möchtest, musst du ihnen die bestmögliche Mitarbeitererfahrung bieten. Das richtige Tool für Zusammenarbeit kann dabei eine große Rolle spielen: Sie trägt dazu bei, Reibungsverluste zu reduzieren, Transparenz zu schaffen, Routineaufgaben zu automatisieren und Team-übergreifend zu arbeiten.

Rede mit einem beliebigen Team für Software-Entwicklung, das Slack benutzt. Frag nach, wie sie Channels, Apps und Integrationen verwenden. Frag anschließend, was sie ohne Slack machen würden.

Neue Entwickler onboarden

Zwei neue Entwickler kommen ins Team. Wie bringst du sie auf den aktuellen Stand?

Alte Methode: Jede Menge Onboarding-Meetings und eine Reihe von weitergeleiteten E-Mail-Threads, aus denen sie vielleicht schlau werden können.

Neue Methode: Lade sie in den Channel #entw-neu-produkt ein, um die gepinnten Beiträge zu lesen, wie z. B.:

  • Die Produktspezifikationen
  • Die technischen Spezifikationen
  • Die Designs

Wenn es sich dabei um Google Docs-, DropBox- oder OneDrive-Dokumente handelt, werden sie immer auf dem neuesten Stand gehalten. Sie können außerdem alle bisherigen Unterhaltungen und Entscheidungen nachlesen und sehen, welche Personen beteiligt waren. So sollte das Onboarding einer neuen Entwicklerin oder eines neuen Entwicklers laufen.

So nutzen Software-Entwickler Slack

Das war es auch schon mit unserer kurzen Tour dazu, wie Slack Software-Teams dabei unterstützt, ihre Arbeit zu optimieren, zu automatisieren und zu beschleunigen. Wir hoffen, dass wir die wichtigsten Punkte vermitteln konnten:

  • Das ist etwas völlig Neues: Slack hilft Entwicklerinnen und Entwicklern, auf neue Art zu arbeiten. Slack ist weitaus mehr als eine Messaging-App.
  • Slack ist super flexibel: Mit Channels, Apps und Integrationen, die ihre individuelle Arbeitsweise widerspiegeln, können sich deine Projekt-Teams die App „ganz zu eigen machen“.
  • Slack hilft dir, mehr aus deiner bestehenden Software herauszuholen: Von GitHub und Bitbucket bis hin zu Jenkins, Jira, PagerDuty, New Relic, Zendesk ... Was auch immer deine Entwicklerinnen, Entwickler oder deine Produkt-, QA- und Support-Leute benutzen – sie werden diese Tools effizienter einsetzten, indem sie ihre Arbeit in Slack zusammenführen. Tatsächlich stehen in unserem App-Verzeichnis aktuell 2.200 Apps zur Verfügung.
  • Slack schafft einen Mehrwert in jeder Phase des Entwicklungszyklus: Von der Planung über Entwicklung, Testen und Bereitstellung bis hin zur Inbetriebnahme.

Software-Entwicklerinnen und -Entwickler lieben Slack: Und das bedeutet, dass sie die Lösung annehmen und ihre Nutzung der App im Laufe der Zeit ausweiten werden.

„Wir haben etwas, was wir als ‚End-to-End-Pipeline‘ bezeichnen, die mit dem Quellcode beginnt und sich bis zur Produktimplementierung durchzieht. Und jetzt haben wir Slack in alle wichtigen Meilensteine für diesen Prozess integriert.“

Thomas LawlessSenior Software Engineer, IBM

Wenn du mehr sehen möchtest, vereinbare einen Termin für eine Demo – oder bitte einen unserer Entwickler, dir unsere eigene Slack-Instanz zu zeigen. Wir sind stolz darauf.

Fußnoten

  1. IDC-Studie, „The Business Value of Slack, 2017“, gesponsert von Slack

War diese Ressource hilfreich?

0/600

Super!

Vielen Dank für dein Feedback!

Okay!

Vielen Dank für dein Feedback.

Hoppla! Wir haben gerade Schwierigkeiten. Bitte versuche es später noch einmal!