Aktuelle Trends und Herausforderungen in der Softwareentwicklung – iJS & W-Jax 2017

… das sagten die Teilnehmer der iJS und W-JAX

Dass nicht nur in Sachsen was geht, sondern vor allem auch an unserem Hauptsitz in München, zeigten Ende letzten Jahres die „International JavaScript Conference“ und die „W-JAX“. Beide Konferenzen fanden kurz nacheinander statt und lockten zahlreiche Besucher in die bayrische Landeshauptstadt.

Wie schon die S&S Media Group als Veranstalter der iJS (international JavaScript Conference) feststellt, ist „JavaScript [mittlerweile] überall: kaum ein digitales Business kann heute auf JavaScript und high-level Frameworks, wie Angular, React, oder NodeJS verzichten.“ Da wundert es kaum, dass diesem Thema auf der iJS vom 23.-27.10.2017 im Holiday Inn Munich City Centre eine eigene Konferenz mit zahlreichen Keynotes, Sessions und Power Workshops gewidmet wird. Auch die W-JAX beschäftigt sich zum Teil mit diesen Themenfeldern, bietet aber zusätzlich noch zahlreiche weitere Impulse im Bereich Enterprise-Technologie, Softwarearchitektur, Agilität & Java.

Wegweiser mit Namen der Konferenzen
Abbildung 1: iJS & W-Jax

Wir nutzten bei beiden Konferenzen die Gelegenheit, uns intensiv mit der Community auszutauschen und hatten deswegen einige Fragen im Gepäck, die wir an die Teilnehmer der Konferenzen richteten. Insgesamt konnten wir fast 100 Umfragen durchführen, die sich in gleichen Teilen auf die beiden Veranstaltungen aufteilten. Wir danken an dieser Stelle noch einmal allen, die sich die Zeit genommen haben, sich an unserer Befragung zu beteiligen. Nur durch einen intensiven Austausch mit Partnern, Kunden und Community kann es gelingen, sich stets zu verbessern. Diesen Ansatz der kontinuierlichen Verbesserung, der auch im agilen Manifest verankert ist, verfolgen wir nicht nur in unseren Projekten, sondern leben wir auch unternehmensweit.

Während unsere Experten Manuel Mauky und Alexander Casall zu Themen wie „Angular-Anwendungen mit Redux“ und „Offlinefähige Desktopanwendungen mit Angular und Electron“ sprachen, wollten wir von unseren Interviewpartnern zuallererst wissen, welche Frameworks und Sprachen sie in ihren aktuellen Hauptprojekten einsetzen. Am häufigsten wurden Angular und JQuery genutzt, dicht gefolgt von JavaEE und Spring. React kam dagegen beispielsweise noch recht selten zum Einsatz. Dabei nutzten 72 von 88 Befragten JavaScript, 69 HTML und 51 Java als Programmiersprache. Ruby, Groovy und Coffeescript dagegen wurden kaum verwendet und bekamen jeweils maximal 5 Stimmen.

Welche Frameworks verwenden Sie in Ihrem aktuellen Hauptprojekt?
Abbildung 2: Welche Frameworks verwenden Sie in Ihrem aktuellen Hauptprojekt?

Natürlich interessierte uns nicht nur, mit welchen Technologien momentan gearbeitet wird, sondern vor allem in welche Richtung sich die Trends der Softwareentwicklung bewegen. Immer mehr Anwender von Geschäftsanwendungen erwarten moderne Webanwendungen anstelle bestehender Desktop-Software. Die Usability von Bestandssoftware trifft in Zeiten von modernen B2C-Applikationen oft nicht mehr die Erwartungshaltung der Nutzer und es werden immer mehr webbasierte Lösungen etabliert, die ihre Nutzer aktiv in der Arbeit unterstützen. Daher ist es auch nicht verwunderlich, dass 70 % der Befragten planen, in nächster Zeit mit Angular, React oder einer anderen reactiven Technologie (z.B. ReactiveX, RxJS, …) zu arbeiten. Vue.JS (14 Stimmen) und JavaFX (3 Stimmen) spielen dagegen bei den Umfrageteilnehmern nur untergeordnete Rollen.

