Cloud, Mobile, Social und Big Data

Veränderungen in der Software-Entwicklung

Cloud Computing, Mobile und Big Data verändern nicht nur das Business, sondern auch die Art und Weise, wie Software entwickelt wird. Kürzere Releasezyklen, Geräteunabhängigkeit und Sicherheit rücken in den Fokus.

Zaun, Bildquelle: Thinkstock/iStockphoto

„Die Software-Entwicklung ändert sich aktuell erheblich. Alle Applikationen, die jetzt entwickelt werden, müssen die vier Kräfte Cloud, Mobile, Social und Big Data berücksichtigen und enthalten“, erklärt Wolfram Jost, Technologievorstand bei der Software AG. Entwicklungsplattformen spielen dabei aus seiner Sicht eine entscheidende Rolle, denn sie sollen dafür sorgen, dass viele Aspekte bei der Entwicklung automatisch abgedeckt werden. „Viele Unternehmen entwickeln mobile Anwendungen noch nicht systematisch, sondern isoliert und ad hoc, oft vom Marketing getrieben. Es bedarf jedoch einer mobilen Strategie auf Unternehmensebene und eines systematischen Software-Engineering-Ansatzes“, meint Prof. Dr. Volker Gruhn, Aufsichtsratsvorsitzender des IT-Dienstleisters Adesso AG und Inhaber des Lehrstuhls für Software Engineering an der Universität Duisburg-Essen. Dabei müssten zudem Erwartungen an die Anwendungen z. B. in puncto Sicherheit berücksichtigt werden, aber auch Service Level Agreements. „Es geht nicht mehr punktuell“, so Gruhn.

Auch aus Sicht von Prof. Ayelt Komus von der Fachhochschule Koblenz sind Mobility und Multiplattform-Entwicklung Trendthemen. Eine große Veränderung im Bereich der Entwicklung mobiler Anwendungen sieht Komus bei der Umstellung auf die „App-Logik“. „Im Fokus stehen dabei reduzierte Funktionalität und Kontextorientierung, also der stärkere Bezug auf den Bedarf des jeweiligen Anwenders, seine Situation und seinen aktuellen Standort. IT-Abteilungen müssen sich entsprechend aufstellen und schon in der Konzeptionsphase grundlegend anders vorgehen“, so Komus. Apps werden zunehmend auch in der Entwicklung für große Plattformen eine Rolle spielen, meint Komus. In Einzelfällen sei das jetzt schon zu sehen, z. B. bei Lösungen im Enterprise Content Management (ECM).

Wird es dann eines Tages nur noch Apps geben? „Wir werden Apps zunehmend auch für etablierte Anwendungen sehen, aber im Backend und bei Power User drängt sich dies nicht so auf. Apps in betrieblichen Anwendungen adressieren eher Gelegenheitsnutzer. Die Anwender, die sehr intensiv mit den jeweiligen Applikationen arbeiten, werden auf absehbare Zeit noch mit klassischen Client-Oberflächen arbeiten“, konstatiert Ayelt Komus.

Mobility ist der Treiber

Die Menschen seien es aus ihrer privaten Wirklichkeit gewohnt, dass immer alles da sei, Kalender, E-Mail, Apps: „Alles passiert kurzfristig – anders als bei der klassischen IT mit ihren zwei bis vier Releases im Jahr. Da ändert sich die Welt und die Software-Entwicklung muss sich anpassen“, sagt Volker Gruhn. Ein Treiber für agile Entwicklungsmethoden wie Scrum schwappe praktisch über mobile Anwendungen in die Unternehmen. Auch die Kennzahlen für die IT werden sich verändern: Beispielsweise geht es um die Anzahl von Releases, von Downloads und positive Rezensionen, auch wenn ganz am Ende die Anzahl der Fehler und die Geschwindigkeit, mit der sie beseitigt werden, die zentralen Messgrößen blieben, meint Gruhn.

Mobile Software-Entwicklung sei auch technisch spannend: „Es geht darum, wie mit den Themen Mobile-Device- und App-Management umgegangen wird. Im nächsten Schritt stellt sich für die IT auch die Frage, wie sich das Nutzerverhalten der mobilen Anwender auswerten lässt, hier sind Analysestrategien in Richtung Big Data anzudenken“, meint Gruhn. Prinzipiell müssten sich Unternehmen auch die Frage stellen, ob sie für die einzelnen Plattformen redundant und nativ entwickeln wollen oder ob sie generative Cross-Platform-Ansätze verfolgen wollen. „Wenn eine mobile Strategie weitergedacht wird, kommen oft neue Zielgruppen ins Spiel. Spätestens wenn Endkunden unterstützt werden sollen, wird eine Multiplattformstrategie notwendig“, so Gruhn. Schließlich kann man nicht allen Kunden das gleiche Endgerät verordnen.

