Extreme Programming Agilität in der Softwareentwicklung

Größe: px
Ab Seite anzeigen:

Download "Extreme Programming Agilität in der Softwareentwicklung"

Transkript

1 Westfälische Wilhelms-Universität Münster Ausarbeitung Extreme Programming Agilität in der Softwareentwicklung im Rahmen des Seminars Software Management Jan Ernsting Themensteller: Prof. Dr. Herbert Kuchen Betreuer: Susanne Gruttmann Institut für Wirtschaftsinformatik Praktische Informatik in der Wirtschaft

2 Inhaltsverzeichnis 1 Motivation zur agilen Softwareentwicklung 1 2 Agilität und Modelle der Softwareentwicklung Agilität Wasserfall-Modell Extreme Programming Ausschnitt der XP-Techniken Programmieren in Paaren Testen Refactoring Einfaches Design Überblick der Abhängigkeiten Rahmenbedingungen für XP Management-Strategien im XP Coaching Planung XP als Evolutionstreiber 21 Literaturverzeichnis 22 i

3 Kapitel 1: Motivation zur agilen Softwareentwicklung 1 Motivation zur agilen Softwareentwicklung Das Verhältnis von Endanwendern und Entwicklern ist oft sehr angespannt. Falsch umgesetzte Anforderungen oder Mängel in Anwendungen sind nur ein Teil der Gründe für die Anspannung der beiden Gruppen. Das traditionelle Entwicklungsmodell weiß damit nur schwerlich umzugehen, da ein Pflichtenheft typischerweise den Umfang eines Systems festlegt und nach der Interpretation des Entwicklers implementiert wird. Zum Ende der Anwendungsentwicklung in diesem Umfeld werden dann häufig noch die Testaktivitäten verkürzt oder unter extremen Zeitdruck ausgeführt, sodass Mängel unter Umständen erst am Arbeitsplatz des Anwenders ersichtlich werden. Statt eine Punktladung zum Ende eines Projektes zu erwarten, sind Feedback- Mechanismen während der Entwicklung sinnvoll, die den Anwender mit einspannen, um Anforderungen optimal umzusetzen, sodass die Akzeptanz des Systems maximiert werden kann und den Anwender bei seiner Arbeit bestmöglich unterstützt. Dadurch kann das Verhältnis der Endanwender und Entwickler entspannt werden und bildet eine Grundlage, um gegenseitiges Misstrauen abzubauen und in wertvolles Vertrauen umzuwandeln, das bspw. langwierige Vertragsgespräche wie ein Relikt vergangener Zeiten wirken lässt. Das Prozessmodell des Extreme Programming (Abk. XP) bildet einen agilen Ansatz zur Softwareentwicklung. Es beinhaltet unter anderem die angesprochenen Feedback-Zyklen, aber auch Praktiken, die auf die Maximierung der Anwendungs- Qualität abzielen. So ist XP geeignet, um komplexere Systeme für Anwender und Kunden zu entwickeln und dabei die Kunden-Anforderungen nach bestem Vermögen umzusetzen. Um im Rahmen dieser Seminararbeit aufzuzeigen, wie Extreme Programming den Entwicklungs-Prozess stärken kann, werden zunächst grundlegende Strategieziele der Softwareentwicklung aufgezeigt. Daraufhin wird Agilität sowohl im Betriebswirtschaftlichen als auch im Speziellen also der Softwareentwicklung vorgestellt und erläutert. Als verbreitetes Modell wird dann das Wasserfall-Modell als Referenz positioniert. Ausgehend von dem zweiten Kapitel wird Extreme Programming in der ersten Version kurz umschrieben, um dann im Detail darauf einzugehen, wie XP-Praktiken dazu beitragen die marginalen Aufwände in der Softwareentwicklung zu stabilisieren. Letztlich werden Schwierigkeiten, in Bezug auf die Abhängigkeiten der Techniken untereinander, skizziert und Extreme Programming spezifische Management- Strategien vorgestellt. 1

4 Kapitel 2: Agilität und Modelle der Softwareentwicklung 2 Agilität und Modelle der Softwareentwicklung Das Software Management stellt einen wesentlichen Erfolgsfaktor bei der Erstellung einer Anwendung dar. Grady unterscheidet drei Management-Strategien, die er als wichtig hervorhebt [Gr92, S. 22]; in Ahnlehnung an Grady hat Balzert die Ziele dieser primären Strategien wie folgt aufgelistet [Ba98, S. 4]: Maximierung der Kundenzufriedenheit, Minimierung des Aufwands und der Zeit der Software-Erstellung, Minimierung von Fehlern. Ein Unternehmen kann sich je nach Umweltsituation entscheiden, ihre Entwicklung stärker nach einer Strategie als nach einer anderen auszurichten. Veranschaulichend kann die Strategieausrichtung einer Entwicklung in einem gleichseitigen Dreieck dargestellt werden. Die einzelnen Strategien bilden zu diesem Zwecke die Ecken. Abbildung 1: Teufelsquadrat [Sn05, S. 38] Das Teufelsquadrat nach Sneed bildet die vier üblichen Projektparameter, Qualität, Quantität, Aufwand und Projektdauer, auf die Ecken eines Quadrates wie in Abbildung 1 ab. Unter dem Begriff der Quantität wird der Umfang eines Systems verstanden. Der Aufwand repräsentiert die Ressourcen, die zum Einsatz kommen. Die Projektdauer und die Qualität bedürfen keiner weiteren Erklärung. Der grau, schattierte Bereich ist in der Flächengröße fixiert und drückt die Produktivität aus, die pro Zeiteinheit von einem Projektmiglied erbracht werden kann. Zwei Parameter können optimiert werden, die jeweils anderen beiden passen sich entsprechend an, sodass die Größe der Produktivitätsfläche unverändert bleibt, nicht jedoch seine Form [Sn05, S. 38f.]. 2

5 Kapitel 2: Agilität und Modelle der Softwareentwicklung 2.1 Agilität In der Betriebswirtschaftslehre ist Agilität als ein Erfolgsfaktor einer Organisation bestimmt. Eine Organisation wird als agil definiert, wenn sie adaptiv, aktiv und flexibel ist sowie mit der Unsicherheit ihrer Umwelt umgehen kann und wandlungsfähig ist. In Zeiten schnelllebiger Märkte und kurzer Produktzyklen ist es wichtig für Unternehmen Chancen und Risiken zu erkennen und sie bewusst wahrzunehmen [DK08, S. 40]. Zur Agilität in der Softwareentwicklung hat die Agile Alliance spezifischer 17 Personen, die agile Software-Praktiken beeinflusst haben ein Manifest verfasst. In dem Manifest werden Werte 1 gegeneinander abgewogen, die einen agilen Entwicklungsprozess prägen und wurden folgendermaßen verfasst [BB01]: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Der einleitende Satz hebt den agilen Prozess als Lernprozess hervor. Durch das Ausführen von agilen Prozessen und dem Leisten von Hilfestellungen wird der Lerneffekt gesteigert. Werden die vorgestellten Gewichtungen und die von Grady identifizierten Management-Strategien gegenüber gestellt, wird ersichtlich, dass ein agiler Prozess sich mindestens zwischen der Maximierung der Kundenzufriedenheit und der Minimierung von Fehlern einordnen lässt. Schließlich setzt Working Software bzw. funktionierende Software voraus, dass ein System eine minimale Anzahl an Fehler enthält. Dies bedeutet nicht, dass eine verständliche Dokumentation des Systems außer Acht gelassen werden kann, ihr jedoch im Zweifelsfall weniger Gewicht beigemessen wird [Ec04, S. 15]. Die Kundenzufriedenheit wird durch die Zusammenarbeit mit dem Kunden und das Reagieren auf Veränderungen maximiert, da eine Unternehmung gemeinsam mit dem Kunden dessen Wünsche und wahrscheinlich ändernde Anforderungen bestmöglich umsetzen kann. 1 Auf Basis der agilen Werte wurden 12 Prinzipien abgeleitet, die in einem agilen Prozess bedacht werden sollten. Sie sind über die Webseite des Manifestes abrufbar. 3

