BASTA! ALM today Day

Produktivität steigern mit ALM-Tools und Prozessen
Keine Kommentare

Egal an welchem Softwareprojekt Sie arbeiten, in einem Punkt gleicht sich der Tagesablauf aller Entwicklern: Allen steht grob dieselbe Menge an Zeit zur Verfügung. Worauf es ankommt ist, mit welchen Konzepten und Methoden man die Produktivität innerhalb dieses Zeitraums steigert. Ein effizienter Ansatz ist hier das Application-Lifecycle-Management.

Das Application-Lifecycle-Management (ALM) ist ein Prozess, der einen Bogen von der ersten Idee, über die Entwicklung bis hin zum Kunden spannt. Die zahlreichen Prozessschritte führen dazu, dass ALM nicht nur ein Entwicklerthema ist, sondern im besten Fall das ganze Unternehmen in den Prozess einbindet. Zumindest aus der Entwicklerperspektive sieht das zunächst nach Freiheits- und Kreativitätsverlust aus.

ALM-Prozesse steigern Produktivität

Dass genau das Gegenteil der Fall ist, zeigte der ALM today Day der BASTA! 2015. Denn konkret betrachtet schaffen ALM-Prozesse und -Tools die Freiräume, um Kreativität freizusetzen und letztendlich auch die Produktivität zu steigern. Um dieses Ziel zu erreichen, müssen allerdings einige Aspekte berücksichtigt werden – welche das sind, haben die BASTA!-Speaker, darunter Dino Esposito (JetBrains), Hendrik Lösch (Saxonia Systems AG), Neno Loje (teamsystempro.de), Thomas Schissler (artiso solutions GmbH) und Steve Behrendt (netlight GmbH), in zahlreichen Sessions rund ums Thema zusammengefasst.

Was Teilnehmer mitnehmen konnten, ist vor allem die Erkenntnis, dass zu einer effektiven ALM-Strategie nicht nur die methodischen Aspekte aus der Agilität und die Qualitätssicherung durch das Testing, sondern auch das Tooling rund um Visual Studio und TFS gehören. Ergänzt werden die Aspekte durch neuere Trends wie DevOps, Design Thinking und Softskills und Managementstrategien.

Die Tools

Geht es beispielweise um die Arbeit am Code, ist laut Hendrik Lösch Test Driven Development heute das Maß der Dinge. In seiner Session „Softwareevolution – bestehenden Code zweifelsfrei refaktorisieren“ machte er den Teilnehmern deutlich, wie man diese Prinzipien in bestehenden Code einfügen kann. Löschs klares Motto: „Je komplexer eine Methode ist, desto höher sollte die entsprechende Testabdeckung sein, damit sie nicht zum Crap-Code – sprich unsauberem Code – wird.“ Größere Codebereiche sollte man ihm zufolge durch automatisierte Tests abdecken. Hierbei gilt, je früher, desto besser, denn: „Je später man Test durchführt, desto größer wird der Bereich, den man refaktorisieren muss.“ Muss man dann doch an den Code ran, empfiehlt Lösch, zunächst drei Schritte vorzunehmen: Seiner Meinung nach ist es erst sinnvoll, mit der Refaktorisierung zu beginnen, nachdem Änderungsbereiche und Testpunkte aufgedeckt und vor allem Abhängigkeiten aufgebrochen wurden. Außerdem sollte man sich gut überlegen, ob es wirklich nötig ist, die Codequalität zu verbessern. „Nur weil Code komisch aussieht, sollte man ihn nicht unbedingt refaktorisieren. Das macht erst dann Sinn, wenn ein Mehrwert vorhanden ist, der über die Refaktorisierung hinausgeht. Das ist meistens ein Feature oder ein Bugfix“, so Lösch. Sein Appell an alle Entwickler: Refaktorisieren niemals nur des Refaktorisierens wegen.

Microsoft bietet seit kurzem außerdem den Team Foundation Server (TFS) fix und fertig in der Cloud an, gehostet auf Webservern in Westeuropa. Alles, was Entwickler dazu wissen müssen, erklärten Neno Loje, und Tomas Schissler in der Session “TFS ohne Aufwand in der Cloud nutzen (= Visual Studio Online): Ist das was für uns?“. Gemeinsam mit den Teilnehmern wurden die Vor- und Nachteile von Visual Studio Online und TFS On-Premise durchleuchtet. Die grundsätzlichen Rahmenbedingungen liegen auf der Hand: Entwickler, die schnelle Updates wollen, gehen in die Cloud. TFS ist für diejenigen, die es vorziehen, längere Zeit ohne große Änderungen zu leben. Ein großer Pluspunkt für die Cloud ist zudem die bessere Verfügbarkeit und der schnelle Zugriff von jedem Standpunkt aus. Abstriche gibt es für die Tatsache, dass der Server der Azure-Cloud zwar in Europa, allerdings nicht in Deutschland liegt. Außerdem haben Nutzer keine Kontrolle darüber, wann neue Features ausgespielt werden. Das liegt allein in den Händen Microsofts – auch ausschalten lassen sie sich so einfach nicht. Eine Rolle spielt natürlich auch die Kostenfrage. Visual Studio Online an sich ist kostenlos, was Nutzer für die verschiedenen Services zahlen müssen, hängt dann vom Lizenzmodell ab.