Planen Sie in nächster Zeit mit einer der folgenden Technologien zu arbeiten?
Abbildung 3: Planen Sie in nächster Zeit mit einer der folgenden Technologien zu arbeiten?

Die Hälfte der Befragten konnte sich schon recht genau positionieren und hatte sich auf Angular, React oder zumindest eine reactive Technologie festgelegt. Rund 20 % dagegen waren noch indifferent und konnten sich noch nicht zwischen Angular oder einer reactiven Technologie entscheiden. Hilfestellung könnte hier die von uns evaluierte Entscheidungsmatrix bieten, die mithilfe eines Fragenkatalogs eine persönliche Technologieempfehlung gibt. Diese basiert auf den Erfahrungen unserer Webexperten.

Weiterhin entscheidend bei der Auswahl einer geeigneten Programmiersprache oder eines Frameworks ist selbstverständlich auch der Inhalt des eigentlichen Projektes. Wir fragten daher, was die Umfrageteilnehmer in ihrem Hauptprojekt tun. Der Großteil der Befragten beschäftigte sich hier mit Softwareevolutionsprojekten (61 Stimmen), dicht gefolgt von Neuentwicklungen (56 Stimmen). Rund ein Fünftel der Umfrageteilnehmer beschäftigte sich in ihrem Arbeitsalltag mit DevOps. Je nachdem, ob man eine bestehende Software wartet oder ein „grüne Wiese“-Projekt auf dem Tisch hat, sind die Spielräume bei der Auswahl der Programmiersprachen und verwendeten Tools natürlich sehr unterschiedlich breit.

Was tun Sie in Ihrem Projekt?
Abbildung 4: Was tun Sie in Ihrem Projekt?

Nachdem wir nun etwas näher herausgefunden hatten, womit die Befragten, bei denen es sich zum Großteil um Softwareentwickler verschiedenster Nationalitäten und aus unterschiedlichsten Branchen und Unternehmensgrößen handelte, wollten wir auch wissen, was sie im aktuellen Projekt am meisten behindert. An dieser Stelle gaben wir bewusst eher offene Antwortmöglichkeiten, wie „schlechter Code“ oder „schlechte Architektur“ vor, die dem Interviewteilnehmer noch Spielraum für Interpretation gaben und somit die Befragten bewusst dazu auffordern sollten, näher auf die Probleme einzugehen und gegebenenfalls einen ersten Dialog zu Problemlösung zu fördern.

Die häufigsten genannten Probleme sind der folgenden Grafik zu entnehmen. Neben den hier auftauchenden Antworten, bei denen sich „unklare Anforderungen“ nach wie vor als eines der Hauptprobleme darstellte, gab es auch einige freie Antworten. Relativ häufig wurde hier „legacy code“, „Warten auf den Auftraggeber / den Kunden“ oder „stark gewachsene und unübersichtliche Softwarearchitektur“ genannt.

Was behindert Sie in Ihrem Hauptprojekt am meisten?
Abbildung 5: Was behindert Sie in Ihrem Hauptprojekt am meisten?

Schlussendlich wandten wir uns noch einigen Fragestellungen aus dem Bereich „Moderne Webentwicklung“ zu, um hier zu prüfen, welche Trends sich tatsächlich von der Community bestätigen lassen oder welche Themen zwar im Netz „gehypt“ werden, aber im tatsächlichen Entwickleralltag noch nicht angekommen sind. Einer dieser Trends in der IT ist beispielsweise GraphQL. Hier stellten wir erst einmal die grundsätzliche Frage, wie die Konferenzbesucher zu der Technologie standen. Lediglich ein Viertel der Befragten plante den Einsatz dieser REST-Alternative für die Zukunft oder hatte GraphQL bereits im Einsatz, während immerhin fast die Hälfte noch nie von der Technologie gehört hatten.