6 Kapitel 2: Agilität und Modelle der Softwareentwicklung Will ein Projekt ein agiles Prozessmodell anwenden, stellt bspw. XP oder Scrum einen Ausgangspunkt für ihr Vorgehen dar [Ec04, S. 13]. Ein agiler Prozess kann in seiner Rohform die Erwartungen und Wünsche eines Teams nicht komplett erfüllen und befriedigen, weil jedes Team durch seine Mitglieder sehr unterschiedlich geprägt ist. Aus diesem Grund bietet die Retrospektive die Möglichkeit ein Prozessmodell an die örtlichen Gegebenheiten anzupassen. Während der Retrospektive, die entweder nach Ende oder Abbruch einer Iteration stattfindet, wird der vorhandene Prozess auf zwei Ebenen hinterfragt [Ec04, S. 13]. Die Erste betrachtet den Stand bzw. den Status des Projektes, wobei auch auf Aspekte eingegangen wird, die den Fortschritt des Projektes behindern oder verlangsamen. Eine Frage, die sich ein Team auf der ersten Ebene stellen kann, wäre die, ob alle notwendigen Refactorings durchgeführt wurden. Auf der Zweiten, der Metaebene, das Prozessmodell kritisch hinterfragt. Bspw. kann ein Team die Überlegung anstellen, die Planung der Iterationen durch das sogenannte Schätzpoker 2 zu unterstützen, um so mehr Struktur in ihre Schätzungen und Planungen einzubringen. An dieser Stelle werden Schwierigkeiten mit größeren Teams ersichtlich, da es aufgrund der Vielzahl an Bedürfnissen der individuellen Entwicklern schwieriger wird, diese zu befriedigen. Würden viele Änderungen als Ergebnis einer Retrospektive am Prozessmodell oder am Prozess vorgenommen, um auf die Wünsche und Vorschläge der vielen Entwickler einzugehen, ist das Risiko groß, dass der Prozess keine inkrementelle Entwicklung durchläuft. Viele oder große Änderungen am Prozess behindern das Nachvollziehen des Erfolgs der Modifikationen. 2.2 Wasserfall-Modell Um die Vor- und Nachteile agiler Prozessmodelle greifbarer zu machen, wird als Referenzmodell das Wasserfall-Modell der Software-Entwicklung vorgestellt und zu Vergleichszwecken herangezogen. In der Praxis hat dieses Modell eine Zeit lang, unter anderem aufgrund seines einfachen und verständlichen Aufbaus, Verwendung gefunden [Ba98, S. 100] und wird auch aktuell eingesetzt. Das Wasserfall-Modell sieht vor, dass ein System in einem Prozess mit bis zu sieben aufeinander folgenden Stufen entwickelt wird, wie es in Abbildung 2 dargestellt ist. Die Anzahl der Stufen ist nicht fixiert ist und variiert je nach Definition des Modells zwischen fünf und sieben. Dabei sind Rückkopplungen zur jeweils vorigen Stufe bzw. Aktivität vorgesehen, um teure Überarbeitungen über mehrere Stufen 2 Im Abschnitt 4.2 wird diese Art der Aufwandsabschätzung erläutert. 4

7 Kapitel 2: Agilität und Modelle der Softwareentwicklung Abbildung 2: Wasserfall-Modell [Ba98, S. 99] hinweg zu vermeiden [Ba98, S. 99]. Damit die Kopplungen zwischen den einzelnen Aktivitäten bzw. Stufen funktionieren können, laufen die einzelnen Aktivitäten sequenziell ab. Am Ende jeder Stufe steht ein fertiges Dokument, bspw. das Pflichtenheft als Ergebnis der Phase Software-Anforderungen; das Prozessmodell ist dokumenten-getrieben. Wird ein System nach dem Wasserfall-Modell entwickelt, so werden in der ersten Stufe sämtliche Systemanforderungen des Benutzers ermittelt und in der zweiten Stufe als Softwareanforderungen formuliert. Nach der Analyse ist in den darauffolgenden Aktivitäten keine Benutzerbeteiligung vorgesehen. Dennoch wirken sich manche Eigenschaften des Modells nachteilig aus. Der Dokumenten-Trieb des Wasserfalls führt unter Umständen dazu, dass die Dokumentation wichtiger wird als das eigentliche System [Ba98, S. 101]. Ändert der Benutzer in einer späteren Phase des Entwicklungsprozesses z. B. während der Codierung seine Anforderungen an das System, ist es schwer diese zu berücksichtigen, da die Anforderungen während der ersten Stufen festgelegt wurden. Durch die Festlegung des System-Umfanges und der Ressourcen werden nach dem Teufelsquadrat (sh. Abb. 1) Schwierigkeiten bei der Einhaltung von Terminen als auch der Qualität des Systems zu erwarten sein. 5

8 3 Extreme Programming Im folgenden Abschnitt werden die Grundzüge und Gedanken hinter Extreme Programming erörtert. Dabei wird die erste Version von XP unterstellt, weil ein Großteil der verfügbaren Literatur von dieser ausgeht. Außerdem bestehen zwischen den beiden Versionen nur geringfügige, für diese Ausarbeitung zu vernachlässigende Unterschiede, da die grundsätzlichen Ideen gleich geblieben sind [WRL05, S. 145]. Es wurden bspw. die Benennungen von Techniken und Prinzipien geändert sowie ein neuer Wert, der Respekt, hinzugefügt. Neben den Programmierern kommt dem Kunden eine wichtige Rolle in XP zu. Er ist im besten Falle zugleich Auftraggeber und Anwender des zu entwickelnden Systems. Sind dies verschiedene Personen, ist von einem zusätzlichen Kommunikationsaufwand auszugehen. Der Auftraggeber gibt die Ziele des Projektes vor, während der Anwender Fachwissen für die Entwickler beisteuert, damit die Anforderungen ohne größere Informationsverluste kommuniziert werden können [WRL05, S. 164]. Da für das Erfassen der Anforderungen sogenannte Story-Cards Verwendung finden, wird unter anderem vorausgesetzt, dass der Kunde gewillt ist das Projekt mit seinem Fachwissen aktiv zu unterstützen. Der Inhalt einer Story-Card ist die Beschreibung dessen was der Kunde vom System erwartet. Formulierungen, wie z. B. Ich möchte die aktuellen Geburtstage meiner Mitarbeiter auf einen Blick erfassen, sind gängig. Damit das System den Ansprüchen des Kunden so gut wie möglich gerecht werden kann, ist es wichtig, dass zwischen den Programmierer und dem Kunden reibungslos kommuniziert werden kann. Außerdem ist er befähigt die Anforderungen an das System jederzeit anzupassen, um z. B. neue Ideen einfließen zu lassen oder veränderte Umweltsituationen zu berücksichtigen. Ein zentrales Konzept von Extreme Programming ist die Orientierung der Entwicklung am Geschäftswert (engl. Business Value), welcher den Nutzen einer Anwendung für den Kunden wiederspiegelt. Positive Auswirkungen auf diesen Wert hat es, wenn die Programmierer die Story-Cards auch User Stories genannt umsetzen, die vom Kunden mit den höchsten Prioritäten versehen wurden. Agile Prozessmodelle wie Scrum und Extreme Programming verfügen über ein weiteres Konzept, das auf der Definition von Werten beruht. Bei XP sind dies in der ersten Version: Einfachheit, Kommunikation, Feedback und Mut, in der zweiten wurde das Wertesystem um Respekt erweitert. Beck hatte Respekt als Wert bereits in der ersten Version vorgestellt. Diesen Wert jedoch als unterhalb der Oberfläche der anderen vier [Werte] versteckt [Be03, S. 34f.] beschrieben und daher ursprünglich nicht explizit angeführt, aber mittlerweile im Zuge der Präzisierungen in der 6

