Sonntag, 12. Februar 2012 |
Software soll zugleich wertschöpfend, kostengünstig, schnell einsetzbar und qualitativ hochwertig sein, aber auch der Entwicklungsprozess soll sich nachvollziehen lassen. Das sind die Herausforderungen vor denen Application Lifecycle Management (ALM) und agile Entwicklung als Lösungsangebote stehen.
Business Technology hat einige ALM-Lösungsanbieter zu diesen Aspekten befragt und wird in den kommenden Wochen deren Antworten veröffentlichen.
Colin Doyle : Wir betrachten die unterschiedlichen Bereiche, aus denen das Application Lifecycle Management besteht, nicht als getrennte, sondern als zusammen- und voneinander abhängende Aktivitäten. Daher ist es wichtig, dass die Tools, mit denen ein Application Lifecycle Management implementiert wird, solche Abhängigkeiten unterstützen und eine einzige Ansicht auf das ALM-Modell bieten. Unser ALM-Modell berücksichtigt, dass zusammen- und voneinander abhängende Aktivitäten am besten durch eine bessere Zusammenarbeit im Entwicklungsteam durchgeführt werden.
Ein gemeinsames Repository, in dem alle ALM-Aktivitäten und Artefakte erfasst werden, macht es einfacher, eine einzige Ansicht des Entwicklungsstands zu bieten und gewährleistet, dass jeder mit einheitlichen und aktuellen Daten arbeitet. Ein ALM-Modell muss alle Aktivitäten und Artefakte, die ein Application Lifecycle umfasst, unterstützen. Es muss aber auch berücksichtigen, dass unterschiedliche Anwendungen entwickelt und weiterentwickelt werden, die verschiedene Methodiken verwenden. Es ist also wichtig, dass das ALM-Framework vielfältige Prozesse unterstützt und die Einführung neuer Prozesse oder die Verbesserung bestehender Prozesse unterstützt.
Wir glauben, dass es drei Kernbereiche gibt, die die Basis des Application Lifecycle Managements bilden: Requirements Management, Software Change und Configuration Management und Test Management. Aus dieser Sicht ist unser Produkt MKS Integrity die erste einheitliche ALM-Lösung auf dem Markt und deutlich wettbewerbsfähiger als entsprechende Einzellösungen.
Doyle: Agile Methoden passen sehr gut in unser ALM-Modell. All die verschiedenen Ausprägungen von Agile, wie XP, Scrum, Crystal, DSDM oder Feature Driven Development berufen sich auf die Kernbereiche des ALM. Der Unterschied zwischen agilen und herkömmlichen Methoden liegt in der Sequenzierung und Gewichtung dieser Bereiche. Herkömmliche Methoden gehen üblicherweise formaler vor und stellen die Definition und die Befolgung eines Plans in den Vordergrund. Agile Methoden basieren auf der Annahme, dass am Anfang eines Projekts die Anforderungen noch nicht genau bekannt sind und dass sie sich im Laufe der Anwendungsentwicklung ständig ändern werden. Bei Agile geht es also eher darum, sich an die Änderungen anzupassen, statt einem Plan zu folgen.
Obwohl Agile die Generierung unzähliger Dokumente oder die Befolgung von Prozessen um der Prozesse willen, kritisch sieht, ist es nicht grundsätzlich gegen Prozesse oder Dokumentation. Agile weiß, dass Anforderungen erfasst werden müssen, und dass Tests definiert, implementiert und die Ergebnisse verfügbar gemacht werden müssen, um festzustellen, ob die Anforderungen umgesetzt wurden. Agile profitiert von einem Tool, das den manuellen Aufwand reduziert, vor allem, wenn so ein Tool die Arbeit, die es bedeutet, Verknüpfungen zwischen Aktivitäten und Artefakten herzustellen, automatisiert, so wie es MKS Integrity macht. Agile Methoden betonen auch die Zusammenarbeit und Teamkommunikation. Unser ALM-Modell, das die Zusammenarbeit fördert und das das Navigieren durch verknüpfte Aktivitäten und Artefakte erleichtert, ist also auch hier bestens geeignet.
Ein anderer Aspekt von Agile ist die Verpflichtung, die Prozesse und Praktiken ständig zu verbessern. Die Möglichkeit, Prozesse mit einer flexiblen, aber starken Prozessmanagement-Engine ständig zu verbessern und die Fähigkeit, Metriken einfach zu definieren und automatisch zu generieren, sind nur einige der Arten, wie MKS Integrity beim Einsatz agiler Methoden hilft. MKS Integrity unterstützt mit seiner Admin-Staging-Funktionalität sogar die Anwendung von Change-Management-Prozessen selbst bei Prozessänderungen. Dies macht es möglich, Prozessänderungen in einer Staging-Umgebung zu entwickeln und zu testen und sie dann automatisch an die Produktionsumgebung auszurollen.
Agile basiert auf der schrittweisen Entwicklung von Softwareanwendungen. Diese Herangehensweise verwendet das Refactoring des Sourcecodes, continuous integration on the build and test side und Just-in-time-Priorisierung von durchzuführenden Änderungen. Agile Entwicklung besteht aus einer Reihe von Schritten, die in starre Zeitpläne mit kurzer Dauer gepresst werden. Um solche Praktiken richtig zu unterstützen, muss man Änderungsanforderungen, Softwarekonfigurationen, Builds und Defects identifiziert und in korrekten Zusammenhang bringen. Es ist außerdem von Vorteil, wenn das Softwarekonfigurationsmanagement-Tool das Refactoring von Befehlen wie Verschieben und Umbenennen unterstützt und die Fähigkeit besitzt, an parallelen Branches einer Konfiguration zu arbeiten und dann Updates für die Continuous Integration Builds einfach an einen gemeinsamen Branch zu übermitteln.
Doyle: MKS Integrity unterstützt in hohem Maße agile Entwicklungsprojekte. Seine Prozess-Engine kann eine Vielzahl von Prozessen unterstützen und ermöglicht es, dass verschiedene Projekte bei Bedarf verschiedene Entwicklungsmethoden implementieren oder gemeinsame Prozesse teilen.
Eine besondere Stärke von MKS Integrity ist die Fähigkeit, Projekte, die mit herkömmlichen Methoden durchgeführt werden, mit anderen Projekten, die auf agilen Methoden basieren, mischen zu können. Das kommt in großen Unternehmen, die Agile ausprobieren oder nach und nach von herkömmlichen Methoden auf agilere umsteigen wollen, oft vor. MKS Integrity unterstützt auch das Refactoring von Befehlen und die parallele Entwicklung sowie Echtzeit-Reports für alle User, sodass diese fundierte Entscheidungen treffen können. Gleichzeitig ist MKS Integrity leicht zu bedienen und zu verwalten, was ebenfalls der Philosophie von Agile entspricht.
Unsere Lösung zwingt die Kunden nicht, eine bestimmte Methode zu verwenden; stattdessen liegt der Fokus darauf, die Aufgabe, die Methode des Kunden in das Tool zu implementieren, zu erleichtern.
MKS Integrity ermöglicht die Integration von Nischenentwicklungstools und anderer Entwicklungssysteme. Out of the box bietet MKS Integrity eine bidirektionale Integration in Microsoft Project, in die meisten IDEs und in eine Reihe von Testausführungstools.
Doyle: Agile Entwicklungsprozesse können ALM nutzen, da sie das Risiko, Anforderungen nicht zu erfüllen, reduzieren. Praktiken wie die schrittweise Entwicklung erhöhen die Chancen, dass das, was am Ende übergeben wird, auch wirklich den Anforderungen entspricht, besonders, wenn der Kunde eng eingebunden war, was ein weiteres Prinzip der agilen Entwicklung ist. Die Kunden beteiligen sich an der Definition der Anforderungen, ihrer Priorisierung bei jedem Entwicklungsschritt und sie bewerten das Produkt am Ende jedes Schrittes, um festzustellen, ob die Anforderung erfüllt wurde. Eine enge Zusammenarbeit von bevollmächtigten Teammitgliedern führt in der Regel zu besserer Qualität als bei zentral gesteuerten Teams.
Eine der Grenzen ist die Skalierbarkeit von agilen Methoden. Agile-Puristen empfehlen, dass ein agiles Entwicklungsteam etwa zehn Personen umfassen sollte, die in den gleichen Räumlichkeiten sitzen. So ein Team benötigt kaum Tools, um seine Praktiken umzusetzen, und Zusammenarbeit und Kommunikation sind einfach umzusetzen. Viele Unternehmen arbeiten jedoch an Anwendungen, die wesentlich größere Teams benötigen, es ist also eine große Herausforderung, diese Praktiken auf größere Teams und Teams, die auf mehrere Standorte verteilt sind, zu übertragen. Hier wird der Nutzen einer ALM-Plattform wirklich deutlich. Die Art, wie MKS Integrity die Zusammenarbeit, die Kommunikation und die koordinierte Entwicklung unterstützt, macht es möglich, dass Agile in großen und räumlich verteilten Teams angewendet werden kann.
Eine weitere Herausforderung für Agile ist die Unterstützung von Regulierungsinitiativen und der Umgang mit bestehenden Produkten, die bereits über umfangreiche Funktionen verfügen.
Die Erfüllung von Richtlinien erfordert in der Regel, dass Prozesse definiert und vom Entwicklungsteam befolgt werden und dass Prüfpfade bestehen, die beweisen, dass eine strenge Änderungskontrolle existiert. Eine ALM-Plattform wie MKS Integrity, die das Erfassen und Aufzeichnen vieler dieser Prozesse und Aktivitäten automatisiert, ist unverzichtbar, wenn Agile weiterhin darauf abzielen soll, funktionierende Software zu liefern und nicht durch die Erzeugung von zusätzlichen Objekten abgelenkt werden soll.
Bestehende Produkte betonen den Bedarf nach besserem Requirements Engineering, als es agile Methoden verlangen. Der einfache "Use-Case-Ansatz" funktioniert gut, wenn eine Anwendung zum ersten Mal entwickelt wird. Bei bereits existierenden Applikationen, bei denen es bereits eine Reihe von Releases gab, ist das nächste Agile-Projekt mit bestehenden Features, angesammelten Defects und neuen Funktionsanforderungen konfrontiert. Da nicht alle Mitglieder eines Agile-Projekts beim letzten Produkt-Release mitgearbeitet haben werden, müssen diese schnell ersehen können, welche Anforderungen im Produkt bereits implementiert sind und durch welche Architektur diese implementiert werden. Dies wird am besten erreicht, indem man ein Requirements Management System verwendet, das zeigt, welche Anforderungen sich geändert haben, wie Anforderungen mit Design, Code, Testfällen und Builds verknüpft sind und das Tools beinhaltet, die die möglichen Auswirkungen von Anforderungsänderungen visualisiert. Die aktuelle Forrester-Studie über Requirements Management Tools hat ermittelt, dass MKS Integrity eines der besten Requirements-Management-Produkte am Markt ist, und das einzige, das alle Forrester-Kriterien erfüllt.
Doyle: Wir haben einige Agile-Praktiken eingeführt. Große Releases werden schrittweise eingeführt, mit Zeitfenstern, die denen von Agile entsprechen. Refactoring und Continuous Integration sind beides Praktiken, die wir in unserer Entwicklung anwenden. Durch die vielfältige Art von Kunden, für die MKS Integrity gedacht ist, ist eine direkte Beteiligung der Kunden am Entwicklungsprozess nicht machbar. Wir haben jedoch ein Produktmanagement, das als Stimme des Kunden in Entwicklungsprojekten fungiert. Jeder Bereich des ALM-Modells wird von einem eigenen Produktmanager betreut. Außerdem werden Features für jedes neue Release priorisiert und entsprechend ausgewählt.