Sicherstellen der Betrachtung von nicht-funktionalen Anforderungen in SCRUM-Prozessen durch Etablierung von Feedback



Ähnliche Dokumente
Sicherstellen der Betrachtung von nicht-funktionalen Anforderungen in SCRUM- Prozessen durch Etablierung von Feedback

von nicht-funktionalen Prozessen durch Etablierung von Feedback REConf März 2010

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Entwicklung nach Scrum

Hilfe, mein SCRUM-Team ist nicht agil!

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Praktische Erfahrungen beim Einsatz des Vorgehensmodells "SCRUM" bei AGFA HealthCare

Projektplanung für Softwareprojekte: KLIPS 2.0 Prof. Dr. Manfred Thaller WS 2011/ Dana Wroblewski

Agile Softwareentwicklung mit Scrum

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Sollten folgende drei Fragen durch das Team positiv beantwortet werden, sind wichtige SCRUM-Elemente in Ihrem Team erfolgreich installiert.

SCRUM. Software Development Process

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Agile Software Development


Umfrage zum Informationsbedarf im Requirements Engineering

SCRUM. Legalisierung der Hackerei? GI Regionalgruppe Dortmund Dipl.-Inform. (FH) Dirk Prüter.

Scrum. Agile Software Entwicklung mit. Agile Software Entwicklung mit. Scrum. Raffael Schweitzer 18. November 2003

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Was meinen die Leute eigentlich mit: Grexit?

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Was Sie über SCRUM wissen sollten...

.. für Ihre Business-Lösung

myscrum Scrum in der Praxis Markus Schramm compeople AG Frankfurt

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Das Wasserfallmodell - Überblick

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Meetings in SCRUM. Leitfaden. Stand:

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Agile Management Einführung in agiles Management

Einführung und Motivation

Usability Engineering in agilen Projekten

Primzahlen und RSA-Verschlüsselung

Nachricht der Kundenbetreuung

Projektmanagement Vorlesung 12/ 13

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

30 Multiple Choice-Fragen - pro Frage gibt es immer 1-4 richtige Antworten

Urlaubsregel in David

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Projektmanagement in der Spieleentwicklung

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Die Online-Meetings bei den Anonymen Alkoholikern. zum Thema. Online - Meetings. Eine neue Form der Selbsthilfe?

Fragebogen: Abschlussbefragung

The big picture: Prince2 featuring SCRUM. Bernd Lehmann, Prince2-Tag Köln, 12. Mai 2011

Gelebtes Scrum. Weg vom Management hin zur Führung

Was sind Jahres- und Zielvereinbarungsgespräche?

Agilität auf Unternehmensebene - Was hält uns davon ab?

Online Newsletter III

Erfahrungsbericht Agile Entwicklung einer BI Anwendung für das Meldewesen

Mit agilen Methoden kommen Sie weiter

Kulturelle Evolution 12

Agiles Projektmanagement mit Scrum

Mobile Intranet in Unternehmen

Über den Link erreichen Sie unsere Einstiegsseite:

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Anleitung über den Umgang mit Schildern

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

DER SELBST-CHECK FÜR IHR PROJEKT