9 zweiten Version des Manifests hinzugenommen. Das Leben der vorgestellten Werte in einem Projekt ist ein elementarer Schlüssel zum erfolgreichen Einsatz von XP. Auf den vier bzw. fünf Werten bauen 15 bzw. 14 Prinzipien auf, aus denen wiederum zwölf Techniken abgeleitet wurden, die in einem XP-Projekt eingesetzt werden sollten. Um den Umfang der Arbeit nicht zu sprengen, werden alle Techniken in Tabelle 1 auf Seite 8 kurz und knapp vorgestellt. In Anlehnung an das Werk von Wolf et. al. wurde die Übersicht angefertigt, wobei die Autoren die zwölf Techniken bereits um die Standup-Meetings und die Retrospektive erweitert haben, die XP in der zweiten Version berücksichtigt [WRL05]. 3.1 Ausschnitt der XP-Techniken Da die eingehende Erläuterung sämtlicher Praktiken in XP den Rahmen sprengen würde, werden im folgenden Abschnitt vier Techniken genauer dargestellt. Aufgrund der wechselseitigen Beziehungen der Techniken, auf die Abschnitt 3.2 eingegeht, werden mitunter Aspekte anderer Techniken beleuchtet. Die ausgewählten Techniken wirken sich maßgeblich auf den langfristigen Erfolg und Fortbestand eines XP-Projektes aus. Aus betriebswirtstschaftlicher Sicht besitzen die Praktiken in der Kombination eine hohe Relevanz, da sie sowohl Einfluss auf die Flexibilität und Qualität des Systems als auch deren Entwicklung nehmen. Denn das Programmieren in Paaren stellt sicher, dass unter anderem Wissen innerhalb des Teams aktiv ausgetauscht wird und der Entwicklungsprozess diszipliniert verfolgt wird. Durch das Testen wird ein Qualitätsniveau dauerhaft aufrecht erhalten und sichert das Team gegen Regressionen bzw. Rückschritte in der Entwicklung ab. Die Technik des Refactorings trägt dazu bei, das System immer ändern oder erweitern zu können. Anfängliche Kostenersparnisse werden mit Hilfe des einfachen Designs erreicht, da bewusst auf einen aufwendigen und zeitintensiven Entwurf des Systems verzichtet werden und durch die Änderbarkeit des Codes durch das Refactoring unterstützt wird. Im Zusammenspiel aller Techniken insbesondere durch die im folgenden, genauer vorgestellten Techniken wird eine Verbesserung der Aufwandskurve erreicht [Fo04]. Genauer gesagt, wird eine Stabilisierung der Kurve erzielt, sodass weitere Änderungen am System mit gleichen Aufwänden erzielt werden können. Abbildung 3 veranschaulicht den Gedanken hinter der Stabilisierung der Aufwände bei steigender Komplexität. Auf der linken Seite ist die in der Lehre vermittelte Aufwandskurve der traditionellen Entwicklung abgebildet, die exponentiell wächst. Dementsprechend einen höheren Aufwand verursacht, je komplexer ein System wird. Rechts 7

10 Name der Technik Planungsspiel Kurze Releasezyklen Metapher Einfaches Design Testen Refactoring Programmieren in Paaren Gemeinsame Verantwortlichkeit Fortlaufende Integration Nachhaltiges Tempo Kunde vor Ort Programmierstandards Retrospektive Standup-Meetings Beschreibung Der Kunde verfasst und priorisiert Anforderungen, Entwickler schätzen vor der Priorisierung einer Anforderung den Aufwand Software früh und häufig liefern Die Metapher beschreibt die primäre Funktion eines Systems Das einfachste Design wählen, das die Anforderungen erfüllt Erst automatisierte Tests schreiben und dann den Produktiv-Code Unschönheiten im Entwurf sofort beheben Zwei Entwickler arbeiten immer zusammen an einer Aufgabe Alle Entwickler arbeiten an und verantworten einen gemeinsamen Code-Bestand Änderungen am Code mehrmals täglich in den Code-Bestand integrieren Die Entwicklung findet mit einer gleichmäßigen Gewschwindigkeit statt Der Kunde und die Entwickler arbeiten am gleichen Ort Alle Entwickler halten sich an kurze, gemeinsame Programmierstandards Regelmäßige Reflektion über die Handlungen des Teams Tägliche Treffen aller Projektbeteiligten, um über den Projektfortschritt zu informieren Tabelle 1: Übersicht der XP-Techniken 8

11 Abbildung 3: Kostenkurve des Wasserfall-Modells und XP davon ist die in XP erwartete Kurve dargelegt, die mit steigender Komplexität gegen einen Wert konvergiert, sodass die marginalen Aufwände trotz steigender Komplexität nicht nennenswert wachsen. Dieser Wert liegt mittel- und langfristig unter dem der traditionellen Kurve [Be03, S. 21ff.] Programmieren in Paaren Programmieren in Paaren (engl. Pair Programming) ist eine Methode der Softwareentwicklung. Dabei arbeiten jeweils zwei Entwickler gemeinsam an einem Computer. Die Person, die über die Kontrolle von Maus und Tastatur verfügt, wird als Fahrer bezeichnet. Während der Fahrer bspw. einen Algorithmus in der Programmiersprache Java verfasst, ruht sich die andere Person jedoch nicht aus. Sie ist als Partner konzentriert bei der Arbeit und beobachtet die Eingaben des Fahrers. Dadurch stellt der Partner sicher, dass z. B. Randbedingungen des Algorithmusses überprüft, die Programmierstandards eingehalten oder Testfälle geschrieben werden. Durch diese implizit vorhandene Kontrollstruktur werden zwei wichtige Aspekte in der Softwareentwicklung gestärkt [WK00, S. 111]. Zum einen wird die Produktivität gesteigert, da es aufgrund der Partnerrolle unwahrscheinlich ist, dass der Fahrer anderen Aktivitäten nachgeht, die dem Ziel der Programmierung nicht zuträglich sind. Dazu zählt bspw. das Prüfen des privaten -Kontos. Durch die Anwesenheit des Partners ist immer eine Person vorhanden, die dafür sorgt, dass die Arbeit Fortschritte macht und Ergebnisse produziert werden. Auf der anderen Seite sichert der Partner die Qualität, indem er den Fahrer unter anderem auf syntaktische oder semantische Fehler hinweist. Zusätzlich haben beide Programmierer sei es der Fahrer oder der Partner ein Interesse an korrektem, fehlerfreiem Quelltext, da dieser aufgrund der gemeinsamen Verantwortlichkeit dem gesamten Team gehört. So gesehen stellt der Partner das schlechte Gewissen des Fahrers in Person dar und sollte auf der Behebung der zuvor beschriebenen Probleme beharren. Dennoch wird als Gegenargument zum Pair Programming mitunter angeführt, 9

12 dass zwei Programmierer als Paar weniger produktiv entwickeln als zwei Programmierer im Alleingang. Das im vorigen Absatz angeführte Argument beschreibt, wie durch die Paarung eine gesteigerte Aufmerksamkeit und damit gesteigerte Produktivität erzielt werden kann. Zusätzlich fehlt die empirische Grundlage, die das Gegenargument bekräftigen. Studien, die in der universitären Lehre unter anderem von Williams und Upchurch [WU01] sowie Braught et. al. [BEW08] durchgeführt wurden, zeigten, dass Studierende vom Programmieren in Paaren sehr profitierten. Dieser Profit wurde sowohl in der Qualität der erstellten Programme als auch in dem Lernerfolg der Beteiligten widergespiegelt. Kurzfristig ist sicherlich mit einer höheren Produktivität bei Einzelprogrammierern auszugehen, jedoch werden Programmierer auf lange Sicht besser mit dem Komplexität eines Software-Systems umgehen können als würden sie einzeln mit der Entwicklung am System beauftragt. Das Gegenargument wird außerdem durch die Tatsache geschwächt, dass viele Programmierer in Notsituationen auf Pair Programming zurückgreifen [JAH01, S. 111]. Der Autor dieser Arbeit hat diese Erfahrung in der Praxis einer Softwareentwicklungsfirma gesammelt. Dabei hat er bspw. bei schwerwiegenden Fehlern die Hilfe von Kollegen hinzugezogen; in anderen Fällen wurde er um Hilfe gebeten. Bei konsequentem Einsatz von Pair Programming tritt eine Kosteneinsparung durch den geringeren Bedarf an leistungsstarken PC ein. Schließlich arbeiten dann jeweils zwei Entwickler an einem Arbeitsplatz zusammen, sodass die Anzahl an Workstations reduziert werden kann. Es sei zusätzlich darauf hingewiesen, dass die Rollen der beiden Programmierer nicht statisch vergeben werden. Das heißt, dass die Programmierer im Laufe ihrer Zusammenarbeit des Öfteren einen Rollentausch vornehmen. Der Tausch findet unter anderem dann statt, wenn der Partner dem Fahrer eine Idee nicht verbal, sondern nur explizit im Quelltext ausdrücken kann oder will. Außerdem kann der Partner einen Wechsel vorschlagen, wenn er das Gefühl hat, dass der Fahrer nicht weiterkommt [JAH01, S. 113]. Dadurch wird bspw. verhindert, dass das Arbeiten zur Routine wird und dadurch die Konzentration sinkt oder ein aussichtsloser Pfad verfolgt wird. Im Zuge dessen wird das Risiko reduziert, das unbeabsichtigt Fehler in die Software einfließen. Des Weiteren werden die Paare in häufigen Abständen neugemischt; denkbar sind halbtägliche Wechsel, wobei dies in den jeweiligen Teams angepasst werden kann. Ein weiterer Punkt ist der Wissensaustausch, der durch häufige Paarwechsel gefördert wird. Wolf, et. al. beschreiben, wie das Programmieren in Paaren die Weitergabe von Wissen innerhalb eines Teams begünstigt [WRL05, S. 99]. Dabei benennen sie das Szenario, bei dem ein erfahrener Programmierer mit einem unerfahrenem 10

