Suche
Höher, schneller, weiter?

Developer Productivity Report erschienen: Die besten Performance-Tools 2015

Michael Thomas

© Shutterstock.com/Janos Levente

RebelLabs‘ diesjähriger Developer Productivity Report konzentriert sich auf Fragen nach den Ursachen und Lösungen von Performance-Problemen, den zufriedensten Endnutzern, sowie darauf, von wem und zu welchem Zeitpunkt in Organisationen Performance-Tests durchführt werden.

Die Teilnehmer

Die Im März 2015 gestartete, 19 Fragen umfassende Umfrage konnte insgesamt 1562 Teilnehmer gewinnen. Die überwiegende Mehrzahl der Teilnehmer (64,9 %) sind Softwareentwickler, erst mit weitem Abstand folgen Systemarchitekten (14 %), 13,1 % Projektleiter/-Manager, (13,1 %) und Sonstige (7,9 %, z. B. Constultants, QA, Operations etc.). Auch bei den betroffenen Anwendungen zeichnet sich ein klares Bild ab: Von den Teilnehmern arbeiten 70,1 % an Web-Anwendungen, 11,3 % an Desktop-Anwendungen, 3,6 % an Mobile-Anwendungen, 6,2 % an Batch und 8.8 % an Sonstigem (z.B. Middleware, Anwendungsserver etc.)

Wer kümmert sich? Und wann?

Im Schnitt gaben 9 von 10 Teilnehmern an, dass in ihren Organisationen die Entwickler für die Beseitigung von Performance-Problemen verantwortlich sind, unabhängig davon, wer diese entdeckt. Fast die Hälfte der Teilnehmer, 42,3 %, gab an, dass es sich beim Profiling in ihrer Organisation um eine rein reaktive Angelegenheit handelt, d. h. der Code nur dann geprüft wird, wenn tatsächlich Fehler auftauchen. Als regelmäßige, vorbeugende Tätigkeit trat es demgegenüber eher selten in Erscheinung: 11,3 % überprüfen ihn während des Schreibens, 4,4 % täglich, 10,6 % wöchentlich, 12,2 % monatlich, 7, 3 % vierteljährlich und 1,7 % jährlich. In 9,7 % der Fälle wird er überhaupt nicht überprüft.

Ursache und Lösung von Performance-Problemen

Bei den häufigsten Ursachen für auftretenden Performance-Probleme zeichnet sich ein klares Bild ab: Mit 54, 8 % liegen langsame Datenbankabfragen an der Spitze, dicht gefolgt von ineffizientem Anwendungscode (51,5 %). Den Rest der TOP-5 bilden mit deutlichem Abstand übermäßige Datenbankabfragen (38,6 %), Nebenläufigkeitsprobleme (28,4 %) und Speicherlecks (27,6 %). Im Mittel treten 5,5 Performance-Probleme pro Release auf, dabei gaben 3 von 4 Teilnehmern an, dass diese auch den Endnutzer betreffen. Folgt man den Zahlen weiter, so nimmt die Diagnose und Beseitigung eines Problems sowie ein erneuter Test durchschnittlich eine Arbeitswoche in Anspruch.

Betrachtet man ausschließlich die Antworten, die von Teilnehmern gegeben wurden, deren Projekte über dedizierte Performance-Teams verfügen, tun sich weitere interessante Ergebnisse auf. So sind letztere deutlich gewiefter im Aufspüren von möglichen Problemen: Die Wahrscheinlichkeit, dass sie ein Problem finden, ist beispielsweise im Vergleich zu Operations-Teams doppelt so hoch. Gleichzeitig arbeiten sie – naturgemäß – deutlich gründlicher und verbringen im Schnitt 50 % mehr Zeit mit der Überprüfung, Diagnose, und Beseitigung von Performance-Problemen als andere Teams. Insgesamt verbringen dedizierte Performance-Teams rund 40 Tage pro Release mit entsprechenden Aufgaben – Softwareentwickler hingegen nur 20 Tage.

Tools

Eine Frage, an der sich häufig die Geister scheiden, ist die nach dem adäquaten Werkzeug. Auch hier bietet die Umfrage erhellende Einblicke. Am erfolgreichsten bei der Bugjagd sind mit 8,8 gefundenen Bugs pro Release demnach selbstgestrickte, hauseigene Lösungen (auf die rund 20 % aller Teams zurückgreifen), dicht gefolgt von JProfiler mit 8 gefundenen Bugs pro Release. Erst mit einigem Abstand folgt der Drittplatzierte, XRebel, mit 5,8 gefundenen Bugs pro Release. Die weiteren genannten Tools – NetBeans Profiler, Java MissionControl, YourKit, VisualVM und JProbe – folgen recht dicht aufeinander.

Wenig verwunderlich ist eine weitere Erkenntnis: Je mehr Tools genutzt werden, desto mehr Performance-Probleme werden im Schnitt gefunden – folgerichtig gaben auch fast 50 % der Teilnehmer an, zwei Tools oder mehr einzusetzen.

Anwendungskomplexität

Beim Blick auf die Frage, inwiefern die Größe oder Komplexität einer Anwendung den Ablauf von Performance-Tests beeinflusst, wurden diese zunächst in drei Kategorien eingeteilt: „Einfache Anwendungen“ mit weniger als 10 Screens, „Anwendungen mittlerer Komplexität“ mit 10 bis 99 Screens und „komplexe Anwendungen“ mit 100 und mehr Screens. Wie sich zeigte, nahmen die Probleme mit Datenbank-Abfragen und HTTP-Sessions mit der Komplexität der Anwendung zu – andere Probleme hingegen eher nicht. Ein regelmäßig vorgenommenes Profiling erhöhte die Chance, einen Performanceschub zu erreichen im Vergleich zu weniger regelmäßigen Intervallen beträchtlich.

Wer hat die zufriedensten User?

Wird auch der Endnutzer von Performance-Problemen beeinträchtigt? Um diese Frage dreht sich der letzte Teil des Reports und versucht gleichzeitig, mögliche Best Practices aufzuzeigen. Ein interessantes erstes Ergebnis: Diejenige, die angaben, dass ihre Endnutzer nicht beeinträchtigt werden, arbeiteten in Teams, die im Schnitt 30 % kleiner waren als diejenigen, deren Endnutzer mit Performance-Problemen zu kämpfen hatten. Dazu, woran dies liegt, macht der Report zwar keine endgültige Aussage. Denkbar ist jedoch, dass die größeren Teams für komplexere Anwendungen verantwortlich sind, die natürlich wiederum fehleranfälliger sind – eine Sichtweise, die möglicherweise von einer weiteren Erkenntnis gestützt wird: Die fehlerfreien Anwendungen waren mit 38 % weniger Screens/Views deutlich weniger komplex.

Last but not least zeigte sich, dass die Teams mit den zufriedensten Usern im Vergleich zu den Teams mit unzufriedenen Usern 38 % schneller bei der Diagnose und dem Beseitigen von Performance-Problemen sind, Profiling zu 40 % wahrscheinlicher auf täglicher oder wöchentlicher Basis betreiben und bereits früh im Releasezyklus, namentlich bereits während des Codens, mit den Performance-Tests beginnen.

Der komplette Report kann kostenlos über die RebelLabs-Seite heruntergeladen werden.

Aufmacherbild: indicator showing a progress of performance level von Shutterstock.com / Urheberrecht: Janos Levente

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.