Softwareentwicklung 2020

Team, Technologie und Erfahrung

Entwicklung und Betrieb komplexer Softwaresysteme sind für moderne Unternehmen unerlässlich. Dabei hat sich der DevOps-Ansatz durchgesetzt, der Teams aus Entwicklern und Betriebskollegen zusammenbringt, um eine effiziente und möglichst fehlerfreie Software zu ermöglichen. Jan Dittberner und Stefan Ocke, Softwarearchitekten bei der T-Systems Multimedia Solutions (MMS), erklären im Interview, wie Teamkultur, Methoden und Erfahrung dabei zusammenspielen.

Welche Anforderungen werden an die Softwareentwicklung und deren Betrieb im Jahr 2020 gestellt?

Stefan Ocke: Die Anforderungen zeichnen sich vor allem durch ihre Heterogenität aus. Unterschiedlich große Kunden benötigen unterschiedliche Systeme. Die Hauptaufgabe besteht darin, komplexe Systeme beherrschbar zu machen. Große Themen müssen so zerlegt werden, dass jede kleine Einheit verstanden werden kann. Häufig betreuen wir Kunden bei der Neuentwicklung und Erweiterung bestehender Systeme. Design und Abstimmung der verschiedenen Schnittstellen bilden dabei die Schlüsselfunktionen. Nur so können Systeme robust gebaut und betrieben werden. Die MMS setzt hier auf DevOps, also die Zusammenarbeit von Entwicklern und Betriebskollegen. Dabei werden auch die gegebenenfalls bereits existierenden Betriebsabteilungen des Kunden einbezogen, mit denen wir dann Automatisierungsskripte und mehr gemeinsam entwickeln. Dieser Ansatz vermeidet teure Fehlentwicklungen, die zwar in der Theorie funktionieren, sich allerdings später als fehlerhaft herausstellen.

 

DevOps Reifegradanalyse
Welche Potentiale stecken in DevOps? Reagieren Sie schnell auf Kundenwünsche, Entwickeln Sie ein gemeinsames Verständnis der End-to-End Wertschöpfungskette. Vermeiden Sie Kosten durch Qualitätsprobleme.
Zum Angebot

Wie geht Ihr dabei vor?

Jan Dittberner: Zunächst analysieren wir intensiv die Bestandssysteme, die ein Kunde mitbringt. Es existieren immer schon Systeme, die ein Kunde nutzt und auf die er häufig nicht verzichten kann oder möchte. Unsere Lösungen müssen dann auf diese Systeme abgestimmt werden. Deshalb entwickeln wir zunächst gemeinsam mit dem Kunden ein Verständnis dafür, was das System fachlich leisten soll. Es geht darum, herauszufinden, was wir ändern können bzw. dürfen und was nicht. Nachdem wir ein Verständnis für die verwendete Infrastruktur bekommen haben, betrachten wir noch die technischen und (unternehmens-)politischen Hintergründe, die aus Kundensicht relevant sind. Anschließend kommt dann die für den Kunden passende Technologie zum Beispiel in Form von Spring-Boot-Microservices und passende Analyse- und Strukturierungsansätze wie Domain Driven Design (DDD) zum Einsatz.

 

Wie läuft dabei die interne Zusammenarbeit in Euren Teams ab?

Stefan Ocke: Wir arbeiten mit agilen Methoden der Zusammenarbeit. Scrum ist bei uns ein großes Thema, jedoch passen wir die Vorgehensweise an die Entwicklungsgegebenheiten des Teams und des Projektes individuell an. Ein reines Vorgehen nach Lehrbuch findet bei uns keine Anwendung, da die Bedürfnisse des Projektes an erster Stelle stehen. Der Erfolg des Teams in einem Projekt benötigt eine individuell angepasste Lösung. Durch die regelmäßigen Stand-Ups, Reviews und Sprintplanungen weiß jeder, wie der Stand des Projektes ist und wer welche Aufgaben übernimmt. Das funktioniert bei uns auch dann gut, wenn nicht alle Projektmitglieder an einem Ort sitzen.

Jan Dittberner: Der Wissenstransfer ist generell das zentrale Stichwort unserer Zusammenarbeit. Wissen wird in den Teams kommuniziert und geteilt, wodurch eine breite Expertise-Basis entsteht und auch die zwischenmenschliche Verständigung gefördert wird. Auch die Stabilität eines Projektteams ist wichtig, damit das Team die gegenseitigen Stärken und Expertisen kennt und wichtiges Projektwissen im Team gehalten werden kann.

 