13 Programmierer zusammenarbeitet und das Wissen des Erfahrenen mit dem Unerfahrenen durch die direkte Interaktion ausgetauscht wird. Aufgrund dieses Austausches ist der Unerfahrene schneller in der Lage produktiv dem zu entwickelnden System beizutragen. Das zuvor beschriebene Erfahrungsgefälle zwischen den Programmierern ist jedoch nicht der einzige Vorteil in Bezug auf den Wissensaustausch. Beck erläutert einen weiteren Aspekt anhand einer Metapher [Be03, S. 101]. Dabei vergleicht er das Team mit einem Wasserbecken und illustriert wie folgt: Wenn jemand im Team eine wichtige neue Information findet, dann ist das so, als würde man einen Tropfen Farbstoff in ein Wasserbecken geben. Da die Paarungen ständig wechseln, wird die Information rasch im Team verbreitet, ebenso wie sich der Farbstoff rasch im Wasserbecken verteilt. Im Gegensatz zum Farbstoff wird die Information während der Verbreitung jedoch dichter, da in sie noch die Erfahrung und die Erkenntnisse aller Teammitglieder eingehen. Daraus resultiert insgesamt eine Wissensbasis, die im Team ständig erneuert wird und nicht zeitaufwendig in Wissens-Management- Systemen wie z. B. Wikis gepflegt werden muss. Durch Pair Programming und die einhergehende Wissensverbreitung wird außerdem ein wichtiges Projektrisiko minimiert, dessen Eintreten nicht exakt bestimmt werden kann. So führt der Ausfall eines Teammitgliedes in einem XP-Prozess nicht unmittelbar zu größeren Zeitverzögerungen bzw. Stillstand der betroffenen Projekte, da das Wissen auf das Team verteilt wurde. Diese Dezentralisierung von Wissen erhöht den sogenannten Truck-Factor, der besagt, dass der Faktor geringer ausfällt sobald der Fortschritt oder Erfolg des Projektes unmittelbar von einzelnen Teilnehmern abhängt [Bo05]. Bei einem Truck-Factor von 5 müssten folglich 5 Mitglieder des Projektes von einem Truck bzw. einem LKW erfasst werden, um einen Stillstand zu verursachen. Ein hoher Truck-Factor drückt also eine gewisse Unabhängigkeit von den Beteiligten eines Projektes aus, sodass es unwahrscheinlich ist, dass z. B. personelle Änderungen ein Projekt zum Scheitern bringen Testen Das Testen (engl. Testing) stellt eine weitere facettenreiche Technik im Extreme Programming dar. Im Kern handelt es sich um ein Prinzip, das die erwartete Funktionalität vor der Erstellung einer Implementation in einem Test festlegt. Dazu zählen vereinfacht dargestellt bspw. die zu erwartenden Ausgaben auf Eingaben oder die Fehlerbehandlung bei illegalen Eingaben. Durch die Möglichkeit das Verhalten eines Systems in Tests festzuhalten, bietet 11

14 das Testing dem Kunden ein Hilfsmittel um seine Anforderungen an das System in Testfällen auszudrücken. Gleichzeitig können die Entwickler nachvollziehen, ob sie den gewünschten Funktionsumfang korrekt implementiert haben. Hierbei ist es wichtig zwischen den verschiedenen Arten des Testing zu unterscheiden; die zuvor beschriebene Art fällt in die Kategorie der Akzeptanztests [WRL05, S. 70ff.]. Dabei legt der Kunde fest, welche Kriterien eine Anwendung zu erfüllen hat. Ein Kriterienkatalog beinhaltet Punkte wie die korrekte Berechnung von Ausgaben auf entsprechende Eingaben oder bestimmte Benutzbarkeitsmerkmale, z. B. die Erreichbarkeit des Startbildschirmes von jedem Punkt der Anwendung. Zur Unterstützung dieser Aufgabe existieren Tools wie FIT, das dem Kunden ermöglichen das Verhalten von Geschäftsregeln und ähnlichem in einem Wiki oder einer Excel- Tabelle zu pflegen [ov08b]. Ist das Verhalten einer Weboberfläche zu testen, stellt bspw. Canoo WebTest eine Möglichkeit dar [ov08a]. Manche Aspekte der Akzeptanz sind jedoch nicht automatisiert testbar und erfordern manuelle Durchführung; so kann die Lesbarkeit einer Website nur schwerlich automatisch getestet werden. Während der Programmierung eines Software-Systems schaffen die Entwickler mit Hilfe von Komponententests (engl. Unit Tests) eigenes Vertrauen in das von ihnen zu implementierende System. In XP wird der Ansatz der testgetriebenen Entwicklung eingesetzt, der besagt, dass bevor jeglicher Produktiv-Code geschrieben wird, ein Test die Existenz dieses Codes rechtfertigen muss. Die zweite Version von XP nennt Beck nicht mehr Testing, sondern Test-First Programming, um die Wichtigkeit des Testgetriebenen zu betonen. Die testgetriebene Entwicklung einer Funktionalität erfolgt in einem sich stetig wiederholenden 3-Phasen-Modell [We05, S. 51ff.]. In der ersten Phase wird der Test hinzugefügt und es wird genau so viel Produktiv-Code erstellt, bis der Test laufen kann und fehlschlägt. Dies bedeutet konkret, dass der Compiler zufrieden gestellt wird, sofern dieser aufgrund von Kompilier-Fehlern die Ausführung des Tests ausschlägt. Daraufhin implementiert man den Code, der den Test erfüllt, der üblicherweise in einem xunit-testfall erfasst wurde; JUnit ist eine Ausprägung für das Testen von Komponenten in Java [ov08c]. Da in diesem Schritt gemogelt werden darf, bspw. durch das harte Kodieren von Rückgabewerten, wird im dritten Schritt mit der Technik des Refactoring der Code vereinfacht, um Duplikationen und andere Gerüche 3 aus dem Quelltext zu entfernen. Da Testing das Schreiben der Testfälle vor dem Verfassen des eigentlichen Programmquelltextes vorsieht, werden die Ideen der Programmierer in den Tests wider- 3 Fowler verwendet diesen Begriff um Potenzial für Refactorings zu erkennen [FBB99, S. 75ff.]. 12

15 gespiegelt und formen auf diese Art und Weise die Schnittstellen des zukünftigen Systems. Die Formung der Schnittstellen durch die Tests prägen das Design der zukünftigen Anwendung maßgeblich, weshalb die testgetriebene Entwicklung auch als Designstrategie bezeichnet wird [We05, S. 91]. Insgesamt spannt die Menge der Komponententests Testsuite genannt sowie die Akzeptanztests eine Art Sicherheitsnetz für die Entwickler. Sollte eine ihrer Änderungen in dieses Netz fallen, werden sie automatisch darauf aufmerksam gemacht; im Gegensatz zur traditionellen Entwicklung bei der viele Fehler im Programm nicht automatisch entdeckt werden können, sondern erst in der Testphase, und aufgrund der Komplexität in der Programmierung übersehen werden. Durch die Testfälle wird automatisch beim Ausführen der kompletten Testsuite sichergestellt, dass der bestehende Funktionsumfang des betroffenen Systems nicht ungewollt reduziert wird. Diese Reduzierung beinhaltet z. B. das Einfügen von Fehlern, die für den Benutzer falsches Systemverhalten bedeuten können. Mängel in Programmen der traditionellen Softwareentwicklung, werden womöglich nicht von den Entwicklern bemerkt und letztlich an den Kunden ausgeliefert. Je später die Fehler behoben werden, sind die dafür notwendigen Aktivitäten mit umso höherem Aufwand bzw. Fehlerbehebungskosten anzusetzen [Ba98, S. 22f.]. Jedoch bleiben selbst Anwendungen, die mit Hilfe einer testgetriebenen Entwicklung zu Stande gekommen sind, nicht von Fehlern verschont. Die Wahrscheinlichkeit, dass Fehler während der Programmierung einfließen, ist aber geringer, da die Qualität insgesamt gestiegen ist [We05, S. 4f.]. Weitere Testtypen werden je nach Anwendungssituation relevant. Ein Profiler kann bspw. eingesetzt werden, um die Performance der Anwendung zu testen oder zu analysieren, sollte das System nicht die gewünschten Antwortzeiten bieten. Dabei werden Schwachstellen herausgestellt, die daraufhin optimiert werden können. Insgesamt sollte es jedoch nicht zu Problemen in puncto Performance kommen, da aufgrund des einfachen Designs weniger Objekte und Objektinteraktionen beteiligt sind [WRL05, S. 85f.] und das System somit performant sein sollte. Im Zusammenhang mit der fortlaufenden Integration wird sichergestellt, dass alle Komponententests fehlerfrei durchlaufen, da dies die Mindestanforderung an zur Integration stehenden Code ist. Dabei können neben den Unit Tests auch automatische Akzeptanztests durchgeführt werden, die jedoch eine Integration nicht abbrechen können, da sie in diesem Kontext lediglich als grober Indikator für den Projektfortschritt zu sehen sind. 13

