Zum Inhalt gehen

DevOps-Jobs bei Capgemini: Diese Tools unterstützen im agilen Software-Projekt

Capgemini Karriere
20. Juni 2019

DevOps spielt eine wesentliche Rolle in der agilen Softwareentwicklung – als Mindset und Kultur. Doch wie können Tools und Technologien DevOps unterstützen? Jasper Hahn berichtet im Interview über agile Arbeitsprozesse und den Einsatz von Tools in DevOps-Projekten bei Capgemini.

Als Associate Cloud Architect bei Capgemini bringt Jasper als ursprünglicher Dev das Ops mit ins Team und baut bei unseren Kunden cloud-native Architekturen mit auf. Er ist einerseits Entwickler und schreibt Code und hat andererseits im Blick, was bei neuen technischen Anforderungen im Projekt architektonisch berücksichtigt werden muss. Im Interview gibt er einen Einblick in DevOps-Jobs bei Capgemini und zeigt auf, welche Tools und Arbeitsprozesse in einem DevOps-Projekt zum Einsatz kommen.

Tätigkeiten bei DevOps-Jobs

Welche grundlegenden agilen Prinzipien zeichnen den Alltag eines Entwicklers in einem DevOps-Team aus?

Bei DevOps arbeiten wir in crossfunktionalen Teams und verfolgen das Ziel, in kleinen Portionen, schnell qualitative Lösungen zu entwickeln, zu testen und zu iterieren. So schaffen wir ein zielorientierteres Ergebnis, als mit klassischen Vorgehensweisen. Daher haben Entwickler und Teammitglieder bei uns Aufgaben, die vielleicht ein bisschen vielfältiger sind als das, was man aus der traditionellen Softwareentwicklung kennt. Wir arbeiten sehr eng miteinander zusammen, damit wir Anforderungen End-to-End umsetzen können, also vom Requirement bis zur tatsächlich getesteten Software. Infrastrukturanpassungen, Code-Änderungen und Testen können dabei in einem Durchgang erledigt werden, was den Prozess sehr schnell macht.

Wie gestaltet ihr eure Arbeitsprozesse in einem DevOps-Projekt?

Allgemein gibt es beim agilen Arbeiten leichtgewichtige Arbeitsprozesse. Unser Fokus liegt darauf, eine gute Software zu entwickeln und uns nicht mit Meetings oder Diskussionen aufzuhalten. Daher nutzen wir speziell Scrum gerne. Wir möchten in sinnvollen Portionen, lieferbare und vorzeigbare Software produzieren. Ein bewährtes Prinzip ist dafür das sogenannte „Time Boxing“: Wir geben den Aufgaben im Sprint einen fixen Zeitrahmen und bemühen uns innerhalb dessen möglichst viel für unser gesetztes Ziel zu erreichen. Am Ende eines Sprints ist immer Zeit für eine Retrospektive. Je nach Team können wir dann bestimmte Prozessschritte optimieren.

Für das kollaborative Arbeiten im agilen Umfeld sind Post-its sehr wertvoll, um Meetings eher im Workshop-Charakter zu gestalten. Örtlich verteilte Teams verwenden hierfür äquivalente Online-Lösungen wie Surface Hub.

Was sind die Herausforderungen in DevOps-Projekten?

Es wird eine engere Zusammenarbeit erfordert, als in klassischen Umgebungen. Wir kommunizieren nicht nur über größere Entfernungen, sondern auch über Fachlichkeitsgrenzen hinweg. Experten aus verschiedenen Teilgebieten und Abteilungen sind Teil eines Teams und arbeiten auf Augenhöhe miteinander. Das finde ich enorm spannend und man merkt schnell, dass man als Team wächst und nicht als Einzelgänger.

DevOps-Tools

DevOps ist ein Mindset. Welche Rollen spielen Tools und Technologien für den Erfolg einer DevOps-Strategie?

Grundsätzlich kann man sagen, dass die Tools einen großen Einfluss auf den Erfolg einer DevOps-Strategie haben. Die DevOps-Tools brauchen wir, damit wir uns auf unsere Software fokussieren können. Automatisierung ist dabei ein wichtiger Punkt und das bringen die meisten Tools heute mit. Auch Tools, die einem dabei helfen, leicht reproduzierbare Sachen zu schaffen und jederzeit eine Nachvollziehbarkeit vorweisen, sind bei der Arbeit in einem DevOps-Team sehr wichtig.

Welche Tools/Technologien werden bei Capgemini verwendet?

Es gibt verschiedene Tools, die bei Capgemini zum Einsatz kommen. Wir versuchen immer, Open-Source-Lösungen einzusetzen, die in der Kommando-Zeile laufen können und wofür wir Konfigurations-Dateien einchecken können.

• Mit Git arbeiten wir jeglichen Code, auch Infrastruktur-Code und Automatisierungscode, in die Versionsverwaltung ein, um eine Nachvollziehbarkeit zu schaffen.

Concourse ist ein Open-Source-Tool, das für uns Jobs über Skripte ausführt. Es hat eine minimale grafische Oberfläche, in der man nichts konfigurieren kann. Das passt sehr gut zu einer DevOps-Arbeitsweise.

• Auch Jenkins-Server, die man über Code konfigurieren kann, sind im Bereich DevOps-Automatisierung eine passende Lösung. Inzwischen kann hier das Team gemeinsam Verantwortung tragen und Code schreiben, der unter dem 4-Augen-Prinzip in die produktive Software gebracht wird.