Was macht die Softwareentwicklung der MMS aus?

Jan Dittberner: Unsere Softwareentwicklung zeichnet sich vor allem durch ihre Qualitätskontrolle aus. Bereits während der Etablierung eines Systems kommen Tools zur Messung der Qualität zum Einsatz. Dabei setzen wir auf automatisierte Funktions-, Regressions- und Schnittstellentests. Wir übernehmen die Ende-zu-Ende Verantwortung bis zum Livegang der Systeme. Durch die qualitätssichernden Maßnahmen während der Entwicklung eines Systems ersparen wir uns viel Stress und schlaflose Nächte, wenn ein System oder Release einmal im Produktivbetrieb ist. In der MMS haben wir mit unserer Technikabteilung und verschiedenen Projektfeldern eigene Tools zur Automatisierung und Qualitätssicherung entwickelt. Darüber hinaus haben wir ein eigenes zertifiziertes Testlabor, das Test and Integration Center (TIC).

Stefan Ocke: Diese Maßnahmen sind eine gute Ergänzung zu unserem Entwicklungs-Know-how. Qualitätssicherung wird bei vielen Anbietern zu Beginn eines Prozesses häufig vergessen, wodurch sich später oft teure Probleme ergeben. Die MMS stellt die Qualität der Entwicklungen von Anfang an in den Fokus.

 

Ausgesprochen Digital: DevOps | Podcast
Was ist DevOps? Wie kam es zur Entwicklung dieser Methode? Ist diese Arbeitsweise sinnvoll? Was sind vielleicht Probleme bei dieser Neugestaltung im Team? Das und mehr erfahren Sie in unserer Podcast-Serie rund um "DevOps".
Gleich reinhören

Welche Qualitäten müssen Dienstleister für eine erfolgreiche Kundenbetreuung mitbringen?

Jan Dittberner: Flexibilität ist das Kernelement unserer Kundenberatung. Auf Kundenanforderungen und Änderungswünsche gehen wir flexibel ein. Das ist wichtig, um dem Kunden ein System zu liefern, das wirklich seinen Anforderungen entspricht. Darüber hinaus gehört auch ein tiefes technisches Fundament zu unserer Arbeit. Wir möchten unsere Kunden sinnvoll beraten, wobei auch die langjährige Erfahrung der MMS hilft, die wir durch viele Kundenprojekte gesammelt haben.

Stefan Ocke: Auch die Kommunikationsbasis muss stimmen, weshalb wir im Rahmen des Domain Driven Design (DDD) eine einheitliche, präzise und vor allem eindeutige Sprache finden. Die Ubiquitous Language ermöglicht es, ein gemeinsames Verständnis der Fachlichkeit zu entwickeln. Diese gemeinsame Sprache, die im Projekt gesprochen wird, verhindert Missverständnisse oder einen unnötigen Übersetzungsaufwand. So können wir Dinge schnell konkretisieren und das Anforderungsprofil schärfen. Natürlich macht einen guten Dienstleister auch aus, mögliche Auswirkungen schon während der Entwicklung abzuschätzen, um spätere Fehler zu vermeiden. Agiles Vorgehen und DevOps-Ansatz schaffen die dafür notwendigen Feedbackschleifen.

Über die Autoren

Jan Dittberner ist Softwarearchitekt bei der T-Systems Multimedia Solutions (MMS). Er arbeitet seit mehreren Jahren als Architekt in großen IT-Infrastrukturprojekten. Daneben engagiert er sich in der Software Engineering Community innerhalb der T-Systems MMS und beschäftigt sich intensiv mit Themen wie DevOps, Automatisierung, Microservices und Security. Jan Dittberner ist Mitorganisator des Dev Day Dresden und hält Vorträge auf Technologiekonferenzen. Darüber hinaus arbeitet er als Developer im Debian Projekt und als Infrastrukturteamlead bei CAcert mit.

Stefan Ocke ist Softwarearchitekt bei der T-Systems Multimedia Solutions. Dort arbeitet er in seinen Projekten mit Domain Driven Design und berät Kollegen zu diesem Thema. Er ist schon lange in Spring-Projekten unterwegs. Seit 2015 gehört auch die Frontendentwicklung mit Angular 2 zu seinen Aufgaben, z. B. ist er verantwortlicher Architekt für caseramp. Er interessiert sich darüber hinaus für praxistaugliche Ansätze zur Codegenerierung und ist Entwickler des Open Source Projektes japkit.