16 3.1.3 Refactoring Das Refactoring dient dazu den Code und die Tests leicht verständlich zu halten und um Änderungen am Code einfach durchführen zu können [FBB99, S. 54]. Während eines Refactorings wird das zu beobachtende Verhalten des Systems jedoch nicht geändert. Die durch das Testen aufgebaute Testsuite gibt den Entwickler Vertrauen in ihre Refactorings. Vor Beginn der Änderungen wird sichergestellt, dass alle Unit-Tests problemlos durchlaufen, dann werden die Refactorings in inkrementellen Schritten am System durchgeführt. Zwischen den Schritten wird die Testsuite ausgeführt, um die Gewissheit zu erlangen, dass das Systemverhalten nicht modifiziert wurde. Als Ergebnis sind keine Funktionalitätserweiterungen vorgesehen, viel mehr soll das Verständnis vom System gestärkt und die Aufwandskurve des Projektes niedrig gehalten werden [WRL05, S. 88]. Refactorings müssten folglich als wert-neutral in Bezug auf den Geschäftswert betrachtet werden. Jedoch werden sie durch neue Anforderungen mitunter erforderlich, um das System in die Lage zu versetzen, die Funktionalitäten zur Erfüllung einer Story umzusetzen, sodass ein Refactoring eine Wertsteigerung begünstigt. Die Liste an möglichen Refactorings ist lang und enthält einfache Dinge wie das Umbenennen von Methoden, um die Funktion einer Methode besser kommunizieren zu können [FBB99, S. 273f.], oder das Verschieben eines Datenfeldes in eine andere Klasse, um geänderte Verantwortlichkeiten in Klassen zu antizipieren [FBB99, S. 146f.]. Komplexer fällt bspw. das Ändern eines Bedingungsblockes mit mehreren parallelen if-else- oder einem switch-statement aus, die mit dem Wissen über den Typ eines Objektes unterschiedliches Verhalten demonstrieren [FBB99, S. 255ff.]. Mit Polymorphismus wird das gewünschte Verhalten in die entsprechenden Klassen verschoben, sofern die Klassen eine Vererbungsstruktur besitzen, die dieses zulässt. In der Oberklasse wird eine abstrakte Methode definiert, die von den Unterklassen überschrieben wird und die gewünschten Werte zurückgibt, sodass der Bedingungsblock zu Gunsten von Erweiterbarkeit und Lesbarkeit entfällt. Die Notwendigkeit zum Refactoring eines Systems wird durch die sogenannten Gerüche (engl. Smells) markiert [FBB99, S. 75ff.]. Duplizierter Code ist einer von verschiedenen Gerüchen und stellt eine mögliche Fehlerquelle dar. Eine Vereinheitlichung des duplizierten Code-Blockes führt dazu, dass zukünftige Änderungen nur an einer Stelle gepflegt werden müssen und andere Stellen im Code daher nicht vergessen werden können. Als weiterer Geruch reiht sich der lange Methoden-Rumpf ein, der als Relikt 14

17 der prozeduralen Programmierung in der objektorientierten Programmierung keine Daseinsberechtigung besitzt. Durch Einführen neuer Methoden, die passende Teile des alten Rumpfes zusammenfassen, wird die Lesbarkeit des Code erhöht [FBB99, S. 110ff.]. Insgesamt stellt das Refactoring eine Möglichkeit zur Beherrschung der Komplexität eines wachsenden Systems dar. Damit Refactorings optimal umgesetzt werden können, müssen die Entwickler den Quelltext gemeinsam verantworten. Das Refactoring bietet sich als Hilfestellung für die Technik des einfachen Designs an, um den einfachsten Architektur-Ansatz wählen zu können, und wird von der testgetriebenen Entwicklung benötigt Einfaches Design In XP wird nicht wie etwa bei dem Wasserfall-Modell eine komplette Aktivität auf den Entwurf bzw. das Design angesetzt. Vielmehr durchläuft das Design während der Entwicklung einen evolutionären Prozess, in dem die Architektur inkrementell angepasst wird. Im Zuge der Nachbesserungen wurde in der zweiten XP-Version der inkrementelle Entwurf als zusätzliche Technik benannt. Dennoch startet kein XP-Projekt komplett ohne ein Architektur-Konzept, es beschränkt sich lediglich auf das Nötigste. Es wird lediglich kein Design auf Vorrat erstellt, das möglicherweise nützlich sein könnte, die Verwendung also unsicher bzw. unwahrscheinlich ist [WRL05, S. 78]. Aufgrund der Ausrichtung am Geschäftswert wird das einfachste Design gewählt, das die Anforderungen des Kunden erfüllt, sodass die Entwicklung stets wert-maximierend voranschreitet. Des Weiteren birgt die Bevorratung von Architektur bzw. Design ein Risiko, insofern, dass das Bevorratete womöglich nicht von Tests abgedeckt wird und so einen potenziellen Mangel darstellen könnte [WRL05, S. 80]. Damit ein Design einfach bleibt oder wird, hat Beck 4 Regeln aufgestellt, die den Charakter eines einfachen Design prägen und nach ihrem Stellenwert absteigend priorisiert [Be03, S. 109]: 1. Das System (sowohl Code und Tests) sollte den Inhalt des Systems verständlich ausdrücken. 2. Das System sollte keinen duplizierten Code enthalten. 3. Das System soll die minimale Anzahl an Klassen haben 4. Das System soll die minimale Anzahl an Methoden haben. 15

18 Wolf et. al. schreiben, dass durch die testgetriebene Entwicklung, die durch das Testen impliziert wird, diese Regeln geradezu erzwungen werden [WRL05, S. 81]. Ausgehend von der Entwicklung des einfachsten Design, das eben den simpelsten Ansatz darstellt, der gerade funktioniert, kann die Aussage formuliert werden, dass ein XP-Team mit leichtem Gepäck reist [Be03, S. 42]. Diese Umschreibung basiert auf einem Prinzip aus der ersten Version von XP 4 und betont, dass ein Team von jetzt auf gleich, wie Nomaden, auf Veränderungen, wie z. B. modifizierte Umweltsituationen, reagieren kann. Im Vergleich zur traditionellen Entwicklung stellt sich eine Kostenreduktion ein, weil Design-Entscheidungen erst zur realen Fälligkeit getroffen werden und nicht schon vor der Codierung, wenn noch nicht alle Anforderungen des Kunden bekannt sind. Außerdem lassen sich kleine, einfache Designs leichter anpassen als große, sodass der notwendige Aufwand geringer ausfällt. Diese Aufwandsreduzierung wird nicht zuletzt durch die Technik des Refactoring begünstigt. 3.2 Überblick der Abhängigkeiten Abbildung 4 zeigt die Abhängigkeiten der Techniken untereinander. So bedingt das einfache Design das Refactoring, um erfolgreich eingesetzt werden zu können. Beim Pair Programming ermahnt der Partner den Fahrer, wenn dieser vom testgetriebenen Ansatz abkommt und bspw. Geschäftslogik ohne einen Test implementiert. Ohne das Refactoring könnte die testgetriebene Entwicklung nicht angewendet werden, da es die grundlegende Technik für die dritte Phase darstellt. Aufgrund der Abhängigkeiten empfiehlt sich langfristig stets eine vollständige Einführung von XP, da dann sämtliche Vorteile in Kraft treten, wie z. B. die Stabilisierung der Aufwände. Wolf et. al. schlagen zwei Ansätze zur Einführung von XP vor. Zum eine komplette, einmalige Einführung der Praktiken und zum anderen eine schrittweise Unterweisung, bspw. für bestehende Projekte [WRL05, S. 242ff.]. 3.3 Rahmenbedingungen für XP Die Fokussierung von XP liegt unter anderem wegen der vorgestellten Techniken auf lauffähiger Software. Wird davon ausgegangen, dass der Aufwand der zur Entwicklung aufgebracht wird, fix ist, dann muss der Kunde gewillt sein, den Umfang des Systems ggf. zu reduzieren oder Änderungen am Fertigstellungstermin vorzunehmen, wie aus dem Teufelsquadrat (sh. Abb. 1) aufgrund der beiden festgelegten 4 In der zweiten Version wurde das einfache Design auf zwei andere Techniken verteilt. 16

