So nutzt das Engineering-Team von IBM Slack für alle Phasen der Entwicklung

A woman working on a large computer.

Diesen Beitrag auf FranzösischEnglisch, und Japanisch.

Ganz gleich, wie viel Fortschritt Thomas Lawless, Senior Software Engineer bei IBM, oder sein Team am Vortag gemacht hatten – jeder Arbeitstag begann damit, nachzuschauen, ob es Code zu prüfen gab. „Es war, als ob wir den Prozess jeden Morgen neu definieren würden“, sagt er.

Lawless ist für die Leitung von Produktion, Implementierung und Bereitstellung einiger der größten Intranet-Anwendungen von IBM zuständig. „Meine Zuständigkeit umfasst Entwicklung, fortlaufende Integration, Test-Automatisierung und operative Abläufe“, erklärt er, „und das bedeutet, dass ich jeden Tag mit 40 oder 50 verschiedenen Leuten arbeite, und all das in verschiedenen Teams.“

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

Ein wesentlicher Aspekt der Arbeit von Lawless besteht in der Einführung von Entwicklungstechniken und Services zur Verbesserung der operativen Abläufe und der Bereitstellungsgeschwindigkeit. Er begann vor über einem Jahr, Slack mit anderen Teams innerhalb von IBM als Nexus für die Team-Kommunikation zu nutzen, aber ihm wurde schnell klar, dass Slack außerdem zum Sammeln von nicht-menschlicher Kommunikation wie System-Warnungen und Benachrichtigungen aus anderen Services hilfreich ist.

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

Verwaltung von Entwicklungs- und Bereitstellungsprozessen in Slack

Bei IBM tendieren Teams zu offenen Channels (z. B. #development-team für das Entwicklungs-Team), damit Team-Mitglieder Probleme offen besprechen und Experten aus anderen Teams mühelos beitreten können, um ihren Input beizusteuern.

Thomas Lawless

Thomas Lawless, Senior Software Engineer, IBM

Team-Channels enthalten Nachrichten von Personen sowie System-Benachrichtigungen von der Vielzahl an Anwendungen, die sie nutzen. Nehmen wir z. B. an, ein Entwickler reicht eine Benutzer-Geschichte zur Prüfung im Quellcode ein. Das System löst eine Benachrichtigung im Slack-Channel des Teams aus, wodurch alle darüber informiert werden, dass neuer Code zur Prüfung bereitsteht. Der Prüfer kann dann von dieser Slack-Nachricht aus in das System gehen, um den Code direkt zu überprüfen.

„Bevor wir Slack benutzten, musste ein Entwickler die Person finden, die seiner Meinung nach der Prüfer sein sollte, und dieser Person dann eine E-Mail senden oder einen Privatchat mit ihr starten”, erklärt Lawless.

Nun, da die Workflows der Teams über Slack laufen, können sie das Tempo, mit dem sie Fortschritte machen, beibehalten, in der Gewissheit, dass sie bei Bedarf über einzelne Code-Prüfungen benachrichtigt werden, welche sie dann direkt von Slack aus zur Kenntnis nehmen und bearbeiten können.

Teams für besseres Vorfalls-Management bei System-Warnungen mobilisieren

Hier ist ein kurzer Blick auf einige beliebte Team-Channels bei IBM und die Arten von Unterhaltungen und Benachrichtigungen, die dort landen:

#help-services: Sammelt Benachrichtigungen über Pull-Anforderungen, um automatische Code-Prüfungen durch Kollegen zu veranlassen, und benachrichtigt das Team, wenn die Anforderung genehmigt wurde, wodurch Team-Mitglieder nicht zwischen Anwendungen wechseln müssen, um das neueste Update zu erhalten. Das Team nutzt außerdem seine Jenkins /Travis CI-Integration, die das Team benachrichtigt, wenn der Status eines Build sich ändert.

#help-deployments: Team-Mitglieder werden über fehlgeschlagene Implementierungen benachrichtigt, während Änderungen am Code die Test-Automatisierung durchlaufen.

#help-tasks: Postet Benachrichtigungen, wenn ein Fehler bei Batch-Verarbeitungen auftritt.

#starfleet-monitoring: Für Lauftzeit-Monitoring und Vorfalls-Management werden Benachrichtigungen aus NewRelic, Splunk und PagerDuty hier gepostet.

„Der Channel dient als eine Art Audit-Trail“, sagt Lawless. „Wir nutzen diese Vorfalls-Channels als Ausgangspunkt unserer Analyse für unsere Nachbesprechungen, und das Tolle ist, dass nichts im Unklaren ist, weil wir diesen gesamten Verlauf zur Hand haben.“

Lawless erklärt, dass, wenn ein Hinweis über einen Ausfall oder einen Vorfall in Slack erscheint, die zuständigen Team-Mitglieder einen neuen, vorfallsspezifischen Channel erstellen, in dem sie potenzielle Lösungen besprechen können und wo jeder bei Bedarf weitere Experten einladen kann.

Wenn das Problem behoben wurde, hat das Team eine Dokumentation des gesamten Vorfalls, einschließlich aller Dateien, Screenshots, Fehlermeldungen und Hinweise, die besprochen wurden, während auf eine Lösung hingearbeitet wurde.

„Der Channel dient als eine Art Audit-Trail“, sagt Lawless. „Wir nutzen diese Vorfalls-Channels als Ausgangspunkt unserer Analyse für unsere Nachbesprechungen, und das Tolle ist, dass nichts im Unklaren ist, weil wir diesen gesamten Verlauf zur Hand haben.“

Kürzlich haben Lawless und sein Team angefangen, Slack mit Anbietern der diversen Services, die sie verwenden, zu nutzen. Er hat festgestellt, dass die meisten Unternehmen gerne einen geschlossenen Slack-Channel Team-übergreifend teilen, sodass sie über Probleme und Fragen sprechen können, die eventuell vorliegen, was jede Menge Hin und Her erspart.

Erheblich mehr Produktivität durch die Reduzierung zusätzlicher Schritte

Lawless und sein Team haben Slack in jede Stufe des Entwicklungsprozesses integriert – vom Schreiben und Testen des anfänglichen Quellcodes bis hin zur endgültigen Implementierung. Anstatt jeden Morgen damit zu verbringen, nach neuem Code Ausschau zu halten, den es zu prüfen gilt, machen alle genau dort weiter, wo sie am Vortag aufgehört haben.

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

Slack is the collaboration hub, where the right people are always in the loop and key information is always at their fingertips. Teamwork in Slack happens in channels — searchable conversations that keep work organized and teams better connected.