DevOps wird Mainstream

12 Trends in der Softwareentwicklung 2016

14.01.2016 von Christoph Lixenfeld
Die Art, wie Software entsteht, wird sich massiv verändern, sagt Forrester. Ursache sind vor allem die hohen Ansprüche der Kunden.
  • Schon 2016 sollen sich agile Methoden der Softwareentwicklung auf breiter Front durchsetzen.
  • Das klassische Plan-Build-Run ist dem durch die Digitalisierung bestimmten Tempo nicht mehr gewachsen.
  • Wichtig ist, dass sich Unternehmen auf den damit verbundenen Kulturwandel einlassen.

Software, da sind sich alle Analysten einig, ist in den kommenden Jahren einer der zentralen Posten in den IT-Budgets. Weil im Grunde alle Aspekte von Digitalisierung softwaregetrieben sind, egal, ob es um Business Intelligence, Analytics, mobile Apps oder um was auch immer geht. Ohne die richtige Software lässt sich nichts auswerten, nichts berechnen und auch nichts mehr verkaufen.

Tendenziell hat das zwar die Rolle von Entwicklern und Entwicklungsabteilungen gestärkt, zugleich aber mussten sich Developer den immer gleichen Vorwurf anhören. Der da lautete: "Ihr seid zu langsam". Und: "Ihr seid zu unflexibel."

In der Tat wird das klassische Wasserfallmodell - planen, bauen, testen und schließlich (hoffentlich) installieren - dem Tempo, das die Digitalisierung vorgibt, kaum noch gerecht. Vor allem das traditionelle Ein-Schritt-nach-dem-anderen, die Tatsache, dass nichts parallel geschah und deshalb ein Umsteuern während des Prozesses kaum möglich war, hält mittlerweile niemand mehr für zeitgemäß.

Noch immer entsteht Software oft so, wie Wasser den Berg runterfließt: immer eins nach dem anderen, nichts passiert parallel. In Zeiten der Digitalisierung ist diese Methode aber nicht mehr schnell genug.
Foto: Marvellousworld - Fotolia.com

Wie Softwareentwicklung anders laufen kann, ist durchaus bekannt und an dieser Stelle auch schon mehrfach beschrieben worden. Entsprechende Methoden, die für mehr Flexibilität und Schnelligkeit stehen, heißen zum Beispiel DevOps,Scrum oder Continous Delivery.

Die wenigsten bauen ihre Strukturen um

Ihnen gemeinsam ist, dass sie einzelne Schritte miteinander verweben; Teile der neuen Software werden bereits getestet, obwohl (beziehungsweise: weil) andere noch gar nicht fertig sind. Fehler und Schwächen fallen so frühzeitig auf.

Nachteil oder besser gesagt Herausforderung an der Sache ist, dass diese neue Art zu entwickeln nur dann gut funktioniert, wenn das betreffende Unternehmen seine Organisationsstrukturen darauf einstellt, will sagen abteilungs- und hierarchieübergreifend an dem Projekt arbeitet.

Den Mut und die Kraft dazu haben nur die Wenigsten. Deshalb sindDevOps & Co. zwar hundertfach theoretisch beschrieben, fristen in der Praxis aber eher ein Nischendasein.

Knackpunkte in agilen Entwicklungsteams
Knackpunkte in agilen Entwicklungsteams
Seit die Verfasser des "Agilen Manifests" im Jahr 2001 den klassischen Phasenmodellen wie Wasserfall und V-Modell den Kampf angesagt haben, erlebt die Softwareentwicklung eine tief greifende Veränderung. Mittlerweile ist Agilität fast zu einem Hype-Begriff geworden. Darüber gerät gelegentlich aus dem Blick, was die Methode tatsächlich leisten kann und an welchen Stellen das ursprüngliche Dokument von 2001 aufgrund von Projekterfahrungen aus mehr als einer Dekade präzisiert werden sollte.
Crossfunktionale Teams aus Spezialisten und Generalisten bilden
Teamübergreifende Governance sichern
Verantwortungsvolles und pro-aktives Handeln der agilen Teammitglieder
Ständige Kommunikation innerhalb und zwischen Sprint-Teams
An agiler Community aktiv teilnehmen und auf Best Practices setzen
Verständigung über technisches Rahmenwerk (Architektur) herstellen
Bereitstellung von Testdaten und Ausführung von Integrationstests sichern
Dokumentation im Hinblick auf Compliance nicht vernachlässigen

Glaubt man den IT-Analysten von Forrester, dann wird sich das im kommenden Jahr nachdrücklich ändern. In seinem Report "Predictions 2016: Modern Development Goes Mainstream" stellt das Unternehmen die These auf, zeitgemäße Entwicklungsmethoden würden in den kommenden 12 Monaten zum Mainstream werden.

12 Trends in der Software-Entwicklung