19 Abbildung 4: Techniken stützen sich gegenseitig [Be03, S. 70] Parameter abgeleitet werden kann. Daher ist es schwierig mit XP ein Projekt durchzuführen, das am Ende der Laufzeit die gesetzten Ziele im vollen Umfang erreicht, dafür aber die meisten Ziele mit einer gewissen Qualität umgesetzt hat. Denkbar ist natürlich auch das Gegenteil, dass ein Team vor Ende der Projektlaufzeit sämtliche Ziele erreicht hat und weitere Funktionen implementieren könnte. Insbesondere bei Projekten mit langer Laufzeit (> 1 Jahr) wird es sehr schwierig Aussagen über die Zielerreichung zu treffen. Dies ist aber ein Problem, mit dem auch andere Prozessmodelle zu kämpfen haben, da auf lange Sicht große Planungsunsicherheit herrscht. Eine weitere Rahmenbedingung stellen physische Faktoren dar, wie z. B. getrennte Büroräume oder Einzel-Arbeitsplätze. Sind die Mitglieder eines Teams über mehrere Büroräume oder gar weitere Distanzen verteilt, wird ein Großteil der informellen Kommunikation unterbunden. Das Programmieren in Paaren fördert zumindest die informelle Verständigung innerhalb der Paare und erstreckt sich bei jedem Partnerwechsel weiter. Jedoch können die Entwickler bei einer physischen Trennung nicht von einer paar-übergreifenden, informellen Kommunikation profitieren. Schreibtische können ebenfalls einen physischen Störfaktor bilden, da viele Tische als Einzel-Arbeitsplatz dienen und an den Seiten, bspw. durch Schubfächer oder ähnlichem blockiert werden, oder aufgrund ihrer L-Form nur für eine Person 17

20 eine angenehme Sitzposition ermöglichen. Wolf et. al. empfehlen runde Tische für das Programmieren in Paaren, sodass der Rollentausch ohne großen Aufwand vorgenommen werden kann [WRL05, S. 102]. Dies bedeutet, dass der Fahrer dem Partner die Eingabegeräte nur zuzuschieben braucht, um den Tausch zu vollenden. Eingangs wurde in Abschnitt 2.1 darauf hingewiesen, dass große Teams mit der Einführung und Verwendung von agilen Prozessmodellen Probleme haben werden. Dies gilt auch für Extreme Programming, da bspw. Praktiken wie die gemeinsame Verantwortlichkeit bei größeren Teams aufgrund von nicht wahrgenommener Verantwortlichkeit früher verfallen. Als Maximum werden Teamgrößen von bis zu 12 Entwicklern angegeben; kleinere Teams aber zu favorisieren sind, die bspw. durch Aufspaltung des Projektes in logische Teilprojekte realisiert werden können [WRL05, S. 206f.]. Zu guter Letzt ist es notwendig, dass alle Beteiligten gewillt sind, die Werte, Prinzipien und Techniken anzunehmen, umzusetzen und zu leben. Die Regeln, die XP definiert, müssen diszipliniert eingehalten werden, was angesichts der Spielräume leichter gesagt als getan ist [WRL05, S. 241]. 18

Agile Softwareprozess-Modelle

Agile Softwareprozess-Modelle Agile Softwareprozess-Modelle Steffen Pingel Regionale Fachgruppe IT-Projektmanagement 2003-07-03 Beweglich, Lebhaft, Wendig Was bedeutet Agil? Andere Bezeichnung: Leichtgewichtiger Prozess Manifesto for

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

extreme Programming (XP) Hermann Götz Sergij Paholchak Agenda Was ist XP? Grundprinzipien Der Entwicklungsprozess Die Projektplanung Praktiken Vorteile und Nachteile Wann macht XP Sinn für ein Projekt?

Mehr

Agile Management Einführung in agiles Management

Agile Management Einführung in agiles Management Agile Management Einführung in agiles Management Agile Management Agile Management-Methoden Einführung Agile Management PQRST e.u. - Ing. Erich Freitag Version 25.06.2013 Lernziele Den Unterschied zwischen

Mehr

Agile Software Development

Agile Software Development Dipl. Wirtsch. Ing. Alexander Werth Methoden der Softwareentwicklung 6-1 Agile Manifest Individuen und Interaktion statt Prozessen und Tools. Funktionierende Software statt umfangreicher Dokumentation.

Mehr

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden? 10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden? Stefan Roock stefan.roock@akquinet.de Hintergrund 1/2 Senior IT-Berater bei der akquinet AG extreme Programming seit Anfang 1999, dann

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

ZuuL - Entwicklung eines Adventures

ZuuL - Entwicklung eines Adventures ZuuL - Entwicklung eines Adventures im Rahmen der Uni-Tage 2009 Team 120 Universität Hamburg 16./17. November 2009 Team 120 (Universität Hamburg) ZuuL - Entwicklung eines Adventures 16.11.09 1 / 21 Übersicht

Mehr

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

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum Taking RM Agile CLICK TO EDIT MASTER OPTION 1 Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum Click to edit Master subtitle style Christian Christophoridis Requirements Management

Mehr

Interpretation des agilen Manifest

Interpretation des agilen Manifest Interpretation des agilen Manifest im Automotive Bereich Basel Genève Freiburg Berlin Copyright 2014 SynSpace geben eine Richtung vor Glaubwürdigkeit Basis & Grundlage von Verhaltensweisen oberhalb der

Mehr

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Extreme Programming Agiles Manifest Individuen und Interaktion wichtiger als Prozesse und Werkzeuge Laufende Software wichtiger als vollständige

Mehr

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,

Mehr

Agiles Testen. Gedankensammlung. 17. November 2013 - Patrick Koglin

Agiles Testen. Gedankensammlung. 17. November 2013 - Patrick Koglin Agiles Testen Gedankensammlung 17. November 2013 - Patrick Koglin Inhalt Reflektion: Agilität notwendig? Wo? Eigenschaften agiler Entwicklung Quality is everyone s responsibility Qualität möglich machen

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

Mehr

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

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität Marcus Winteroll oose GmbH Agenda I. Ziele und Zusammenarbeit II. Was wir vom agilen Vorgehen lernen

Mehr

Extreme Programming ACM/GI Regionalgruppe Bremen, 12.6.2001

Extreme Programming ACM/GI Regionalgruppe Bremen, 12.6.2001 Extreme Programming ACM/GI Regionalgruppe Bremen, 12.6.2001 Tammo Freese OFFIS, Oldenburg freese@acm.org http://www.tammofreese.de Frank Westphal unabhängiger Berater westphal@acm.org http://www.frankwestphal.de

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Lösungen zum Test objektorientierter Software

Lösungen zum Test objektorientierter Software Lösungen zum Test objektorientierter Software Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 14. März 2013 HOM/FHTeL Lösungen zum Test objektorientierter Software

Mehr

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

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind. Wir erledigen alles sofort Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind. agilecoach.de Marc Bless Agiler Coach agilecoach.de Frage Wer hat

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Was sind Jahres- und Zielvereinbarungsgespräche?

Was sind Jahres- und Zielvereinbarungsgespräche? 6 Was sind Jahres- und Zielvereinbarungsgespräche? Mit dem Jahresgespräch und der Zielvereinbarung stehen Ihnen zwei sehr wirkungsvolle Instrumente zur Verfügung, um Ihre Mitarbeiter zu führen und zu motivieren

Mehr

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

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung. StuPro-Seminar Dokumentation in der Software-Wartung StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung Folie 1/xx Software-Wartung: theoretisch Ausgangslage eigentlich simpel: fertige

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Softwareentwicklung aus Sicht des Gehirns

Softwareentwicklung aus Sicht des Gehirns Softwareentwicklung aus Sicht Business Unit Manager Folie 1 3. Juli 2008 Ziele Das Ziel ist die Beantwortung der folgenden Fragen: 1. Wie lösen Softwareentwickler Probleme kognitiv? 2. Welche Auswirkungen

Mehr

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

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert. Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt

Mehr

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

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

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

.. für Ihre Business-Lösung

.. für Ihre Business-Lösung .. für Ihre Business-Lösung Ist Ihre Informatik fit für die Zukunft? Flexibilität Das wirtschaftliche Umfeld ist stärker den je im Umbruch (z.b. Stichwort: Globalisierung). Daraus resultierenden Anforderungen,

Mehr