Wie stehen Sie zur Technologie "GraphQL"?
Abbildung 6: Wie stehen Sie zur Technologie „GraphQL“?

Wir wollten hier außerdem noch wissen, ob die Befragten in ihren Projekten Cloud-Technologien einsetzen. Hier war das Verhältnis der Antworten relativ ausgeglichen. 45 % der Umfrageteilnehmer bejahten hier, während die restlichen 55 % nicht, oder zumindest nicht in ihrem Hauptprojekt, mit Cloud-Technologien arbeiteten. Die zweite Frage aus diesem Themenblock war, welche Technologie die Befragten aktuell für das State-Management verwendeten. Zur Auswahl standen React/Angular (ohne Dritt-Framework für das State-Management), Redux oder MobX. Während letzteres lediglich eine Stimme bekam, setzte der Großteil der Umfrageteilnehmer (knapp 50 %) kein Drittframework ein und rund 25 % arbeiteten mit Redux, während wiederum ca. 20 % hier keine Antwort gaben, was das Ergebnis der Umfrage leider etwas verfälscht.

Sie interessieren sich für weitere Umfrageergebnisse? Dann stöbern Sie doch einfach noch ein wenig in unserem Blog, und lesen Sie, welche aktuelle Trends und Herausforderungen in der Softwareentwicklung wir auf der solutions.hamburg 2016, der OOP 2017, der WJAX 2016 oder der DWX 2017 erfragen konnten.

100 Leute haben wir gefragt … – DWX 2017

Wie schon in den vergangenen Jahren war die Saxonia Systems AG (seit 03/2020 ZEISS Digital Innovation) auch dieses Jahr wieder bei der Developer Week (DWX 2017)  in Nürnberg vertreten. So gestalteten wir das Programm aktiv mit Vorträgen und gewährten tiefe Einblicke in unseren Arbeitsalltag, sowie unsere Leistungen.

In diesem Zusammenhang baten wir die Teilnehmer an unserer Umfrage teilzunehmen. Eine Bitte, der immerhin ca. 100 Personen nachkamen. Deren Antworten sollen nachfolgend ausgewertet werden. Wobei zunächst zu Gunsten der wissenschaftlichen Korrektheit eine kleine Warnung notwendig ist: Da es sich bei der Developer Week um eine Konferenz handelt, die sehr stark von der Microsoft-Community beeinflusst wird und da eine Stichprobe mit 100 Teilnehmern vergleichsweise klein ist, sollten die folgenden Ergebnisse mit etwas Vorsicht interpretiert und nicht auf die gesamte Industrie angewendet werden. Vergleicht man sie jedoch gerade mit der Umfrage des letzten Jahres, ergeben sich einige interessante Erkenntnisse, die wir an dieser Stelle umfassend diskutieren wollen.

Die erste Frage widmete sich demnach auch gleich dem Schwerpunkt unserer letztjährigen Befragung. „Welche Art Software entwickeln Sie?“ Gab es im vergangenen Jahr hier noch einen leichten Punktsieg für Desktopanwendungen? Haben die Webanwendungen dieses Jahr aufgeholt? Dies ist an sich noch keine Erkenntnis, da es aufgrund der kleinen Stichprobe auch dem statistischen Fehler zugeordnet werden kann. Die eigentliche Information ist, dass sich trotz des kolportierten Untergangs der Desktopsoftware sich diese im Microsoftumfeld noch sehr stark hält.

Umfrageergebnis: „Welche Art Software entwickeln Sie?
Abbildung 1: Welche Art Software entwickeln Sie?