Für alle, die sich nicht entscheiden können, gibt es die Option, auf Hybridszenarien zurückzugreifen. Beispielsweise lässt sich sagen: „Wir nutzen Visual Studio Online, aber alles, was mit Automatisierung zu tun hat installieren wir lokal.“ Zu guter Letzt bleibt es jedem Entwickler selbst überlassen, ob er einen lokal installierten TFS oder die Cloud-Variante vorzieht. Ganz vor der Cloud verschließen sollte man sich laut Schissler und Loje allerdings nicht, denn diese wird immer präsenter und bietet einige Vorteile, mit der eine On-Premise-Lösung nicht mithalten kann.

Projekte auf Kurs bringen: Teamstrategien

Neben den entsprechenden Werkzeugen ist für das Gelingen eines Projekts vor allem eine gute Zusammenarbeit im Team erforderlich. Ein positives Miteinander im Projektalltag ist Grundvoraussetzung, damit Shareholder und Projektteams ihre Projekte erfolgreich zum Abschluss bringen können. Karsten Glied (Beratung Judith Andersen) weiß aber aus eigener Erfahrung, das gerade die heutigen Zielparameter „In Time, in Budget und in Quality“ häufig Druck und Stress bringen. Die Folge daraus ist, dass der Projekterfolg ausbleibt. Viele Teams setzen in diesem Moment auf agile Methoden. Fälschlicherweise, meint Glied, denn diese lösen ihm zufolge nicht jedes Problem: „So wenig wie klassische Wasserfallkonzepte immer zum Ziel führen, tun dies agile Methoden“, erläutert er. In seiner Session „Projekte außer Kontrolle – Ursachen erkennen und Projekte auf Kurs bringen“ wies er den Teilnehmern daher auf, dass vor allem die Aufgabe und der Projektkontext maßgeblich für ein zielführendes Vorgehen sind. Für die Teilnehmer hatte er einige Tipps und Kniffe auf Lager, mit denen sich selbst Projekte wieder auf Kurs bringen lassen, die durch falsches Vorgehen in Chaos ausgeartet sind.

DevOps – 10 Releases am Tag?

„Entwickelst du noch oder lebst du schon?“ Mit dieser Frage eröffneten Neno Loje und Thomas Schissler ihre Session „DevOps für Entwickler„. Ihrer Ansicht nach handelt es sich bei DevOps um eine wichtige und notwendige Strategie, um Risiken von Releases zu minimieren. Hinter dem Begriff verberge sich außerdem die Aussage: „DevOps – das heißt 10 Releases pro Tag.“ Das sollen sich Entwickler zwar nicht wirklich zum Tagesziel setzen, der eigentliche Punkt aber sei, dass mit DevOps die technischen Voraussetzungen zur Umsetzung dieser Aussage geschaffen werden. Mit DevOps verbunden sind jedoch auch einige Herausforderungen. Diese gehen damit einher, dass man heutzutage Updates wesentlich schneller liefern will als bisher. Schwierigkeiten gibt es beispielsweise beim Transport: Wie schafft man es etwa, automatisierte, nachvollziehbare Wege zu schaffen, um eine Software von A nach B zu bringen?

Weitere Problempunkte umfassen die Teamstruktur, das Monitoring, das Thema Datenschutz und die Frage, wie man mit unfertigen Features umgeht. Damit sind die zentralen Herausforderungen zusammengefasst. Mit im Gepäck hatten Schissler und Loje aber auch verschiedene Lösungsansätze: Möglich Handlungsfelder auf dem Weg zu Devops als Continuous Value Delivery sind die Bereiche Testaumomatisierung, automatisierte Deployment-Prozesse, Applikations-Telemetrie, Feature-Flags und eine ausgeklügelte Integrationsstrategie. Schlussendlich waren sich Teilnehmer wie auch Speaker einig: Devops macht die Prozesse nicht unbedingt einfacher, ist es aber dennoch Wert, näher betrachtet zu werden. Denn die Vorteile, die daraus entstehen können, sind enorm.

Kunden zufrieden stellen: So funktioniert´s

Am Ende eines jeden Projekts steht das Ziel, den Kunden zufriedenzustellen. Das ist heutzutage allerdings wesentlich schwieriger, als noch vor einigen Jahren. Denn vorbei sind die Zeiten, in denen ein Upgrade auf die neueste Version der Technologie X ausreichte, um die Produktivität einer Software aufs nächste Level zu heben – dieses klare Statement gab Dino Esposito in seiner Session „Software Development today: Domain and UX over Technology“ ab. Software ist heutzutage wesentlich weiter in unserer Gesellschaft verbreitet, als noch vor einigen Jahren.

„Für Entwickler bedeutet dass, ein deutlich tieferes Verständnis für Geschäftsbereiche aufbringen zu müssen, oberste Priorität hat außerdem die Beschäftigung mit der User Experience (UX).“ In seiner Session lernten die Teilnehmer, wie man sich den neuen Herausforderungen am besten stellt, um Kunden und Nutzer langfristig zufriedenzustellen – ob als Software-Entwickler oder -Manager.

Aufmacherbild: Life Cycle on Blueprint of Cogs von Shutterstock / Urheberrecht: Tashatuvango

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -