News

Mittwoch, 17. Dezember 2008 | News

Passen ALM und agile Entwicklung zusammen? Teil 8

(Link zum Artikel: http://www.it-republik.de/business-technology/news/046557)

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.

Heute: Dave Robertson, Director of Europe bei Perforce Software

Wie sieht Ihr Modell eines zeitgemäßen Application Lifecycle Managements aus?

Dave Robertson: Ein Application Lifecycle Management ist dann zeitgemäß, wenn es auch etablierte Werte innerhalb von Softwareentwicklungsprozessen aufgreift und inhärent adressiert. So bleiben weiterhin Forderungen nach Revisionssicherheit und Nachvollziehbarkeit in der Anwendungsentwicklung gültig. Bis zum heutigen Tag bleiben viele Potenziale, die in einer fortgeschrittenen Nutzung des zugrundeliegenden Softwarekonfigurationsmanagements (SCM) liegen, ungenutzt. Ein Application Lifecycle Management, das auf einem unzureichenden SCM aufsetzt, greift in jedem Fall zu kurz. Im SCM selbst empfiehlt Perforce die Anwendung des so genannten Mainline-Modells, das damit auch eine geeignete Basis für ALM darstellt. Dieses Modell hat zum Inhalt, dass es in den meisten Situationen vorteilhaft ist, eine zentrale Entwicklungslinie für ein Projekt oder ein Produkt zu definieren. Dabei ist es sinnvoll, von dieser in einer Reihe von Anwendungsfällen (Release, Projekt, Variante, ...) abzuzweigen. Das Mainline-Modell leistet dabei eine hilfreiche Kategorisierung der entsprechenden Verzweigungen auf einer aussagekräftigen Stabilitätsskala. Aus den Charakteristiken dieser Verzweigungen ergeben sich methodische Leitlinien, welche die Fragen beantworten, wann, wie und in welchem Umfang Integrationen zwischen diesen Verzweigungen erforderlich und geboten sind. Das Perforce SCM System selbst unterstützt ganz besonders auch das Verzweigen und ein weitgehend automatisiertes und intelligentes Integrieren der einmal gemachten Verzweigungen. Hierbei ist besonders darauf geachtet, dass die entsprechenden Aktivitäten nicht nur einfach und performant umgesetzt werden können, sondern dass auch eine vollständige Revisionskontrolle erhalten bleibt.

Dem Modell folgend und das Perforce SCM verwendend, ist es jederzeit möglich, Auskunft über Historie, Werdegang und Beziehungen von Produkten, Projekten und ihren verschiedenen Varianten und Meilensteinen oder Entwicklungsschritten zu geben. Dabei werden nicht nur Quellcodedateien einbezogen, sondern das System ist so aufgebaut, dass auch alle anderen digitalen Assets und Konfigurationsinformationen mit erfasst werden. Eine Integration mit dem Anforderungs- und dem Fehlermanagement ist dabei hilfreich und mit dem Perforce SCM realisierbar. Eine Änderung kann dabei zuverlässig mit Anforderungen oder Fehlern assoziiert werden, wobei bereits ein grundsätzliches und umfassend konfigurierbares Aufgabenmanagement im System selbst enthalten ist, weshalb die aufwändige und fehleranfällige Implementierung eigener Verweise unterbleiben kann.

Wie passen Agile-Methoden (Scrum, XP, Lean etc.) zu diesem Modell?

Robertson: Einige Aspekte agiler Methoden, die normal nur schwer umsetzbar sind, werden durch dieses Modell erst realisierbar. Die Bereitschaft zu beständiger Veränderung in agilen Methoden wird insbesondere dadurch unterstützt, dass in einem SCM System wie Perforce konkurrierende Entwicklung und die Verzweigung wie die Zusammenführung von Entwicklungslinien nicht nur möglich, sondern auch aktiv vom System und der zugrundeliegenden Methode gefördert wird. Das technische System selbst geht dabei noch weiter, indem es zum Beispiel dem Entwickler alle Informationen präsentiert, die dieser benötigt, um Entwicklungslinien immer wieder einfach zu integrieren und potenzielle Konflikte aufzulösen. Hierbei ist es besonders wichtig, die Informationsmenge immer wieder auf das gerade relevante Maß zu reduzieren, da ansonsten die Komplexität der Aufgabenstellung Entwickler immer wieder von eigentlich hilfreichen Aktivitäten wie der konkurrierenden Entwicklung auch in aufgezweigten Projekten abschreckt.

So ist bis zum heutigen Tag eine alltägliche Präferenz in der Anwendungsentwicklung zu beobachten, die versucht, eigentlich sinnvolle und gebotene Verzweigungen und Varianten zu vermeiden, da eine Integrierbarkeit aufgrund einer als nicht beherrschbar vermuteten Komplexität unterbleibt. Ursächlich hierfür sind in aller Regel unzureichende SCM-Werkzeuge, die nicht oder nicht zuverlässige Verzweigungsinformationen präsentieren und keine oder keine verlässlichen Automatismen für weite Teile der Integration bereitstellen. Da aber insbesondere Agilität hier hohe Ansprüche stellt, werden leistungsfähige SCM-Werkzeuge wie das von Perforce immer wichtiger.

Wie unterstützen Ihre Lösungen agile Entwicklungsprojekte? Legt sich der Kunde damit auf eine Methode fest? Lassen sich beispielsweise Testing-Tools oder Projektmanagement-Tools einbinden?

Robertson: Mit unserem SCM-System liefern wir ein Werkzeug, das Agilität im Application Lifecycle Management erst möglich macht. Der Kunde legt sich nicht auf eine bestimmte Methode fest. Vielmehr kann eine Vielzahl von Methoden unterstützt werden. Agilität im Entwicklungsprozess bedingt und fördert zudem immer auch schnelle Zyklen. Dabei ist es wichtig, dass die eingesetzten Werkzeuge eine Reihe von Attributen aufweisen. Einige sollen hier kurz hervorgehoben werden:

Performance

Agile Projekte sind nicht umsetzbar, wenn unzureichende Performance des projektunterstützenden Werkzeugkastens dem agilen Ansatz selbst im Weg steht.

Zugänglichkeit

Allen Beteiligten im Entwicklungsprozess muss ein Zugriff auf Informationen und Funktionen möglichst unmittelbar und benutzerfreundlich ermöglicht werden. Das Perforce SCM System verfügt über eine Vielzahl von Benutzerschnittstellen, die den verschiedenen Anwendungsprofilen der unterschiedlichen Benutzergruppen gerecht werden. Dies beinhaltet auch Standardbürosoftware wie Microsoft Office oder Bildbearbeitungswerkzeuge wie Adobe Photoshop.

Integrierbarkeit

Oftmals verbieten die Erfordernisse der Praxis, den kompletten Anwendungsentwicklungsprozess mit nur einem einzigen Werkzeug abzubilden, bzw. zu unterstützen. Sowohl technische als auch prozessrelevante Erfordernisse bedingen das Zusammenwirken einer ganzen Reihe von unterschiedlichen Systemen. Um Brüche und daraus resultierende Informationsverluste zu vermeiden, ist Integrierbarkeit eine wichtige Anforderung. Werkzeuge müssen daher über gut dokumentierte und funktional vollständige Schnittstellen verfügen. Das Perforce SCM System verfügt sowohl über APIs für gängige Programmier- und Skriptsprachen als auch über eine Vielzahl von fertigen Integrationen mit Entwicklungsumgebungen, Bug Trackern, Build-Werkzeugen und verschiedenen anderen Werkzeugen.

Verfügbarkeit

Die Stabilität und Zuverlässigkeit wir umso bedeutender, je weiter der Umfang der Systemunterstützung gefasst wird, da ein Ausfall einer Komponente den ganzen Prozess negativ beeinflussen kann. Das Perforce SCM System ist so stabil, dass Unternehmen wie SAP und Google die Ergebnisse ihrer Softwareentwicklung dem Perforce SCM System anvertrauen. Erstklassige Unterstützung durch einen leistungsfähigen technischen Support ist überdies wichtig. Agile Ansätze in der Entwicklung werden ad absurdum geführt, wenn die unterstützenden Systeme nicht verfügbar sind oder eine Unterstützung bei einem Systemausfall nicht erhältlich ist.

Wo sehen Sie für ALM die Vorteile von agilen Entwicklungsprozessen und wo die Grenzen?

Robertson: Agile Entwicklungsprozesse stellen in erster Linie Anforderungen an ALM. Diese ergeben sich daraus, dass die Anzahl von Änderungen eher steigt. Gleichzeitig hat der Prozess mehr Teilhaber mit unterschiedlichen Anforderungen, die enger in den Managementfokus von ALM integriert werden müssen. Viele Entwicklungsprozesse und ALM-Implementierungen erlauben zwar die Abbildung eines brauchbaren Entwicklungsprozesses. Dennoch mangelt es häufig an Integrierbarkeit und Fehlertoleranz. In der Praxis bestimmt das ALM den Umfang der erreichbaren Agilität.

Entwickeln Sie selbst agil? Wie und warum machen Sie das?

Robertson: Das Entwicklungsteam von Perforce Software hat von Anfang an eine Variante des Mainline-Modells verwendet, um die Releases, Varianten und Komponenten des Produkts zu managen. Das Team selbst, die Code-Basis und die Komplexität der Entwicklung sind über die Jahre deutlich gewachsen, wobei sich das Modell bewährt hat und immer noch wertvolle Dienste leistet.

Wir haben immer auch das Perforce SCM System verwendet, um den Entwicklungsprozess zu organisieren. Dies war bereits so, bevor der Terminus "agil" zum ersten Mal verwendet wurde. Dabei haben wir beobachtet, dass unser visionärer Ansatz der Anwendungsentwicklung den Ansätzen recht nahe ist, die heute von agilen Entwicklungsteams verwendet werden.

(ms)

Kommentare

Gravatar Ralf 23.12.2008
um 18:32 Uhr
Wo ist AccuRev? http://www.accurev.com #zitieren

Folgende Links könnten Sie auch interessieren