Garniert wird die These mit einer Liste von 12 Punkten, die aufzeigen, wie sich die Prioritäten verändern sollten:

  1. Entwickler stellen sich als Kunden zuerst den Benutzer einer Mobile App vor. Das bedeutet, dass sie beim Entwickeln keine traditionelle HTML-Webseite vor Augen haben, die sich dann irgendwie auf die Bildschirmgröße mobiler Endgeräte schrumpfen lassen muss, sondern umgekehrt. Um so denken und entwickeln zu können, müssen sich die Macher allerdings auch neuer Frameworks und neuer Programmiersprachen bedienen.

  2. Was die Finanzindustrie bereits vormacht, wird auch in anderen Branchen der Normalfall: Unternehmen entwickeln nur noch jene Lösungen selbst, die für eine Abgrenzung vom Wettbewerb sorgen. Commodity dagegen kommt als SaaS-Lösung ins Haus. Als Folge wird ein sehr viel breiterer Markt von SaaS-Anbietern entstehen. Der globale Umsatz dieses Sektors dürfte, so Forrester, 2016 eine Milliarde Dollar übersteigen.

  3. Open Source-Komponenten sind noch wichtiger für die Entwicklung neuer Software. Anders als bisher werden Unternehmen allerdings in Zukunft deutlich mehr Mühe darauf verwenden müssen, Schwachstellen von nur wenig standardisierten Komponenten im Auge zu behalten und notwendige Updates systematisch zu managen.

  4. Agile Entwicklungsmethoden sorgen für tiefgreifende Veränderungen in Softwarearchitekturen. Ohne schnelle Veränderbarkeit geht es nicht mehr, und Entwickler werden ihre Teams auf dieser Flexibilität aufbauen. Die Folge sind nachhaltige kulturelle Veränderungen.

  5. Der Mangel an talentierten Programmierern und Entwicklern nimmt zu, das gilt sowohl für die USA als auch für Europa. Unternehmen sollten die Suche nach geeigneten Leuten so weit wie möglich systematisieren und dabei lange Vorlaufzeiten einplanen. Wer im Dezember 2015 die Leute, die er für das erste Halbjahr 2016 braucht, noch nicht an Bord hat, ist spät dran, sagt Forrester.

  6. Entwicklungsplattformen machen Application Server und andere Middleware mehr und mehr überflüssig. Gleichzeitig ermöglichen sie auch Businessleuten mit Coding-Talent, Entwicklungsprozesse zu steuern.

  7. JavaScript zu beherrschen wird zur wichtigsten Fähigkeit, weil es sich zur zentralen Entwickler-Sprache aufschwingt. Unternehmen sollten deshalb so viele JavaScript-Experten wie möglich suchen.

  8. Programmierschnittstellen (APIs) für mobile Lösungen werden immer wichtiger. Und weil in Zeiten allumfassender Digitalisierung alles mit allem kommunizieren muss, sollten Entwicklungsteams viel Sorgfalt in die Entwicklung der APIs stecken.

  9. Auf dem Markt der cloudbasierten Entwicklungsplattformen werden sich maximal drei große Player durchsetzen. Amazon und Microsoft, sagt Forrester, gehören in jedem Fall dazu, heißeste Kandidaten für den dritten Platz sind Google, IBM und Salesforce. Zugleich wird sich in Nischen eine ganze Reihe kleinerer Anbieter etablieren.

  10. Ab dem kommenden Jahr laufen Entwicklungsumgebungen immer häufiger nicht auf den Standard-Servern eines Unternehmens, sondern - wenn nicht ohnehin in der Cloud - in eigenständigen Entwicklungs-Containern. Das sorgt für größere Eigenständigkeit bei den Entwicklern.

  11. Das Testen von Mobile Apps wird zunehmend automatisiert und damit deutlich preiswerter als heute. Beispiele für standardisierte Testumgebungen sind Amazons AWS Device Farm oder Googles Cloud Test Lab. Praktisch bedeutet das auch, dass die Produkte besser werden, weil Bugs zuverlässiger und schneller gefunden sind.

  12. Tests werden integraler Bestandteil des Entwickelns, dadurch nimmt das Entwicklungstempo deutlich zu. Dieser Trend wurde schon 2015 sichtbar und wird sich 2016 spürbar fortsetzen.

Kleines Scrum-Glossar
Kleines Scrum-Glossar
Was meint eigentlich Scrum, Product Owner oder Backlog? Wir stellen Ihnen die wichtigsten Begriffe und ihre Bedeutung vor.
Scrum
Der Begriff stammt aus dem Rugby und bedeutet wörtliche "Gedränge". In der Softwareentwicklung bezeichnet er ein Vorgehensmodell der agilen Softwareentwicklung, das 1995 von Ken Schwaber, Jeff Sutherland und Mike Beedle veröffentlicht wurde.
Das Scrum-Team
Aufgabe des Teams ist es, die Anforderungen der Fachabteilung umzusetzen. Es bietet drei Rollen:
1. Rolle: Product Owner
Er vertritt den Auftraggeber, also die fachliche Seite. Also zeichnet er für die Priorisierung der Anforderungen verantwortlich und letztlich auch für den Nutzen, den das Projekt dem Unternehmen bringt.
2. Rolle: Scrum-Master
Er ist quasi der Herr über die Prozesse. Er sorgt dafür, dass die Scrum-Regeln im Projekt eingehalten werden, er fördert die Transparenz, unterstützt das Team bei der Beseitigung von Hindernissen und sucht ständig nach möglichen Verbesserungen.
3. Rolle: Die Entwicklergruppe
Sie besteht idealerweise aus sieben Entwicklern.
Sprint
Mit diesem Begriff bezeichnet Scrum einen Iterationszyklus, innerhalb dessen ein Scrum-Teams eine Anforderung umsetzt. Ein Sprint dauert mindestens zwei Wochen und maximal einen Monat.
Backlog
So heißt in Scrum die priorisierte Anforderungsliste für das zu entwickelnde Produkt. Sie wird vom Product Owner verantwortet und gepflegt.
Definitionen von fertig
Dabei handelt es sich um die Kriterien, unter den ein Produkt als umgesetzt akzeptiert wird.

Resümee: Nach Ansicht von Forrester mausert sich agile Softwareentwicklung in ihren unterschiedlichen Ausprägungen zügig vom Nischenphänomen zum Standard. Die beschriebene Liste ist bei genauer Betrachtung nichts anderes als die Aufforderung an Unternehmen, diese Entwicklung anzunehmen und ihre Chancen konsequent zu nutzen.