Im März hat die Software AG das Berliner Start-up Metaquark übernommen. Es ist auf mobile Lösungen spezialisiert und vermarktet den Slogan „We make beautiful Software“. Aber was genau macht „schöne“ Software eigentlich aus? „Die Software wird vom User Interface her designt, dabei werden jetzt zunehmend externe Agenturen für die Gestaltung hinzugezogen“, sagt Jost. „Wie Menschen mit mobilen Apps und Endgeräten umgehen, schlägt sich auch auf Firmenanwendungen nieder. Die Bedienung soll Spaß machen, sinnvoll und einfach sein“, sagt Wolfram Jost. Die Unternehmens-IT kämpfe oftmals mit Akzeptanzschwierigkeiten. Zum einen, weil die Software selten so aussah, wie Business User sie sich gewünscht hätten. Zum anderen, weil Fachbereiche und IT sich zu wenig austauschen und Anforderungen gemeinsam besprechen. „Mit neuen Methoden des Enduser-Driven-Development werden Entwicklungsaufgaben mehr und mehr von den Anwendern übernommen“, meint Jost. „Citizen Development“ lautet der Fachterminus. Die Zeiten, in denen die IT zwei Jahre „in ihrem Kämmerlein sitzt und entwickelt“, seien vorbei. Aus Sicht von Jost wird es in der Software-Entwicklung immer mehr Citizen Developers, also „hybrides“ Personal geben. „Heute sind beispielsweise viele Controller mit Excel so versiert, dass sie sich selbst Lösungen programmieren. Mit den neuen Entwicklungsplattformen wird Ähnliches passieren. Software-Entwickler sind dann nicht mehr die allwissenden Experten, sondern verstärkt Dienstleister für das Business“, so Jost. Die IT müsse lernen, dass die Software dem User „schmecken“ muss – ganz wie beim Koch und seinen Gästen.

Cloud und Big Data

Adesso hat deshalb die New School of IT ausgerufen. Ihre Kennzeichen: Agilität in der Entwicklung, Elastizität in der Infrastruktur und Mobilität in den Anwendungen. „Diese Trends bewirken, dass sich die Unternehmens-IT anders aufstellen muss“, ist sich Gruhn ­sicher. Auch Cloud-Technologien werden die Software-Entwicklung beeinflussen, auch wenn typischerweise noch für die Cloud und nicht in der Cloud programmiert wird. „Noch immer dauert ein Entwicklungszyklus ein bis zwei Jahre. Durch Cloud-Ansätze werden neue Releases monatlich eingespielt, die Entwicklungszyklen verkürzen sich deutlich. Deshalb müssen sich die Entwicklungsprozesse so ändern, dass sich schnell lauffähige Systeme erzeugen lassen“, erklärt Jost. Dabei würden agile Methoden mit kurzen Sprints von ein, zwei Wochen bis zum nächsten ausführbaren System helfen.

Neue Einflüsse könnten auch Big Data und In-Memory-Technologien sein. „Wir werden ganz neue Anwendungen haben, weil aufgrund der Vervielfachung der Zugriffsgeschwindigkeit jetzt Abfragen, Mustererkennung oder dynamische Interaktionen möglich sind, die früher aus Performancegründen nicht machbar waren“, so Komus. In der Entwicklung sind dabei auch neue Datenbanktechnologien relevant, z.  B. spalten- statt zeilenorientierte Datenbanken. Bisher sei die Anzahl der in der Praxis genutzten Anwendungen, die die neuen Möglichkeiten nutzen, noch überschaubar. Ein Trend geht dabei zu NoSQL (not only SQL): strukturierte Datenspeicher, die mit traditionellen Datenbankstrategien brechen. Beispiele sind Apache Cassandra oder Google Big Table.

Agile Methoden reichen nicht aus

Agile Software-Entwicklung ist bereits seit geraumer Zeit ein Schlagwort. Zwar ordnen sich die meisten Entwicklungsunternehmen heute als Nutzer agiler Methoden ein, es bleibe jedoch die Frage, wie durchgängig und konsequent dieser Ansatz dann jeweils gelebt werde. Hier ist noch Potential vorhanden, vermutet Komus. „Agile Methoden sind vor allem auf Prozesse fokussiert. Sie helfen dabei, den Fokus auf den Kundennutzen zu richten bei der Rollentrennung und bei der Definition von Zuständigkeiten und Verantwortung“, meint Oscar Nierstrasz, Professor am Institute of Computer Science (IAM) der Universität Bern und Gründer der Software Composition Group. So wird Entwicklung zwar fokussierter, doch es ändert sich wenig an der Art, wie programmiert wird.