Pension Liability Management. Ein Konzept für die Liquiditätsplanung in der betrieblichen Altersversorgung. BAV Ludwig

Pension Liability Management. Ein Konzept für die Liquiditätsplanung in der betrieblichen Altersversorgung. BAV Ludwig Ein Konzept für die Liquiditätsplanung in der betrieblichen Altersversorgung Gesellschaft für betriebliche Altersversorgung university-logo Problematik Ziele interne Finanzierung Vorteile der internen

Mehr

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

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007 Sabotage in Scrum dem Prozess erfolglos ins Knie schiessen Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007 1 Überblick Sabotage? Wer kann sabotieren? Was kann sabotiert werden? Wieviel

Mehr

Agile Enterprise Development. Sind Sie bereit für den nächsten Schritt?

Agile Enterprise Development. Sind Sie bereit für den nächsten Schritt? Agile Enterprise Development Sind Sie bereit für den nächsten Schritt? Steigern Sie noch immer die Wirtschaftlichkeit Ihres Unternehmens alleine durch Kostensenkung? Im Projektportfolio steckt das Potenzial

Mehr

Checkliste. Erfolgreich Delegieren

Checkliste. Erfolgreich Delegieren Checkliste Erfolgreich Delegieren Checkliste Erfolgreich Delegieren Erfolgreiches Delegieren ist für Führungskräfte von großer Bedeutung, zählt doch das Delegieren von n und Projekten zu ihren zentralen

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

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

Sollten folgende drei Fragen durch das Team positiv beantwortet werden, sind wichtige SCRUM-Elemente in Ihrem Team erfolgreich installiert. SCRUM-CHECKLISTE Teilen Sie diese Liste an alle Teammitglieder aus. Jeder soll einen Haken an der Stelle setzen, die er für Ihr SCRUM Team als erfüllt ansieht. Anschließend diskutieren Sie über fehlende

Mehr

Das Handwerkszeug. Teil I

Das Handwerkszeug. Teil I Teil I Das Handwerkszeug Beratung in der IT 3 Beratung ist ein häufig gebrauchter und manchmal auch missbrauchter Begriff in der IT. Wir versuchen in diesem Einstieg etwas Licht und Klarheit in diese Begriffswelt

Mehr

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler

Mehr

Alle gehören dazu. Vorwort

Alle gehören dazu. Vorwort Alle gehören dazu Alle sollen zusammen Sport machen können. In diesem Text steht: Wie wir dafür sorgen wollen. Wir sind: Der Deutsche Olympische Sport-Bund und die Deutsche Sport-Jugend. Zu uns gehören

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

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

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät

Mehr

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams 12.06.2014, Abschlussvortrag Masterarbeit Holger Schmeisky Die Forschungsfrage Wie und unter welchen Bedingungen funktioniert

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

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

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient. Beschreibung der Focus Methode Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient. 1. F = Failure / Finding An dieser Stelle wird der

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Was Sie über SCRUM wissen sollten...

Was Sie über SCRUM wissen sollten... Was Sie über SCRUM wissen sollten... +Pluswerk AG Solmsstr.6a 60486 Frankfurt Tel: (089) 130 145 20 Fax: (089) 130 145 10 info@pluswerk.ag Commerzbank Frankfurt IBAN: DE08 5004 0000 0716 6200 00 BIC: COBADEFFXXX

Mehr

Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten.

Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten. 3 Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten. Rasante Marktverände-rungen und eine ständig wachsende Komplexität beeinflussen heute die Unternehmensentwicklung mehr denn je zuvor.

Mehr

I.O. BUSINESS. Checkliste Effektive Vorbereitung aktiver Telefonate

I.O. BUSINESS. Checkliste Effektive Vorbereitung aktiver Telefonate I.O. BUSINESS Checkliste Effektive Vorbereitung aktiver Telefonate Gemeinsam Handeln I.O. BUSINESS Checkliste Effektive Vorbereitung aktiver Telefonate Telefonieren ermöglicht die direkte Kommunikation

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Hilfe, mein SCRUM-Team ist nicht agil!

Hilfe, mein SCRUM-Team ist nicht agil! Hilfe, mein SCRUM-Team ist nicht agil! Einleitung: Laut unserer Erfahrung gibt es doch diverse unagile SCRUM-Teams in freier Wildbahn. Denn SCRUM ist zwar eine tolle Sache, macht aber nicht zwangsläufig

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Wer wir sind. Qualität ist das Ergebnis gewissenhafter Arbeit. Denn nur die setzt sich durch. Unser Profil

Wer wir sind. Qualität ist das Ergebnis gewissenhafter Arbeit. Denn nur die setzt sich durch. Unser Profil Wer wir sind Unser Profil Die Geschichte der CORYX Software GmbH begann im Jahr 2001 im fränkischen Coburg. Ein kleines Team rund um Unternehmensgründer Uwe Schenk übernahm den Support für das Reuters

Mehr

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

Praktische Erfahrungen beim Einsatz des Vorgehensmodells SCRUM bei AGFA HealthCare Praktische Erfahrungen beim Einsatz des Vorgehensmodells "SCRUM" bei AGFA HealthCare SCRUM Praktische Erfahrungen beim Einsatz des Vorgehensmodells "SCRUM" eines Entwicklerteams von AGFA HealthCare 2 Praktische

Mehr

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie München, 06.05.2009 Markus Wittwer, oose GmbH 2009 by de GmbH Markus Wittwer Berater und Trainer Coach für agile Projekte

Mehr

Fragebogen zur Qualität unserer Teamarbeit

Fragebogen zur Qualität unserer Teamarbeit Fragebogen r Qualität unserer Teamarbeit Die folgenden Aussagen beschreiben wesentliche Aspekte der Teamarbeit wie Kommunikation, Informationsaustausch, Zielfindung, Umgang miteinander etc. Bitte kreuzen

Mehr

WSO de. <work-system-organisation im Internet> Allgemeine Information

WSO de. <work-system-organisation im Internet> Allgemeine Information WSO de Allgemeine Information Inhaltsverzeichnis Seite 1. Vorwort 3 2. Mein Geschäftsfeld 4 3. Kompetent aus Erfahrung 5 4. Dienstleistung 5 5. Schulungsthemen 6

Mehr

Tender Manager. Sparen Sie Zeit und Kosten durch eine optimierte Erstellung Ihrer individuellen IT-Ausschreibungen

Tender Manager. Sparen Sie Zeit und Kosten durch eine optimierte Erstellung Ihrer individuellen IT-Ausschreibungen Tender Manager Sparen Sie Zeit und Kosten durch eine optimierte Erstellung Ihrer individuellen IT-Ausschreibungen Tender Manager Der plixos Tender Manager reduziert drastisch den Aufwand bei der Durchführung

Mehr

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG von Urs Schaffer Copyright by Urs Schaffer Schaffer Consulting GmbH Basel www.schaffer-consulting.ch Info@schaffer-consulting.ch Haben Sie gewusst dass... >

Mehr

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski Agile Software Entwicklung Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski Agenda zum Kurs Software Engineering Wasserfallmodell Agile Entwicklung Wer bin ich Studium der Computerlinguistik

Mehr

ANTES International Assessment. Erfolg ist kein Zufall

ANTES International Assessment. Erfolg ist kein Zufall ANTES International Assessment Erfolg ist kein Zufall 2 E.M. Forster hat es einmal auf den Punkt gebracht: Eine Person mit Begeisterung ist besser als 40 Personen die lediglich nur interessiert sind. Potenziale

Mehr

Inhalt. Kundenbindung langfristig Erfolge sichern 5 Kundenbindung als Teil Ihrer Unternehmensstrategie 6 Was Kundenorientierung wirklich bedeutet 11

Inhalt. Kundenbindung langfristig Erfolge sichern 5 Kundenbindung als Teil Ihrer Unternehmensstrategie 6 Was Kundenorientierung wirklich bedeutet 11 2 Inhalt Kundenbindung langfristig Erfolge sichern 5 Kundenbindung als Teil Ihrer Unternehmensstrategie 6 Was Kundenorientierung wirklich bedeutet 11 Die Erfolgsfaktoren für Ihre Kundenbindung 17 Diese

Mehr

Microsoft SharePoint 2013 Designer

Microsoft SharePoint 2013 Designer Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste

Mehr

Extreme Programming: Überblick

Extreme Programming: Überblick Extreme Programming: Überblick Stefan Diener / Apr 18, 2007 / Page 1 Prinzipien Rollen Planung Implementierung Praktiken weitere Vorgehensweisen Grenzen Inhalt Stefan Diener / Apr 18, 2007 / Page 2 Prinzipien