Einer der Gründe könnte sich hierbei auch hinter der erstmalig angebotenen Antwortmöglichkeit „Sonstiges“ verbergen. Im näheren Gespräch mit Teilnehmern erläuterten diese, dass sie eher im Bereich der Maschinensteuerung und Algorithmierung unterwegs seien. Windows bietet hier einen oft vergessenen, aber über viele Jahre gewachsenen Ökosystem-Platz, welches seinerseits sehr träge auf Veränderungen reagiert. Dazu zählt dann beispielsweise professionelle Software für Video- und Soundbearbeitung, Steuerungen für Maschinen innerhalb von Fabriken usw. Ob diese nun als reine Desktopsoftware gesehen werden kann, sei einmal dahingestellt. In jedem Fall fällt es schwerer, diese Dinge in das Web zu transferieren, als die durchschnittliche, von Formularen geprägte Shopping- oder Verwaltungssoftware.

Dieser Umstand zeigt sich dann auch bei der zweiten Frage: „Welche Programmiersprache verwenden Sie in Ihrem Hauptprojekt?“ Der Anteil von JavaScript und TypeScript ist überraschend gering. Zumindest für JavaScript wäre ein wesentlich höherer Anteil zu erwarten gewesen. Der Hype um Angular und Co. scheint demnach aber zumindest noch nicht in der Bestandssoftware angekommen zu sein. Gleiches gilt auch für die funktionale Programmierung mit Scala und F#. Zumindest letzteres liegt laut Aussage einiger Teilnehmer unter anderem am ungewissen Standpunkt Microsofts und dem bisher nicht optimalen Tooling. Hinter der Gruppe „Andere“ verbergen sich etwa gleichverteilt neben PHP und C++ auch Phyton.

Umfrageergebnis: „Welche Programmiersprache verwenden Sie in Ihrem Hauptprojekt?“
Abbildung 2: Welche Programmiersprache verwenden Sie in Ihrem Hauptprojekt?

Neben der Erkenntnis zur Durchdringung von neueren Front-End Frameworks im Hauptprojekt gibt es noch eine weitere Besonderheit. So wurden VB und VB.Net explizit als Auswahlmöglichkeit angegeben und wurden dennoch nur sehr selten angekreuzt. Diese Sprachen stehen somit offensichtlich am Ende ihres Lebenszyklusses und sollten demnach auch zukünftig vermieden werden, da die sonst entstehende Codebasis nur unnötig schwer gepflegt werden kann.

Apropos, Qualität der Code Basis: In unserer dritten Frage wollten wir von den Teilnehmern wissen, ob sie im Produktionsumfeld immer wieder mit unerwarteten und teils schwerwiegenden Fehlern zu kämpfen haben. Dies bejahten rund zwei Drittel, ein Wert, der auf den ersten Blick geradezu erschreckend wirkt.

Umfrageergebnis: Treten unerwartet Fehler auf?
Abbildung 3: Treten unerwartet Fehler auf?

Unsere Industrie scheint demnach noch immer in einem gewissen Stadium der Softwarekrise zu stecken. Dies ist natürlich zum einen der Komplexität heutiger Software geschuldet, führt aber auf der anderen Seite auch zu unkalkuliert hohen Kosten, da in der Produktion auftretende Fehler wesentlich kostspieliger sind, als Fehler, die bereits in der Entwicklungszeit beseitigt werden. Umso wichtiger ist es also zu wissen, in wie weit Teams aktiv an der Verhinderung solcher Fehler arbeiten. Hierbei zeigte sich ein sehr erfreulicher Wert. So setzen ca. 80% der Teams Werkzeuge wie statische Code-Analyse und automatisierte Tests ein.

Umfrageergebnis: Werden regelmäßige Quellcodeanalysen durchgeführt?
Abbildung 4: Werden regelmäßige Quellcodeanalysen durchgeführt?

Im direkten Gespräche zeigte sich dabei, dass das Bewusstsein für die Fehlersituation in den letzten Jahren stark gewachsen und die Bereitschaft bei Entscheidern gestiegen ist, aktiv in Präventionsmaßnahmen zu investieren. Wie stark sich diese Veränderungen im Mindset auch langfristig auf die Softwarequalität auswirken, wird sich zeigen müssen, notwendig sind sie allemal. Es ist aber schon jetzt deutlich spürbar, dass nicht nur die Menge der Features als vorherrschendes Qualitätsmerkmal einer Software gesehen wird, sondern vor allem auch ihre Zuverlässigkeit und Zugänglichkeit.