Michael Franken. Serum für bummies. Übersetzung aus dem Niederländischen (/on Susanne Bonn. WlLEY. WILEY-VCH Verlag GmbH & Co.

WordPress. Dokumentation

etermin Einbindung in Outlook

Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013!

Mit agilen Methoden kommen Sie weiter

Agile Prozessverbesserung. Im Sprint zu besseren Prozessen

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

Markup-basiertes Spezifikationsund Anforderungsmanagement in agilen Softwareprojekten

Drägerware.ZMS/FLORIX Hessen

Andrea Grass & Dr. Marcus Winteroll oose Innovative Informatik GmbH. Geschäftsprozessmanagement und Agilität geht das zusammen?

Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Task: Nmap Skripte ausführen

Datensicherung. Beschreibung der Datensicherung

Fotos in Tobii Communicator verwenden

Der Business Analyst in der Rolle des agilen Product Owners

Inhaltsverzeichnis. Inhaltsverzeichnis... I. 1 Problemstellung V-Modell Allgemeines Anwendung des V-Modells...

Integrierte IT Portfolioplanung

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

Success-Story. Das Unternehmen. mobile.international

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Leseauszug DGQ-Band 14-26

Scrum. Übung 3. Grundlagen des Software Engineerings. Asim Abdulkhaleq 20 November 2014

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Beschreibung des MAP-Tools

Wo sind meine Anforderungen?

Folgeanleitung für Fachlehrer

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Erfolgreiche Realisierung von grossen Softwareprojekten

Transkript:

Sicherstellen der Betrachtung von nicht-funktionalen Anforderungen in SCRUM-Prozessen durch Etablierung von Feedback Gregor Engels¹, Silke Geisen¹, Olaf Port², Stefan Sauer¹ ¹s-lab Software Quality Lab, Universität Paderborn Warburger Straße 100, 33098 Paderborn {engels, sgeisen, sauer}@s-lab.upb.de ² S&N AG, netbank solutions Klingenderstraße 5, 33100 Paderborn oport@s-und-n.de Abstract: Agile Vorgehensmodelle wie SCRUM haben mit der Zeit immer mehr an Bedeutung gewonnen. Obwohl sie erhebliche Erfolge vorzuweisen haben, haben sich in der Praxis diverse Probleme hervorgetan. Nicht-funktionale Anforderungen wie beispielsweise Performanz oder Benutzungsfreundlichkeit finden wenig oder gar keine Betrachtung. Um dieses zu verbessern und ein frühzeitiges Feedback vom Kunden und Anwender in den Lebenszyklus eines Sprints fest zu etablieren, stellt dieser Beitrag eine Erweiterung des SCRUM- Prozesses um eine weitere Tätigkeit zur Qualitätssicherung vor. Der Kunde und Anwender sowie ihr rechtzeitiges Feedback an das Entwicklungsteam werden durch diese Tätigkeit fest in den Prozess mit eingebunden, so dass ihr Feedback in weitere Betrachtungen und Planungen mit einfließt. Aufgrund des inkrementellen Vorgehens in SCRUM-Prozessen, d.h. der Einteilung in Sprints, konnte diese Erweiterung des Prozessmodells schrittweise in einem Kundenprojekt der S&N AG, Paderborn, eingeführt und evaluiert werden. 1 Einleitung In den letzten Jahren hat die Popularität von sogenannten leichtgewichtigen Vorgehensmodellen zugenommen. Erstmals wurde ein solches Modell von Kent Beck mit Extreme Programming (XP) vorgestellt [Be00]. Heute sind diese Modelle als agile Vorgehensmodelle bekannt. SCRUM [BS02, Gl08], Feature Driven Development (FDD) [DCL99] und Crystal [Co02] sind nur einige weitere Beispiele, die im Laufe der Zeit entstanden sind. Die Bezeichnung agil (lat. agilis: flink; beweglich) wurde auf einer Konferenz 2001 in Utah ausgewählt, wo ebenfalls das Agile Manifest [AA01] entstand. Dies stellt das Fundament für die Agile Softwareentwicklung dar. Die sogenannten agilen Werte sind: 1. Individuen und Interaktionen gelten mehr als Prozesse und Tools.

2. Funktionierende Programme gelten mehr als eine ausführliche Dokumentation. 3. Die stetige Zusammenarbeit mit dem Kunden steht über Verträgen. 4. Der Mut und die Offenheit für Änderungen stehen über dem Befolgen eines festgelegten Plans. Eine Hauptcharakteristik agiler Vorgehensmodelle ist die Vorgehensweise in iterativen Zyklen. Das Ziel eines jeden iterativen Zyklus ist es, funktionierende Software bzw. neue Funktionalitäten für eine Software abzuliefern. In den verschiedenen Vorgehensmodellen gibt es bestimmte Rollen, die fest verteilt sind. Dabei liegt der Hauptfokus auf dem Team, welches am besten interdisziplinär zusammengesetzt ist. Zwar etablieren sich die agilen Vorgehensmodelle immer mehr und haben diverse Erfolge vorzuweisen, doch treten in der Praxis und der Umsetzung Probleme auf. Obwohl im dritten Punkt des Agilen Manifests die stetige Zusammenarbeit mit dem Kunden steht, liegt doch der Hauptfokus auf dem zweiten Punkt, funktionierende Programme bzw. lauffähige Software zu liefern und das möglichst schnell [Si08]. Dabei scheint das Hauptaugenmerk mehr auf den Features, d.h. den zukünftigen Funktionalitäten, zu liegen als auf den vielfältigen, insbesondere nicht-funktionalen Anforderungen des Kunden oder besser des Endanwenders selbst. Dadurch kann es dazu kommen, dass eine Software am Ende ein Feature besitzt, welches der Anwender gar nicht nutzt oder der Anwender ein nicht realisiertes Feature vermisst [Pa02]. Da die Zeit der iterativen Zyklen (Sprints in SCRUM) meist knapp bemessen ist, hat die Qualitätssicherung und dabei insbesondere das Beachten der nicht-funktionalen Anforderungen, z.b. Performanz oder Benutzungsfreundlichkeit, darunter zu leiden. Diese werden meist nur sehr wenig oder gar nicht betrachtet. Feedback vom Kunden bzgl. dieser Anforderungen gibt es gar nicht oder kommt zu spät [SL07]. Dieser Beitrag beschäftigt sich mit der Frage, wie das Etablieren von Feedback die Qualitätssicherung unterstützen und wie Qualitätssicherung stärker in die agilen Vorgehensmodelle eingebracht werden kann. Hierbei liegt der Fokus insbesondere auf der Verbesserung der Betrachtung und Überprüfung von nicht-funktionalen Anforderungen. Das Vorgehensmodell unterliegt unterdessen selbst einer Evolution. Diese kann aufgrund der Einteilung eines agilen Entwicklungsprozesses in iterative Zyklen sogar Prozess begleitend erfolgen,. Aufgrund der Erfahrungen aus dem praktischen Einsatz in Projekten der S&N AG, Paderborn haben wir die SCRUM-Methode weiterentwickelt und um eine zusätzliche Tätigkeit zur Qualitätssicherung zusammen mit dem Kunden am Ende eines iterativen Zyklus (Sprint) erweitert. Die Idee ist, den Kunden und den Anwender in einem 1-3- tägigen Zeitraum vor der Lieferung der neuen Funktionen die Software testen zu lassen, um so geeignetes Feedback zu bekommen. Dieses Vorgehen validiert zum Einen die neuen Funktionalitäten und es werden nur die ausgeliefert, die wirklich funktionieren; zum Anderen wird frühzeitig Feedback zu nicht-funktionalen Anforderungen wie Performanz und Benutzungsfreundlichkeit geliefert. Dieser Ansatz wurde schrittweise in einem Kundenprojekt der S&N AG eingesetzt und getestet.

Im weiteren Verlauf gehen wir zunächst auf die agilen Vorgehensmodelle selbst und insbesondere SCRUM ein. Dabei werden kurz die typischen Tätigkeiten und Rollen sowie auftretende Probleme dargestellt. In Abschnitt 3 wird der Lösungsansatz der zusätzlichen Tätigkeit zur Qualitätssicherung zusammen mit dem Kunden mittels QS- Tagen näher erläutert. Dem schließt sich eine Darstellung im Abschnitt 4 an, wie unser Ansatz in der Praxis eingesetzt wird. Abschließend geben wir einen Ausblick auf zukünftige Aufgaben. 2 Agile Vorgehensmodelle Die agilen Vorgehensmodelle bzw. Prozesse sind die Gegenbewegung zu den schwergewichtigen Prozessen, wie beispielsweise das Wasserfallmodell oder der Rational Unified Process (RUP) [Kr98]. Agile Prozesse sind dabei kommunikationsintensiv und legen Wert auf den Einzelnen selbst sowie auf Selbstverantwortung. Ein Team soll sich selbst organisieren und alles kommunizieren, was zu einer Verminderung von aufwändiger Dokumentation führen soll. Ziel der Prozesse ist es, durch kurze iterative Zyklen schnellstmöglich Software mit neuer Funktionalität zu liefern [DNZ07]. Dabei ist es schwierig, wenn nicht unmöglich, in Projekten alle Anforderungen vorher festzulegen. Mit den agilen Vorgehensmodellen soll die Möglichkeit gegeben werden, zeitnah auf neue Anforderungen und Änderungen reagieren zu können. An die spätere Software werden verschiedene Anforderungen gestellt. Auf der einen Seite stehen funktionale Anforderungen, welche die Funktionen der Software beschreiben. Auf der anderen Seite stehen die nicht-funktionalen Anforderungen wie beispielsweise Performanz, Benutzungsfreundlichkeit, Sicherheit usw., welche die über die Funktionalität hinaus gehenden Eigenschaften der Software beschreiben und festlegen. Agile Methoden sind Code- und abgabeorientiert [DNZ07], und der Hauptfokus liegt dabei auf der Erfüllung der funktionalen Anforderungen. 2.1 SCRUM Neben Extreme Programming (XP) ist SCRUM [BS02] eines der bekanntesten agilen Vorgehensmodelle. Dieses wurde von Ken Schwaber, Mike Beedle und Jeff Sutherland erfunden und etabliert. Diese drei sind ebenfalls Ko-Autoren des Agilen Manifests. Der SCRUM-Prozess besteht in der Regel aus drei festgelegten Rollen sowie verschiedenen Meetings und sogenannten Artefakten, den Resultaten der Prozessschritte [Gl08]. Die verteilten Rollen sind dabei 1. der Product Owner, der den Auftraggeber aus fachlicher Sicht vertritt und die Vision des Produktes kennt,

2. der SCRUM-Master, der für das Einhalten der SCRUM-Regeln und Werte verantwortlich ist sowie als Vermittler zwischen Product Owner und Team fungiert, 3. das Team, welches für die Umsetzung und Realisierung zuständig ist. Die Rollen, Meetings und Artefakte stehen alle miteinander in Zusammenhang und definieren am Ende den SCRUM-Prozess (Abbildung 1). Abbildung 1: Der SCRUM-Prozess [GL08] Dabei werden zunächst alle Anforderungen mit einem Kunden zusammen besprochen und in einer Liste, dem sogenannten Product Backlog (PBL), festgelegt. Diese Liste kann sich im Laufe der Zeit immer wieder ändern. Die Product-Backlog-Einträge beschreiben häufig nur die Funktionen, welche die Software enthalten soll und repräsentieren die funktionalen Anforderungen. Da nicht-funktionale Anforderungen oft schwer zu präzisieren sind oder vom Kunden nur implizit gefordert werden, werden diese selten in das Product Backlog mit aufgenommen. Alle Einträge des Product Backlogs werden priorisiert. Für jeden iterativen Zyklus (Sprint), der in der Regel 4 Wochen bzw. 30 Kalendertage dauert, werden die vom Kunden für am wichtigsten gehaltenen Funktionen ausgewählt, und in das Selected Product Backlog aufgenommen. Diese Funktionen werden vom Team in der vorgesehen Zeit umgesetzt. Um die Funktionsfähigkeit der neuen Funktionen zu gewährleisten, sollen diese durch ausreichende Tests abgedeckt sein. Dabei liegt der Hauptfokus auf der Automatisierung von Tests, insbesondere Unit-Tests, Integrationstests sowie User Acceptance Tests (UAT s). Nur ausreichend getestete Funktionalitäten werden am Ende eines Sprints dem Kunden und wenn möglich dem Anwender in einem Review Meeting vorgestellt. In Abbildung 1, der Originaldarstellung des SCRUM-Prozesses [GL08], ist das Review Meeting nicht explizit dargestellt. Es wird durch das Artefakt Result in New Functionality symbolisiert, weil die Ergebnisse des Sprints, welche die neuen Funktionalitäten sind, dort vorgestellt werden.

Die Anwesenheit des Kunden und insbesondere des Anwenders beim Review Meeting ist keine Pflicht. Das Meeting ist ein maximal vierstündiges Informationstreffen, wo an laufender Software vorgestellt wird, was während des Sprints realisiert wurde. Dabei demonstrieren die Team-Mitglieder die neuen Funktionen, der Kunde selbst probiert die Software aber nicht aus. Während dessen wird überlegt, was evtl. an neuer Funktionalität hinzukommen soll [BS02]. Diese Funktionen werden im nächsten Planning Meeting besprochen und in das Product Backlog aufgenommen. Diese Einträge werden im weiteren Verlauf kurz PBL-Einträge genannt. In einer Retrospektive am Ende eines jeden Sprints wird besprochen, was im Sprint gut war und was besser gemacht werden könnte. Die Retrospektive ist teamintern und es wird nicht über Funktionalitäten oder Anforderungen an die Software gesprochen, sondern nur über den Ablauf des Sprints selbst. 2.2 Probleme und Einschränkung agiler Prozesse insbesondere von SCRUM Obwohl der Einsatz von agilen Prozessen schnelle und gute Erfolge bringt, hat sich u.a. auch in der Praxiserfahrung der S&N AG gezeigt, dass der Kunde oder Anwender und insbesondere ihr Feedback nicht ausreichend in den Prozess eingebunden werden. Insbesondere die Betrachtung von nicht-funktionalen Anforderungen tritt dabei vielfach in den Hintergrund. In der Regel findet die Qualitätssicherung teamintern statt und beschränkt sich auf das ausreichende Testen der einzelnen PBL-Einträge durch das Team. Beim Team liegt auch die alleinige Verantwortung für die Qualitätssicherung und das Testen. Dafür sollen so viele Tests wie möglich automatisiert werden. Durch die geringe Zeit der Sprints ist die Qualitätssicherung in der Realität auch ein Punkt, der am ehesten vernachlässigt wird. Zusätzlich treten noch weitere Einschränkungen von SCRUM im Bereich der Qualitätssicherung auf, woraus sich 5 Problempunkte ergeben: P1: Da bei SCRUM der Hauptfokus auf dem schnellen Liefern von Funktionalität liegt, werden nicht-funktionale Anforderungen wie beispielsweise Performanz oder Benutzungsfreundlichkeit gar nicht oder erst zu spät betrachtet [Si08]. Allerdings erwarten der Kunde und der Anwender diese Eigenschaften implizit, und ihre Erwartungen werden durch diese Ausgrenzung nicht erfüllt. P2: Durch die fehlende Betrachtung fehlen die Anforderungen meistens als Eintrag im Product Backlog und können entsprechend nicht priorisiert werden. P3: Es gibt gar kein oder wenig Kunden- und Anwender-Feedback oder das Feedback kommt nicht früh genug [LS07]. SCRUM verlangt kein explizites Einbinden des Anwenders, es sieht beim Team eine Holschuld [Gl08]. Die Teammitglieder sind aber keine Fachexperten und wissen z.t. nicht, was der Anwender am Ende verlangt. Dadurch können auch falsche Entscheidungen getroffen werden [Ma06].

Somit kann es sein, dass Funktionen geliefert werden, die der Anwender nie benutzt, oder erwartete Funktionen fehlen [Pa02]. P4: Das Produkt wird nur kurz im Review Meeting vorgestellt. Der Kunde hat in der Zeit nicht die Möglichkeit zu beurteilen, ob das Produkt ausreichend validiert ist. Durch das fehlende Feedback ist genau dies häufig nicht der Fall [LS07, Si08]. P5: Die Sprints sind zu kurz, es bleibt nicht genug Zeit für ausreichende Tests etwa der Benutzungsfreundlichkeit und Performanz [LS07]. Um den Kunden und speziell die Betrachtung von nicht-funktionalen Anforderungen in einen agilen Prozess einzubinden, werden diverse Ansätze vorgeschlagen. Nach Dobson [Do07] ist Performance Testing wichtig, aber schwer in einen agilen Prozess einzubinden. Wie bei anderen Tests auch müssten die Performanztests soweit wie möglich automatisiert werden und ein Experte im Team sei wichtig. Diese Tests sollten so früh wie möglich stattfinden, aber aufgrund der sich stetig ändernden Software ist das sehr schwierig. Ebenso gibt es verschiedene Ansätze, speziell User-Centered Design [PRS02], um Benutzungsfreundlichkeit mit in den Prozess einzubinden. Singh [Si08] schlägt vor, dass als zusätzliche Rolle ein zweiter Product Owner mit eingeführt wird, der sich ausschließlich auf die Benutzungsfreundlichkeit konzentriert. Ein viel diskutierter Ansatz ist, einen Sprint 0 für Design-Aktivitäten einzuführen und diese im weiteren Verlauf zu den anderen Entwicklungsaktivitäten separat oder parallel weiter durchzuführen [GMR04, DNZ07, Pa02]. Ferner wird Prototyping als Möglichkeit eines frühen Usability-Tests vorgeschlagen [Ma06], um dies mit in den Prozess einzubinden. Im Folgenden stellen wir unseren verallgemeinerten Ansatz vor, der den traditionellen SCRUM-Prozess erweitert und es erlaubt, frühzeitig Feedback vom Kunden zu bekommen und dieses in den weiteren Entwicklungsprozess einzubeziehen. Unser Ansatz spezialisiert sich nicht auf eine bestimmte nicht-funktionale Anforderung wie z.b. Performanz oder Benutzungsfreundlichkeit, sondern verbessert insgesamt die Berücksichtigung aller relevanten funktionalen und nicht-funktionalen Anforderungen in SCRUM-Prozessen. 3 Lösungsansatz Nachdem wir im vorherigen Abschnitt agile Vorgehensmodelle und ihre Probleme diskutiert haben, stellen wir nun unseren Lösungsansatz vor. Die Idee ist, den Kunden und insbesondere sein Feedback durch eine zusätzliche Tätigkeit mit in den Prozess einzubinden, gleichzeitig aber die Sprintlänge beizubehalten oder sie zumindest nicht drastisch zu verlängern.

Unser Ansatz ermöglicht, dass der Kunde vor der Lieferung das Produkt länger und genauer unter die Lupe nehmen kann, als nur für die kurze Zeit des Review Meetings. Dadurch hat er mehr Zeit, qualitatives Feedback zu geben, welches in die nächsten Sprints zur Verbesserung der Produktqualität mit einfließen kann. Das hiermit ermöglichte erweiterte Feedback soll nicht auf funktionale Anforderungen eingeschränkt sein: der Kunde sowie der Anwender können einerseits die (neue) Funktionalität beurteilen und andererseits ihren Eindruck zur allgemeinen Benutzungsfreundlichkeit, Benutzerführung, Performanz etc. mitteilen. 3.1 Einführung einer zusätzlichen Tätigkeit der Qualitätssicherung durch den Kunden und Anwender anhand von QS-Tagen Um die oben genannten Punkte zu gewährleisten und dem Anwender genug Zeit für eine ausreichende Validierung und Stellungnahme zu geben, wurde der SCRUM-Prozess durch eine zusätzliche Tätigkeit zur Qualitätssicherung (QS-Tätigkeit) mit dem Kunden zusammen erweitert. Der Zeitraum ist variabel und umfasst je nach Sprint 1-3 Tage. Sprint Planning 1 Selected Product Backlog Sprint Planning 2 Retrospektive New Scrum Flow Sprint Backlog RESULT Neue Funktionalität 1-3 QS-Tage QS-Tätigkeit durch Kunde QS-Tage n day 24 hours Sprint Abbildung 2: Erweiterter SCRUM-Prozess Diese Tage zur Qualitätssicherung, kurz QS-Tage, befinden sich, wie in Abbildung 2 zu sehen ist, zwischen dem eigentlichen Sprint bzw. der Realisierung durch das Team und dem anschließenden Review Meeting. Sie sind quasi ein Übergang zwischen der eigentlichen Entwicklung und dem Review. Das Team liefert die Software mit den Funktionen, die sie als fertig betrachten einem speziellen Team des Kunden, welches variieren kann (Anwender, IT-Fachleute etc.).

Die QS-Tage umfassen zunächst eine kurze Integrationsphase der neuen Software im Nutzungsumfeld des Kunden, in dem die Software später eingesetzt wird. Anschließend haben Kunde und Anwender ausreichend Zeit, die Software auf ihre Funktionalität zu überprüfen und dem Team Feedback zu geben. Dies kann beispielsweise durch einen speziellen Sub-Task im jeweiligen PBL-Eintrag sein. Zusätzlich kann der Kunde sein Feedback und seine Ideen über ein Management-System erfassen oder sie z.b. als Improvements für einen der nächsten Sprints erfassen. Aufgrund des Feedbacks werden im anschließenden Review Meeting zum Einen wirklich nur die Funktionalitäten vorgestellt, die der Kunde bzw. Anwender als ok befindet und zum Anderen fließt das Feedback direkt in die nächsten Planning Meetings mit ein. Nicht gelieferte Funktionen werden neu überdacht oder es werden für weitere Ideen und Improvements neue PBL-Einträge erfasst und priorisiert. So entstehen zusätzliche Performanz- und Usability-Tasks und sie können priorisiert werden. Der genaue Ablauf dafür ist in Abbildung 3 zu sehen. n day 24 hours Neuer Task wird beachtet und bearbeitet 1-3 QS-Tage Neuer Eintrag/ Task im Sprint Backlog QS-Tätigkeit durch Kunde QS-Tage Konkretes User-Feedback Neue Planung nicht ok ok RESULT Neue Funktionalität Abbildung 3: Einbinden des Anwender-/ Kunden-Feedbacks mit zusätzlicher QS-Tätigkeit Durch dieses Einbinden des Kunden ist es möglich, rechtzeitig ein qualitatives Feedback von ihm zu bekommen. Gleichzeitig können damit die Probleme P1 und P2 gelöst werden, da Performanz- und Usability-Probleme, sollten denn welche auftreten, durch die Erfassung als neuer PBL-Eintrag sichtbar gemacht werden. Dem Kunden wird bewusst gemacht, dass ihm selbst diese Punkte wichtig sind und sie betrachtet werden müssen. Es ist möglich, diese neuen Einträge zu priorisieren, und der Fokus liegt gleichzeitig nicht mehr ausschließlich auf der Funktionalität. Das Bewusstsein des Teams und auch des Kunden selbst für diese Anforderungen wird geschärft.

Ebenfalls werden die Probleme P3 P5 durch die neue QS-Tätigkeit betrachtet und im Ansatz gelöst. Das Kunden- und Anwender-Feedback ist direkt in den Prozess mit eingebunden und erfolgt rechtzeitig für das Team. Das Produkt wird ausreichend validiert und der Kunde und insbesondere der Anwender können sofort mitteilen, wenn sie eine Funktionalität vermissen oder ihnen eine andere überflüssig erscheint (s. Problem P3). Ferner kann diese Zeit zusätzlich für spezielle Usability- und zusätzliche Performanz-Tests im Kunden-Umfeld genutzt werden. 3.2 Zusätzliche Anwender-Tage und Performanztests in der Kundenumgebung Bei einer Erprobung dieses Ansatzes hat sich gezeigt, dass das Feedback seitens des Kunden und vor allem des Anwenders noch verbessert werden kann. Hierzu wird zusätzlich während der QS-Tage in späteren Sprints regelmäßig ein Anwender-Tag eingeführt. Dafür wird eine größere Anzahl von reinen Fachanwendern vom Kunden eingeladen, die die Software auf für sie ausreichende Funktionalität hin testen. Sie bekommen ebenfalls die Möglichkeit, Feedback in die PBL-Einträge einzustellen. Zusätzlich ist immer noch mindestens ein Entwickler, wenn nicht das ganze Entwicklerteam vor Ort. Die Anwender-Tage können direkt in den Prozess eingebunden werden, indem sie an einem der QS-Tage, am besten dem letzten Tag, stattfinden. Sie haben den Vorteil, dass das Team zusätzliches Feedback von einer größeren Anzahl von Fachanwendern bekommt. Ferner können zusätzliche Usability-Tests mit einer größeren Nutzerbasis für diese Tage geplant und anschließend durchgeführt werden. Um eine ausreichende Planung und Durchführung sowie aussagekräftige Ergebnisse zu gewährleisten, können diese Tage entsprechend als PBL-Eintrag in den jeweiligen Sprint aufgenommen werden. Der Anwender-Tag bietet außerdem die Möglichkeit, einen nicht-automatisierten Performanz-Test der Anwendung live mit einer größeren Anzahl konkreter Benutzer, die sich alle anders als ein automatisierter Benutzer verhalten, durchzuführen. Dafür testen alle Anwender gleichzeitig die Anwendung über einen längeren Zeitraum von etwa 6-8 Stunden, was einem normalen Arbeitstag mit der Anwendung entspricht. Das Team kann dabei zum Einen beobachten, wie sich das System unter realer Last bei konkreten Anwendern verhält. Zum Anderen bekommt das Team direktes Feedback von den Anwendern über ihren subjektiven Eindruck von der Performanz der Anwendung, z.b. ob sie ausreichend schnell ist für ihre tägliche Arbeit ist. Die Performanz- und Lasttests in der direkten Kundenumgebung sollten nicht nur während des Anwender-Tages durchgeführt werden, sondern auch immer während der gesamten QS-Tage, dort am besten in automatisierter Form. Dadurch ist eine ständige Überprüfung gewährleistet, ob das System nicht nur in der Entwicklungsumgebung unter Last die entsprechende Performanz bringt, sondern auch im Kundenumfeld. Es kann festgestellt werden, ob entsprechende Faktoren im Einsatzumfeld die Performanz behindern bzw. beeinflussen oder nicht. Ist dies der Fall, muss die Performanz entsprechend neu in der Entwicklungsumgebung überprüft und gegebenenfalls neu priorisiert und angepasst werden.

4 Evaluierung in der Praxis Der Lösungsansatz wurde in Zusammenarbeit des s-lab Software Quality Lab der Universität Paderborn mit der S&N AG, Paderborn entwickelt und in einem Kundenprojekt eingesetzt. Die S&N AG ist ein mittelständiges Unternehmen mit ca. 150 Mitarbeitern, welche sich auf die Entwicklung von Software für die Finanzbranche spezialisiert hat. Gegenstand ist die Entwicklung eines Produktes bei einem Kunden aus der Kreditwirtschaft. Die S&N AG hatte zuvor nur wenig Erfahrung mit agilen Vorgehensweisen, sie setzte Aspekte von SCRUM bisher erst in einem Projekt erfolgreich ein. Im betreffenden Projekt nutzt die S&N AG eine agile Vorgehensweise angelehnt an SCRUM. Im Unterschied zum Original-SCRUM wird kein Daily-SCRUM durchgeführt, sondern ein SCRUM-Meeting über ca. 30-60 Minuten an zwei Tagen pro Woche, Dienstags und Donnerstags. Diese Variante wurde gewählt, da sowohl der SCRUM-Master als auch der Kunde nicht vorort sind. Ein weiterer Unterschied zum Original ist, dass der Product Owner hier durch ein Team des Kunden von 5 Personen vertreten wird. Bei der Durchführung des Projektes hat es zu Beginn häufiger Einwände des Kunden bezüglich Funktionsumfang und Qualität des nach einem Sprint erstellten Produkts gegeben. Daraufhin wurde gemeinsam mit dem Kunden, wie im Abschnitt 3 beschrieben, das SCRUM-Vorgehensmodell erweitert und eine zusätzliche QS-Tätigkeit mit dem Kunden eingeführt. Die QS-Tage waren zunächst auf einen Tag beschränkt. Aufgrund der positiven Erfahrungen wurden sie in späteren Sprints auf 3 Tage erweitert. Das zu entwickelnde Produkt ist eine Web-Anwendung. Um die Umsetzung der Funktionalität im jeweiligen Sprint kümmert sich das Entwicklungsteam, das je nach Bedarf im Sprint eine Größe von 10-15 Personen umfasst. Das Team ist interdisziplinär zusammengesetzt und besteht u.a. aus Programmierern, Software-Architekten, Personen mit speziellem Fachwissen, Testern und einer Person speziell für die Qualitätssicherung. Für das gesamte Projekt sind 13 Sprints vorgesehen. Die Sprintlänge beträgt klassisch 4 Wochen: 3 Wochen für die Entwicklung und die restliche Woche für die QS-Tage bzw. Review-Meeting, Retrospektive und erneutes Planning Meeting. Zur Verwaltung wird u.a. das JIRA-Management-System [JIRA] eingesetzt. Um die Qualität des Produktes sicherzustellen, wurde, wie in agilen Vorgehensmodellen beschrieben [Gl08, SW08], verstärkt auf Testen und dessen Automatisierung gesetzt. Unit-Tests wurden automatisiert, und über die ersten Sprints hinweg wurde ein automatisierter Integrationprozess entwickelt. Dies führt zu Zeitersparnis, und die Tests können für Regressionstests wiederverwendet werden. Zusätzlich wurde ein Teammitglied speziell für die Qualitätssicherung vorgesehen, welche insbesondere die Testaufgaben beaufsichtigt und durchführt. Ferner wurden zusätzlich zu jedem Task bzw. PBL-Eintrag spezielle Testspezifikationen zusammen mit dem Entwickler erstellt, nach welchen das QS-Team an den QS-Tagen primär getestet hat.

Das Team für die QS-Tätigkeit besteht aus IT-Spezialisten des Kunden und insbesondere aus Fachanwendern. Sein Feedback verfasst dieses QS-Team in einem gesonderten Unterpunkt der einzelnen PBL-Einträge, als spezielle Improvements sowie in einem Issue-Tracking-System (ebenfalls JIRA). Abschließend geben die Personen des QS- Teams ihre Einschätzung, ob die Funktionalität in Ordnung ist und so in Produktion gehen kann. Diese abgenommenen Funktionalitäten werden in einem anschließenden Review Meeting geliefert und besprochen. Das weitere Feedback wird ebenfalls besprochen und in den nächsten Sprints mit beachtet. Gegebenenfalls werden neue Tasks bzw. PBL-Einträge erstellt und zusammen mit dem Kunden priorisiert. Zusätzlich zu den QS-Tagen gibt es regelmäßig Anwender-Tage, mit zusätzlichen Fachanwendern von anderen Standorten. Außerdem gibt es ab Sprint 7 regelmäßig zusätzliche Performanzund Lasttests in der Umgebung des Kunden. Erste Ergebnisse im Projekt zeigen, dass die Beteiligung des Kunden und Anwenders im Prozess durch die festgelegten QS-Tage eine verbesserte Berücksichtigung von nichtfunktionalen Anforderungen bringt, in diesem Fall insbesondere der Performanz. Das Entwicklerteam bekommt durch sie regelmäßig und vor allem rechtzeitiges Feedback. Diese Verbesserungen wurden zum einen in Berichten und Einträgen im Wiki sowie in Jira geschildert. Zum anderen wurden direkte Gespräche und Beobachtungen mit dem Kunden genutzt, die Bewertung dieser Methode in Erfahrung zu bringen. Die Kommunikation Team Kunde wurde zusätzlich gestärkt. Es wird nicht nur über das Issue-Tracking-System und den Einsatz eines Wiki kommuniziert, sondern durch vielfache Treffen und Telefonate erfolgt ein regelmäßiger Austausch. Dies stärkt das Verständnis des Teams für die Anwendung und vor allem auch für den Anwender. Insbesondere fiel dabei auf: Je komplexer die Anwendung wurde, umso mehr rückten durch das Feedback nicht nur die Funktionalität, sondern speziell auch die nichtfunktionalen Anforderungen in den Fokus. Zum Einen gab es diverse Verweise auf die Nutzerführung, die geändert werden musste, zum Anderen positives Feedback von den Fachanwendern hinsichtlich der Benutzungsfreundlichkeit. Um sie, speziell die Nutzerführung zu verbessern, wurde häufig auf das Vorgängerprodukt verwiesen, um beim Anwender einen hohen Wiedererkennungswert zu erzeugen. Ein weiterer wichtiger Punkt war die Performanz, die zwar in der Umgebung des Entwickler-Teams sehr gut, aber in der Kunden-Umgebung und besonders vom subjektiven Eindruck des Anwenders her nicht optimal war. Durch das Feedback konnte dieser Punkt sichtbar gemacht werden. Die Performanz und insbesondere deren Optimierung wurde mit in das PBL aufgenommen und in jedem Sprint mit berücksichtigt. Je komplexer die Anwendung wurde und je nach Wichtigkeit für den Kunden und Anwender, rückte die Berücksichtigung der Performanz immer weiter in den Fokus. Sie wurde neben den Funktionen sehr hoch priorisiert, teilweise sogar am höchsten. Durch das jeweilige Feedback wurde die Wichtigkeit dieser nicht-funktionalen Anforderung sowohl dem Team als auch dem Kunden bewusst gemacht und dementsprechend im Prozess immer wieder bewertet.

Performanz/ Antwortzeiten (AZ) Absturz der Anwendung Erhebliche Verlangsamung AZ > 20 sec sehr langsam 8 sec < AZ < 20 sec langsam 4 sec < AZ < 8 sec akzeptabel 2 sec < AZ < 4 sec Gut/ Flüssig AZ < 2 sec 1 Stunde 2 Stunden 4Stunden 6 Stunden 8 Stunden > 8 Stunden Sprint 7 Sprint 8 Sprint 9 Sprint 10/ 11 Abbildung 4: Performanz bestimmter Funktionen der Anwendung unter Last von mehreren Benutzern gleichzeitig über mehrere Stunden am Ende des jeweiligen Sprints Die Performanz rückte erst ab dem Ende von Sprint 6 bzw. in Sprint 7 in den Fokus des Kunden. Die Anwendung war zu dem Zeitpunkt sehr komplex geworden und vorherige Benutzertests während der QS-Tage wurden immer nur durch einen, maximal 2 Benutzer gleichzeitig durchgeführt. Jetzt wurden die Tests mit 5 7 Benutzern gleichzeitig über einen längeren Zeitraum durchgeführt. In Abbildung 4 ist zu sehen, dass die Performanz dabei dramatisch einbrach: Die Anwendung ist bei wichtigen Funktionen, die eine Antwortzeit von ca. 2 4 Sekunden haben sollten, nach weniger als 1 Stunde unter Last zusammengebrochen. Aufgrund dieser Ergebnisse wurde die Wichtigkeit der Performanz dem Kunden bewusst, so dass die Optimierung und Sicherstellung der Performanz als Task definiert und als Eintrag ins PBL bzw. als Sprint-Backlog-Eintrag mit in den nächsten Sprint aufgenommen wurde. Priorisierung der Performance Hoch Mittel Niedrig Sprint 1-5 Sprint 6 Sprint 7 Sprint 8 Sprint 9 Sprint 10 Sprint 11 Keine Betrachtung Interne Betrachtung Sichtbare Betrachtung durch PBL-Eintrag Abbildung 5: Betrachtung und Priorisierung der Performanz im jeweiligen Sprint

Wie in Abbildung 5 zu sehen ist, wurde der neu erstellte PBL-Eintrag der Performanz sofort als Hoch priorisiert. In den Sprints zuvor wurde die Performanz in den ersten fünf gar nicht, in Sprint 6 nur intern betrachtet. Zu dem Zeitpunkt wurden erste JMeter- Tests [JMET] durchgeführt, um die Performanz allgemein, aber intern zu betrachten. Die Performanz wurde nun am Ende jedes Sprints während der QS-Tage durch den Kunden explizit getestet und betrachtet. Am Ende von Sprint 8 war die Performanz zwar verbessert, aber über einen längeren Zeitraum war die Anwendung immer noch viel zu langsam. Durch einen weiteren hoch priorisierten PBL-Eintrag blieb die Performanz im Blickpunkt der Betrachtung. Am Ende von Sprint 9 gab es durch Optimierung seitens des Entwicklerteams signifikante Verbesserungen, aber die Anwendung wurde nach Last über einen langen Zeitraum (über 6 Stunden) wieder langsamer, so dass nicht akzeptable Antwortzeiten erreicht wurden. Dies führte zu einem weiteren hoch priorisierten PBL- Eintrag im nächsten Sprint. Ab Sprint 10 wurden automatisierte Lasttests eingeführt und das Tool JProfiler [JPRO] eingesetzt. Die Optimierungsmaßnahmen durch das Team haben dazu geführt, dass seit Ende von Sprint 10 die Anwendung flüssig läuft und gute Performanz liefert, die unter Last nur minimal langsamer wird. Die gewünschte Performanz war damit erreicht, aber um sie bis zum Projektende zu halten und nicht aus dem Blick zu verlieren, wird sie anhand speziell definierter PBL-Einträge über die letzten Sprints weiterhin beobachtet. Allerdings liegt die Priorität dabei nur noch bei Mittel und nicht mehr bei Hoch, aufgrund der guten Performanzdaten. Zusätzlich gab es ab Sprint 7 jeweils am Ende eines Sprints einen Anwender-Tag. Bei zwei Sprints (Ende Sprint 7 und Ende Sprint 10) wurden weitere Fachanwender von anderen Standorten eingeladen. Die Anwender-Tage brachten weiteres Wissen nicht nur zur Gesamtfunktionalität der Anwendung, sondern auch zur Benutzungsfreundlichkeit und Performanz. Die Benutzungsfreundlichkeit wurde als intuitiv beschrieben. Weitere positive und auch negative Beobachtungen wurden in einem Bericht zusammengefasst und im Wiki veröffentlicht. Verbesserungsvorschläge hinsichtlich der Bedienung der Anwendung, aber auch fehlender oder überflüssiger Funktionalitäten wurden zum Einen direkt mit Entwicklern besprochen, zum Anderen wurden sie als Improvements im JIRA festgehalten, damit sie in den nächsten Sprints berücksichtigt werden können. Ebenfalls gab und gibt es regelmäßige Performanztests im Kunden-Umfeld, um die Performanz weiterhin zu überprüfen und zu verifizieren. Diese Tests finden seit Sprint 8 am Ende eines Sprints während der QS-Tage statt. In Sprint 8 und 9 testeten dafür mehrere Benutzer gleichzeitig über einen längeren Zeitraum die Anwendung. Die Ergebnisse und erste Messungen der Performanz über z.b. Firebug oder auch über eine einfache Stoppuhr, so wie der subjektive Eindruck wurden vom jeweiligen Anwender im entsprechenden PBL-Eintrag dokumentiert. 5 Zusammenfassung und Ausblick In Abschnitt 2 wurden verschiedene Probleme (P1 P5) angesprochen, die agile Prozesse und insbesondere SCRUM im Bereich der Qualitätssicherung sowie der Betrachtung von nicht-funktionalen Anforderungen einschränken.

Durch die Einführung einer neuen Tätigkeit zur Qualitätssicherung, kurz QS-Tätigkeit, durch den Kunden in Form spezieller QS-Tage können die Probleme P1 P5 gelöst oder zumindest minimiert werden. Kunde und Anwender werden durch diese Tätigkeit direkt in jeden Sprint mit eingebunden, und das Team bekommt frühzeitig Feedback zu neuen Funktionalitäten. Der Einsatz der neuen QS-Tätigkeit im Projekt bei der S&N AG in Paderborn hat gezeigt, dass durch das Feedback die Einhaltung der Anforderungen stärker in den Blickpunkt rückt. Bei den nicht-funktionalen Anforderungen lag das Hauptaugenmerk im Projekt auf der Performanz. Diese wurde jetzt nicht nur betrachtet, sondern gelangte zeitweise sogar in den Hauptfokus, was durch eine entsprechend hohe Priorität im Product Backlog belegt wird. Dem Kunden wird bewusst, wie wichtig nicht-funktionale Anforderungen sind. Das Produkt wird nun nicht nur ausreichend validiert, es wird auch frühzeitig festgestellt, ob die entsprechende Funktionalität vorhanden ist und ob die nicht-funktionalen Anforderungen erfüllt werden. Ferner wird festgestellt, ob dem Anwender eine bestimmte Funktion fehlt oder ob eine Funktionalität überflüssig ist. Durch die zusätzliche QS-Tätigkeit sowie ergänzende Anwender-Tage wird Zeit für Performanz- und Usability-Tests fest in den Sprint eingeplant. Ferner wird die Dauer eines Sprints nicht signifikant verlängert. Die hier vorgestellten Erweiterungen des SCRUM-Vorgehensmodells können in Zukunft durch den Einsatz von Werkzeugen weiter verbessert werden. Dabei können derartig automatisierte Überprüfungen sowohl im Entwicklungs- als auch im Anwendungskontext beim Kunden durchgeführt werden. Ein Problem, welches bisher nicht durch die zusätzliche QS-Tätigkeit gelöst wurde, ist die initiale Betrachtung von nicht-funktionalen Eigenschaften. Diese erscheinen erst später als PBL-Eintrag und nicht zu Beginn. In der Planungsphase vor den Sprints müssten diese direkt mit dem Kunden angesprochen und als grober Eintrag mit in das Product Backlog aufgenommen und priorisiert werden. Ein weiterer Ansatz, insbesondere für die Betrachtung der Benutzungsfreundlichkeit wäre, wie in Abschnitt 2.2 beschrieben einen Sprint 0 einzuführen. Um die funktionalen und nichtfunktionalen Anforderungen global und über einen längeren Abschnitt des Prozesses zu betrachten, wäre es sinnvoll, zyklisch nach einigen Sprints, beispielsweise 3, einen Refactoring Sprint einzuführen. Dadurch bekommen die Entwickler Zeit, umfassendere Performance- und auch Usability-Tests durchzuführen, sowie die bisher entwickelten Funktionen bzw. den Code zu überarbeiten und zu verbessern. Insgesamt zeigt der Beitrag wie aufgrund der Inkrementalität von agilen Prozessen und der Einteilung in iterative Sprints in Absprache zwischen Entwicklerteam und Kunde nicht nur die erwartete Funktionalität des Endprodukts schrittweise erarbeitet, sondern auch inkrementell das Vorgehensmodell bewertet und verändert werden kann. In diesem Sinne sind agile Vorgehensmodelle insbesondere auch für die prozessbegleitende Anpassung des Vorgehens hervorragend geeignet.

Literaturverzeichnis [AA01] Agile Alliance: Manifesto for Agile Software Development. http://agilemanifesto.org/ (last visited: 30.06.2009). [Be00] Beck, K.: Extreme Programming Explained. Addison-Wesley, Boston, 2000. [BS02] Schwaber, K.; Beedle, M.: Agile Software Development with Scrum. Prentice Hall, Upper Saddle River, 2002. [Co02] Cockburn, A.: Agile Software Development. Addison-Wesley, Boston, 2002. [DCL99] De Luca, J.; Coad, P.; Lefebyre, E.: Java Modeling in Color with UML: Enterprise Components and Process. Prentice Hall, Upper Saddle River, 1999. [Do07] Dobson, J.: Performance testing on an agile project. In Proceedings of Agile Development Conference, AGILE 2007, S. 351-358, 2007 [BFN07] Biddle, R.; Ferreira, J.; Noble, J.: Up-front interaction design in agile development. In G. Concas et al. (Eds.): XP 2007, LNCS 4536, S. 9-16, 2007. [Gl08] Gloger, B.: SCRUM. Hanser Fachbuchverlag, München, 2008. [GMR04]Gundelsweiler, F.; Memmel, T.; Reiterer, H.: Agile usability engineering. In R. Keil- Slawik, H. Selke, G. Szwillus (Hrsg.): Mensch & Computer 2004: Allgegenwärtige Interaktion, S. 33-42. Oldenbourg Verlag. München, 2004. [JIRA] JIRA: http://www.atlassian.com/software/jira/ (last visited: 30.06.2009). [JMET] JMeter: http://jakarta.apache.org/jmeter/ (last visited: 30.06.2009). [JPRO] JProfiler: http://www.ej-technologies.com/products/jprofiler/overview.html (last visited: 30.06.2009) [Kr98] [LS07] Kruchten, P.: The Rational Unified Process. Addison-Wesley, Reading, Mass.,1998. Miller, L; Sy, D.: Summary of the main problems experienced by participants (User Experience practitioners) while doing agile UCD; CHI/UPA Summary 2007; http://agileucd.editme.com/chi2007summary (last visited: 30.06.2009) [MA06] Meszaros, G; Aston, J.: Adding usability testing to an agile project. In Proceedings of Agile Development Conference, AGILE 2006, S. 289-294, 2006. [DNZ07] Düchting, M.; Nebe, K.; Zimmermann, D..: Incorporating User centered requirement engineering into agile software development. In J. Jacko (Ed.): Human-Computer Interaction, Part I, HCII 2007, LNCS 4550, S. 58-67, 2007. [Pa02] Patton, J.: Hitting the target: Adding interaction design to agile software development. In Proceedings of the Conference on Object-oriented Programming Systems and Applications, OOPSLA '02: Practitioners Reports, S. 1-ff., 2002. [PRS02] Preece, J.; Rogers, Y.; Shapr, H.: Interaction Design. John Wiley & Sons, Inc., New York, 2002. [Si08] Singh, M.: U-SCRUM: An agile methodology for promoting usability. In Proceedings of Agile Development Conference, AGILE 2008, S. 555-560, 2008. [SW08] Shore, J; Warden, S.: The Art of Agile Development. O Reilly Media, Inc., Sebastopol, 2008.