Mehr

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service Der BPM-Regelkreis Im Mittelpunkt dieser Übersicht steht die konkrete Vorgehensweise bei der Einführung

Mehr

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

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation (Bei Abweichungen, die bspw. durch technischen Fortschritt entstehen können, ziehen Sie bitte immer das aktuelle Handbuch

Mehr

Projekt. Evaline. Anleitung Stufe Kanton. Anleitung. Massnahmen- & Ressourcenplanung in den Gremien. Version 1.0

Projekt. Evaline. Anleitung Stufe Kanton. Anleitung. Massnahmen- & Ressourcenplanung in den Gremien. Version 1.0 Projekt Evaline Stufe Kanton Massnahmen- & Ressourcenplanung in den Gremien Version 1.0 Jungwacht Blauring Kanton Luzern St. Karliquai 12. 6004 Luzern www.jublaluzern.ch Inhaltsverzeichnis 1 Einleitung...

Mehr

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin Fragestellungen: Warum reicht das Lastenheft nicht aus? Was kann ich mit dem Lastenheft machen? Was unterscheidet das Pflichtenheft vom Lastenheft? Was gehört zum Auftragsumfang einer Individualsoftware?

Mehr

Traditionelle Suchmaschinenoptimierung (SEO)

Traditionelle Suchmaschinenoptimierung (SEO) Traditionelle Suchmaschinenoptimierung (SEO) Mit der stetig voranschreitenden Veränderung des World Wide Web haben sich vor allem auch das Surfverhalten der User und deren Einfluss stark verändert. Täglich

Mehr

Sind wir nicht alle ein bisschen agil? Dipl.-Inform. Tammo Freese xpdays, Karlsruhe, 22. November 2004

Sind wir nicht alle ein bisschen agil? Dipl.-Inform. Tammo Freese xpdays, Karlsruhe, 22. November 2004 Sind wir nicht alle ein bisschen agil? Dipl.-Inform. Tammo Freese xpdays, Karlsruhe, 22. November 2004 Das Manifest der agilen Softwareentwicklung Ähnliche Werte bei XP, ASD, Crystal, DSDM, FDD, Scrum,...

Mehr

Unsere Produkte. Wir automatisieren Ihren Waren- und Informationsfluss. Wir unterstützen Ihren Verkaufsaußendienst.

Unsere Produkte. Wir automatisieren Ihren Waren- und Informationsfluss. Wir unterstützen Ihren Verkaufsaußendienst. Die clevere Auftragserfassung Unsere Produkte Das smarte Lagerverwaltungssystem Die Warenwirtschaft für den Handel Wir unterstützen Ihren Verkaufsaußendienst. Wir automatisieren Ihren Waren- und Informationsfluss.

Mehr

FUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING

FUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING 18/11/13 Requirements Engineering 21 November 2013 DIE GRUNDFRAGEN Wie erhält der Kunde den größten Nutzen? Wie kann der Kunde am besten spezifizieren, was er haben will? Welchen Detailierungsgrad braucht

Mehr

Informationssicherheit als Outsourcing Kandidat

Informationssicherheit als Outsourcing Kandidat Informationssicherheit als Outsourcing Kandidat aus Kundenprojekten Frankfurt 16.06.2015 Thomas Freund Senior Security Consultant / ISO 27001 Lead Auditor Agenda Informationssicherheit Outsourcing Kandidat

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Fortgeschrittenes Programmieren mit Java. Test Driven Development Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test

Mehr

Ergebnisse der NOVIBEL-Kundenzufriedenheitsanalyse 2002

Ergebnisse der NOVIBEL-Kundenzufriedenheitsanalyse 2002 Ergebnisse der NOVIBEL-Kundenzufriedenheitsanalyse 2002 1. Grundlagen zum Verständnis der Befragung NOVIBEL führt die Kundenzufriedenheitsanalyse seit dem Jahr 2000 in Zusammenarbeit mit dem Lehrstuhl

Mehr

Woche 1: Was ist NLP? Die Geschichte des NLP.

Woche 1: Was ist NLP? Die Geschichte des NLP. Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen

Mehr

Einführung und Motivation

Einführung und Motivation Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.

Mehr

Software Systems Engineering

Software Systems Engineering Software : SoSe 08 Prof. Dr. Klaus Schmid Software Produktlinien Ein neues Programm soll erstellt werden. Das habe ich doch schon mal programmiert, oder? Alter Code passt aber nicht ganz! Wird passend

Mehr

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

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen Wer bin ich Kurse und Vorträge mit Jeff Sutherland und Ken Schwaber Verschiedene Kurse der Scrum.org Professional

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Content Management System mit INTREXX 2002.

Content Management System mit INTREXX 2002. Content Management System mit INTREXX 2002. Welche Vorteile hat ein CM-System mit INTREXX? Sie haben bereits INTREXX im Einsatz? Dann liegt es auf der Hand, dass Sie ein CM-System zur Pflege Ihrer Webseite,

Mehr

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

Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung Moderatorin: Sabine Bernecker- Bendixen sof- IT & Personal Best! www.sof- it.de

Mehr

Unsere vier hilfreichsten Tipps für szenarienbasierte Nachfrageplanung

Unsere vier hilfreichsten Tipps für szenarienbasierte Nachfrageplanung Management Briefing Unsere vier hilfreichsten Tipps für szenarienbasierte Nachfrageplanung Erhalten Sie die Einblicke, die Sie brauchen, um schnell auf Nachfrageschwankungen reagieren zu können Sales and

Mehr

Am Beispiel Pair-Programming

Am Beispiel Pair-Programming BLENDED-LEARNING Am Beispiel Pair-Programming 1 WAS IST PAIR- PROGRAMMING? Pair-Programming oder Programmieren in Paaren ist eine zentrale Technik aus dem extreme Programming (XP). Zwei Entwickler arbeiten

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter Referat Extreme Programming Von Irina Gimpeliovskaja und Susanne Richter 1.) Was ist XP? Überlegte Annäherung an Softwareentwicklung Prozessmodell für objektorientierte Softwareentwicklung erfordert gute

Mehr

Agile Softwareentwicklung. Referat von Kristina Schrickel Praxisprojekt Ruby Leitung : Ralf Berger

Agile Softwareentwicklung. Referat von Kristina Schrickel Praxisprojekt Ruby Leitung : Ralf Berger Agile Softwareentwicklung Referat von Kristina Schrickel Praxisprojekt Ruby Leitung : Ralf Berger Inhalt 1. Klassische Entwicklungstechnik 2. Agile Entwicklungstechnik - Allgemeines 3. Agiles Manifest

Mehr

RE-Metriken in SCRUM. Michael Mainik

RE-Metriken in SCRUM. Michael Mainik RE-Metriken in SCRUM Michael Mainik Inhalt Agile Methoden Was ist SCRUM? Eine kurze Wiederholung Metriken Burn Down Graph Richtig schätzen Running Tested Features WBS/ Earned Business Value Business Value

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

Online Newsletter III

Online Newsletter III Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Agile Softwareentwicklung

Agile Softwareentwicklung Agile Softwareentwicklung Werte, Konzepte und Methoden von Wolf-Gideon Bleek, Henning Wolf 2., aktualisierte und erweiterte Auflage Agile Softwareentwicklung Bleek / Wolf schnell und portofrei erhältlich

Mehr

Emergency Room für Projektleiter

Emergency Room für Projektleiter Emergency Room für Projektleiter Handlungsfähigkeit schnell zurückgewinnen Präsentation P0540 Copyright hyperskill GmbH 2010-2013 www.hyperskill.de Version 5.1 Emergency Room für Projektleiter Der Nutzen

Mehr

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL [Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL Was bedeutet Customer Service by KCS.net? Mit der Einführung von Microsoft Dynamics AX ist der erste wichtige Schritt für viele Unternehmen abgeschlossen.

Mehr

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Agile Softwareentwicklung mit Scrum

Agile Softwareentwicklung mit Scrum Agile Softwareentwicklung mit Scrum Einführung und Überblick zum agilen Softwareentwicklungsprozess Scrum März 2006 Robert Schmelzer, DI(FH) E-Mail: robert@schmelzer.cc Web: http://www.schmelzer.cc Einführung

Mehr

Code of Conduct (CoC)

Code of Conduct (CoC) Code of Conduct (CoC) Aeiforia CoC-Check: Erkennen Sie Auswirkungen des CoC auf Ihr Unternehmen! Aeiforia hat ein auf Checklisten gestütztes Vorgehen entwickelt, mit dem Sie Klarheit erlangen, in welchen

Mehr