Damit kommen wir dann auch zum letzten Teil der Fragen. Hier wollten wir wissen, inwieweit die Unternehmen in technische Innovation investieren. Im ersten Teil ging es dabei um jede Art von technischen Fortschritt. Es sollte somit eingeschätzt werden, ob die Software „nur“ am Leben erhalten und durch Features erweitert oder ob sie aktiv auf zukünftige Anforderungen vorbereitet wird. Ersteres dient dabei vor allem der Werterhaltung, letzteres der Wertsteigerung.

Umfrageergebnis: Experimentieren Sie mit innovativen Technologien?
Abbildung 5: Experimentieren Sie mit innovativen Technologien?

Dabei wird also beispielsweise Zeit in die Evaluierung eines neuen Front-End Frameworks investiert. Es wird mit anderen Sprachen experimentiert und ggf. auch ein Prototyp mit einer völlig neuen Herangehensweise entwickelt.

Etwa 40 % der Teilnehmer verneinten die Frage. Hierbei handelte es sich dann häufig um Software, die sich in einem gewissen Wartungsmodus befindet und daher nicht aktiv weiterentwickelt wird. Laut einiger Teilnehmer verpassen manche Unternehmen aber auch einfach die Chance, sich frühzeitig auf einen technologischen Umbruch vorzubereiten. Dies heißt, dass erst zu spät erkannt wird, dass eine bestimmte Technologie nicht mehr tragfähig ist und für die Entwickler nach dieser Feststellung kaum Zeit bleibt, sich intensiv mit Alternativen zu beschäftigen. Dies schafft jedoch zu Beginn der Erneuerungsphase bereits eine erhebliche technische Schuld, die im späteren Projektverlauf abgetragen werden müsste.

Dieser Umstand kann vermieden werden, in dem sich Entwickler neben dem Projektgeschehen bereits mit Innovationen beschäftigen können um zu prüfen, ob diese evtl. auch im eigenen Projekt eingesetzt werden könnten. Dies tun immerhin etwa 60 % der Beteiligten.

Eine sehr interessante Gruppe ist hierbei diejenige, die sich mit Themen beschäftigt, welche aktuelle Bedien- und Nutzungskonzepte komplett infrage stellt und sich ganzheitlich technischen Innovationen wie der Gesten- oder Sprachsteuerung widmet.

Umfrageergebnis: Welche technischen Innovationen werden getestet?
Abbildung 6: Welche technischen Innovationen werden getestet?

Laut unserer Umfrage besteht reges Interesse vor allem an Virtual Reality, Augmented Reality und Sprachsteuerung. Dies ist nicht zuletzt dem Umstand geschuldet, dass Goolge, Amazon und Co. hier bereits sehr beeindruckende Möglichkeiten aufzeigen. Die Gestensteuerung, die vor einigen Jahren mit Kinect und Leap Motion noch sehr viel Aufsehen erregte, hat sich leider nicht durchsetzen können.

Entgegen Microsofts Einsatz rund um die Cloud, .Net Core und damit auch der Webentwicklung, lassen sich die Wurzeln der Microsoft-Community nicht verneinen. .Net hat viele Stärken im Umfeld des Desktops und somit wird es auch langfristig eine gute Heimat für Spezial- und Gerätesoftware bieten. Nichts desto Trotz zeigte sich aber auch bei der Konferenz die Offenheit für andere Plattformen, Herangehensweisen und Innovationen, die das Microsoft der letzten Jahre prägte.

Was die Qualität von Software angeht, haben wir als Industrie noch immer einen sehr hohen Lernaufwand. Aber zumindest hat sich ein Problembewusstsein gebildet, auf welchem auch teilweise schon aufgebaut wird. Wenn Sie wissen wollen, wie es um den Gesundheitszustand Ihrer Software steht und wo Sie sich verbessern können, dann kontaktieren Sie uns doch einfach.