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 Projekt-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 Projekt-Teams zu offenen Channels (z. B. #development-team
für das Entwicklungs-Team), damit Team-Mitglieder Probleme offen besprechen und Expertinnen und Experten aus anderen Projekt-Teams mühelos beitreten können, um ihren Input beizusteuern.
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. Die Prüferin kann dann von dieser Slack-Nachricht aus in das System gehen, um den Code direkt zu überprüfen.
„Bevor wir Slack benutzten, mussten Entwicklerinnen und Entwickler zuerst die richtige Person zum Prüfen der Codes finden und dieser Person dann eine E-Mail senden oder einen Privatchat starten“, erklärt Lawless.
Seitdem die Workflows der Projekt-Teams über Slack laufen, können sie ihr Arbeitspensum beibehalten, in der Gewissheit, dass sie bei Bedarf über einzelne Code-Prüfungen benachrichtigt werden. Diese können sie dann direkt von Slack aus zur Kenntnis nehmen und bearbeiten.
Projekt-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 Pull-Requests, um automatische Code-Prüfungen durch Kollegen zu veranlassen, und benachrichtigt das Team, wenn die Prüfungen abgeschlossen sind. Dadurch müssen die Team-Mitglieder nicht zwischen Anwendungen wechseln, 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 Channels als Ausgangspunkt unserer Analyse für unsere Nachbesprechungen. Das Tolle ist, dass nichts vergessen wird, da wir den 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 Channels als Ausgangspunkt unserer Analyse für unsere Nachbesprechungen. Das Tolle ist, dass nichts vergessen wird, da wir den 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. Das hat einen gewaltigen Mehrwert geschaffen und uns so viele Schritte in unserem Prozess erspart.“