• Da bei uns im agilen, crossfunktionalen Team die Kommunikation und Transparenz sehr wichtig ist, setzen wir in vielen Projekten JIRA ein, was ermöglicht, dass alle auf dem gleichen Stand sind.

• Am liebsten habe ich einen Account bei einem Cloudprovider wie AWS oder Azure, weil ich damit die Freiheit habe, alles einzusehen. Hier gibt es Konzepte wie Managed Services, die uns gewisse Aufgaben abnehmen. Außerdem nutzen wir auch Serverless-Konzepte oder self-hosted-Plattformen wie OpenShift, was für einige Anwendungsfälle sehr interessant ist. Im AWS-Umfeld benutze ich persönlich gern Cloud Formation als Infrastructure-as-Code-Tool, und andere Teams benutzen beispielsweise TerraForm.

Was beeinflusst die Auswahl der Tools in euren Projekten?

Die konkrete Technologie hängt immer davon ab, was im Kontext und für den jeweiligen Kunden sinnvoll ist. Grundsätzlich kann ein Team frei entscheiden, welches Tool für eine gewisse Aufgabe am besten ist. Man muss also nicht zwanghaft ein bisher verwendetes Tool für eine Aufgabe verbiegen. Wir tragen eine gemeinsame Verantwortung, deshalb kann es manchmal auch sinnvoll sein, auf etwas Bewährtes zu setzen, wenn wir stabile Software bauen möchten.

Bei der Auswahl eines Tools stellen wir uns drei zentrale Fragen:

  1. Kann uns das Tool bei dem, was wir tun, unterstützen?
  2. Gibt es eine starke Community hinter dem Tool und ist es reif genug für den produktiven Einsatz?
  3. Haben wir Expertise damit? Diesen Punkt können wir relativ gut abfangen, da wir innerhalb von Capgemini Communities haben, in denen wir uns austauschen können. Wir haben Experten, die uns für neue DevOps-Tools onboarden können. Zudem haben wir viele interne Trainings, die sich auch kurzfristig organisieren lassen.

DevOps-Jobs bei Capgemini

Welche DevOps-Jobs gibt es bei Capgemini?

In unseren DevOps-Projekten gibt es neben den Software Engineers einen Product Owner, der die Fachlichkeit gut kennt und Entscheidungen über die Umsetzung spezifischer Anforderungen treffen kann sowie einen Scrum Master, der das Team arbeitsfähig macht.
Ein DevOps oder Agile Coach ist nicht fest einem Team zugeordnet, sondern betreut mehrere Teams. Dessen Aufgaben sind z. B. dem Team beizubringen, wie man mit Methoden und Materialien gut arbeitet. Ein DevOps Coach unterstützt den Product Owner beispielsweise dabei, wie Prozesse gemeint sind und was die Motivation hinter Zeremonien im Scrum-Kontext sind.
Die Trennschärfe der verschiedenen Rollen wird in DevOps-Projekten immer schwächer, weil wir so eng zusammenarbeiten. Jeder hat nach wie vor seine Expertise in einem Gebiet, allerdings erwarten wir immer, dass man auch über den Tellerrand hinausschaut und gut versteht, was die anderen Teammitglieder machen und auch einige der Aufgaben der anderen übernehmen kann.

Welche Qualifikationen und Vorerfahrungen sollten Bewerber für DevOps-Jobs mitbringen?

Das Wichtigste sind Teamfähigkeit und die Bereitschaft, neue Technologien, Tools oder Programmiersprachen kennenzulernen. Zertifizierungen sind weniger wichtig. Vielmehr sollte man die Konzepte der DevOps-Tools verstehen und in der Lage sein, sich neue Tools anzueignen. Wenn man z. B. schon mal mit Jenkins gearbeitet hat und die grundlegenden Prinzipien versteht, dann ist man auf jeden Fall gut gerüstet. Wir sind also immer offen für DevOps-Neulinge – als gelernter Programmierer war DevOps auch für mich neu.

Welche Weiterbildungsmöglichkeiten im Bereich DevOps bietet Capgemini?

Neue Kollegen werden in ein Projekt gut eingearbeitet. Darüber hinaus gibt es Schulungen, mit denen man sich vorbereiten kann, bevor man mit neuen Technologien arbeitet. Momentan wird ein Fokus auf die großen Cloudplattformen wie AWS und Azure gelegt. Es gibt Trainings zu Agilität und DevOps sowie Grundlagentrainings zu Software-Engineering, in denen State-of-the-Art-Methoden berücksichtigt werden. Insgesamt sind diese Themen akut so wichtig, dass unsere Lehrkataloge und Lehrinhalte ständig weiterentwickelt werden, um Bewerber optimal auf DevOps-Jobs vorzubereiten.

Vielen Dank Jasper, für den Einblick in die DevOps-Tools und DevOps-Jobs bei Capgemini.

Sie leben agile Arbeitsweisen und suchen eine Herausforderung im Bereich DevOps? Dann bewerben Sie sich jetzt als Agile/DevOps Coach (w/m/d) bei Capgemini. Wir suchen außerdem Scrum Master (w/m/d) und DevOps Engineers (w/m/d) oder Junior-Softwareentwickler (w/m/d) mit Interesse für agile Projekte.