Denn am Ende verbringen Entwickler nur einen vergleichsweise kleinen Teil ihrer Zeit mit der eigentlichen Programmierung. Besonders viel Zeit fließt hingegen in den Versuch zu verstehen, was konkret getan werden muss, bestehenden Code nachzuvollziehen – und herauszufinden, was vielleicht schon an Bausteinen vorhanden ist. Dabei wechseln Programmierer zwischen unterschiedlichen Anwendungen und Systemen, wühlen sich durch Webforen und soziale Netzwerke, wälzen Dokumentationen, FAQs, frühere Versionen und Bugtracks auf der Suche nach Tipps und Antworten: ein zäher Job. Bestehende Software-Entwicklungsplattformen und -umgebungen stellen zu stark auf den Source Code ab und lassen den Entwickler mit seinen Fragen allein, kritisiert Nierstrasz. Vor allem fehle es an Collaboration-Features.

Die Idee vom Programmierer, der im stillen Kämmerlein an einen Stück Code werkelt, hat zwar ausgedient, doch Entwicklungswerkzeuge sorgen noch immer für Isolation. „Komplexe Applikationen sind heute nicht homogen; verschiedene Programmier-, Datenbankabfragesprachen und Plattformen kommen zum Einsatz. Entwickler brauchen bei ihrer Arbeit das ganze Bild, den Kontext der Funktionalität, aber auch das der anderen Software-Developer, die an einem Projekt arbeiten“, so Nierstrasz.

Gefragt ist letztlich ein besserer Support für die Programmierer. Entwicklungswerkzeuge sollten in der Lage sein, häufige Fragen zu beantworten, Metriken sammeln und Zusammenhänge visualisieren, meint Nier-strasz. Gefragt seien nicht nur analytische Fähigkeiten, sondern natürlichere Ansätze, um auf einer relativ hohen Ebene auf Software zu schauen, Antworten zu finden und zu visualisieren: Methoden, die über die Anzeige von Quellcode oder Syntaxbäumen hinausgehen. Für Entwickler in Unternehmen stellen sich regelmäßig typische Fragen: Wie ist die Qualität eines Stücks Code, welche Bereiche ändern sich häufig, welche Bereiche des Codes haben viele Fehler und verursachen häufig Probleme? Aus der Geschäftssicht kommen Fragen wie: An welcher Stelle des Systems muss ich schauen, wenn ein bestimmtes Feature geändert oder ergänzt werden soll, und welche Auswirkungen hat eine Veränderung? Vieles könnte einfacher, automatisierter gehen.

Das von der Swiss National Science Foundation geförderte Forschungsprojekt „Agile Software Assessment“ soll sich 2013 bis 2015 mit Themen wie Meta-Tooling, Agile Modeling, der Analyse großformatiger Software und Architectural Monitoring beschäftigen. Entwicklerkonferenzen wie das Symposion „Augmenting Software Developer Support to Improve Productivity“ in Ancona im März oder der Karlsruher Entwicklertag im Juni befassen sich verstärkt mit dem Thema.

Die Idee von projektzentrierten Umgebungen existiert bereits, es gibt eine Reihe von Ansätzen. „Es zeichnet sich ab, dass IDE-Lösungen (Interactive Development Environment) verstärkt in Richtung Webapplikationen und Cloud wandern“, sagt Oscar Nierstrasz. Beispiele dafür sind Cloud9 IDE, Coderun Studio, Kodingen, Sourcekit, Cloud IDE oder Jazz (IBM). „Hier liegt ein erhebliches Potential für effizientere Software-Entwicklung“, ist sich Nierstrasz sicher.

 

Fünf Tipps für Entwickler

Ratschläge, wie Entwicklungsabteilungen ihre Codebasis gut pflegen und organisieren sowie ihre Prozesse verbessern ­können:

  • Ein Werkzeug, das alles dokumentiert und mitverfolgt, sollte Standard sein.
  • E-Dokumentationen, Implementierungsanleitungen, der ­Geheimtipp zum Upgrade der Datenbank – all das sollte an einem sicheren Ort abgelegt sein.
  • Mit Wachstum sollte immer gerechnet werden: Was nicht skaliert, funktioniert auf Dauer nicht.
  • Virtualisierung vereinfacht das Release-Engineering.
  • Implementierungspfade sollten wie Codepfade verwaltet werden.

Quelle: www.perforce.com

©2019Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok