DWX 2017 – 100 Leute haben wir gefragt…

Wie schon in den vergangenen Jahren war die Saxonia Systems AG 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.

100 Leute haben wir gefragt…

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.

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.

Abbildung 2: 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.

Abbildung 3: 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.

Abbildung 4: 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.

Abbildung 5: 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.

Abbildung 6: 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.

Hendrik Lösch ist Consultant und Architekt der Saxonia Systems AG. Der Schwerpunkt seiner Arbeit liegt auf der Entwicklung und Bewertung von Software auf Basis von Microsofttechnologien. Darüber hinaus schreibt und spricht er gern über seine Arbeit sowie seine Begeisterung für Clean Code, Softwareevolution und die Testautomatisierung in ihren unterschiedlichen Ausprägungen.

Twitter LinkedIn Xing