Managing Dependencies in Complex Global Software Development Projects
Total Page:16
File Type:pdf, Size:1020Kb
Die approbierte Originalversion dieser Dissertation ist an der Hauptbibliothek der Technischen Universität Wien aufgestellt (http://www.ub.tuwien.ac.at). The approved original version of this thesis is available at the main library of the Vienna University of Technology (http://www.ub.tuwien.ac.at/englweb/). DISSERTATION Managing Dependencies in Complex Global Software Development Projects Ausgeführt zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften/der Naturwissenschaften unter der Leitung von Prof. Stefan Biffl 188 (Institutsnummer) Institut für Softwaretechnik und interaktive Systeme Eingereicht and der Technischen Universität Wien Fakultät für Informatik von Dipl.Ing. Matthias Heindl 9826997 1230 Wien, Maurer Langegasse 39-41/1/6 [email protected] Wien, am eigenhändige Unterschrift Managing Dependencies in Complex Global Software Development Projects DEUTSCHE KURZFASSUNG Global verteilte Softwareentwicklungsprojekte (GSD Projekte) sind komplex aufgrund zahlreicher Faktoren, wie z.B. einer üblicherweise hohen Anzahl von Anforderungen, der Verteiltheit der Projektteilnehmer, und der Unmenge an Abhängigkeiten in Arbeitsergebnissen (Anforderungsbeschreibungen, Testfallspezifikationen, Source Code). Eine wesentliche Herausforderung in solchen Projekten besteht darin, all diese Arbeitsergebnisse konsistent zu halten. Dies ist wichtig, um sicher zu stellen, dass die Dokumentation durchgängig und aussagekräftig bleibt und um Fehler in der Software aufgrund von fehlerhafter Dokumentation zu vermeiden. Die Konsistenz zu erhalten ist sehr schwierig wenn Änderungen nur punktuell in Dokumenten vorgenommen werden und nicht auch in anderen verwandten Dokumenten nachgezogen werden. Das Erfassen und Verwalten von Abhängigkeiten zwischen Arbeitsergebnissen (Dependency Management) ist entscheidend, Konsistenz in den Arbeitsergebnissen zu wahren. Allerdings haben bestehende Dependency-Management-Ansätze folgende Schwachstellen: • Sie beinhalten keinen Planungsschritt, der dabei unterstützt abzuschätzen, wie viel Aufwand für das Dependency Management (DM) im Projekt notwendig sein wird. Das führt dann oft zu unsystematischem, schwer nachvollziehbarem DM, das noch dazu mit Mehrkosten verbunden ist. • Sie behandeln alle existierenden Abhängigkeiten als gleich wichtig; die Unterscheidung in wichtige, wertvolle Abhängigkeiten und solche, die nicht wertvoll sind, wird nicht in nachvollziehbarer Weise gemacht. • Das Erfassen von Abhängigkeiten ist teuer und eine fehlerbehaftete Tätigkeit. Das Erfassen von Abhängigkeiten zwischen Arbeitsergebnissen, die in unterschiedlichen Tools verwaltet werden, wird nicht ausreichend unterstützt (aufgrund mangelhafter Toolintegrationen). Moderne high-quality Ansätze für DM sollen folgende Kriterien erfüllen: sie sollen (a) einen entsprechenden Planungsschritt beinhalten, (b) Abhängigkeiten entsprechend ihres Wertes behandeln (um Aufwände für das Verwalten von unwichtigen Abhängigkeiten zu vermeiden), und (c) einfaches und billiges Erfassen und Warten von Abhängigkeiten auch über Toolgrenzen hinweg unterstützen. In dieser Arbeit behandle ich die folgenden Forschungsthemen, um die genannten Kriterien zu erreichen: 1) Planung des Dependency Managements: Diese Arbeit beinhaltet ein “Tracing Activity Framework (TAF), das einen Projektleiter dabei unterstützt, unterschiedliche DM Ansätze für sein Projekt vorab zu berechnen, um Aufschlüsse über anfallende Aufwände für das DM zu bekommen und den günstigsten Ansatz zu wählen. 2) Erfassung und Verwaltung von Abhängigkeiten: Diese Arbeit beinhaltet einen wert-orientieren Ansatz für DM, um auf high-value Abhängigkeiten fokussieren zu können. Ausserdem beinhaltet sie eine prototypische Implementierung eines integrierten DM Ansatzes, der DM über Toolgrenzen hinweg unterstützt (zwischen einem Anforderungsmanagement-Tool und einer Entwicklungsumgebung). 3) Anwendung von erfassten Abhängigkeiten: Diese Arbeit beinhaltet ein Konzept für ein auf erfassten Abhängigkeiten basierendes Notifikationssystem, das die zielgerichtete, zeitgerechte Kommunikation zwischen verteilten Projektteilnehmern unterstützt. Diese Beiträge sollen das Kosten-Nutzen-Verhältnis von DM Ansätzen verbessern. Zur Evaluierung meiner Ansätze habe ich empirische Studien im industriellen Kontext gewählt. i Managing Dependencies in Complex Global Software Development Projects TABLE OF CONTENTS ABSTRACT............................................................................................................................................V Acknowledgements ...........................................................................................................................vi List of tables......................................................................................................................................vii List of figures....................................................................................................................................vii 1 INTRODUCTION ...............................................................................................................................1 1.1 Complexity of (Global) Software Development Projects ......................................................1 1.2 Dependencies in Global Software Development Projects .....................................................2 1.2.1 Dependencies between Artefacts ................................................................................................3 1.2.2 Dependencies between Team Members......................................................................................4 1.2.3 Dependencies between People and Artefacts .............................................................................5 1.3 State of the Practice of Dependency Management ................................................................6 1.3.1 Implicit Dependency Management .............................................................................................6 1.3.2 Explicit Dependency Management .............................................................................................6 1.4 Criteria for Good Dependency Management.........................................................................7 1.5 A Solution Framwork to outline my Research Approaches.................................................8 1.5.1 Research Area: Planning of dependency management ............................................................11 1.5.2 Research Area: Capturing dependencies explicitly, systematically and consistently..............13 1.5.3 Research Area: Application of traces for dependency management in project and product management scenarios .............................................................................................................14 2 FUNDAMENTS OF THIS WORK ......................................................................................................16 2.1 Global Software Development...............................................................................................16 2.2 Requirements Engineering ....................................................................................................19 2.3 Value-Based Software Engineering ......................................................................................22 2.4 Application Lifecycle Management ......................................................................................27 2.5 Chapter Summary ..................................................................................................................28 3 RESEARCH METHODS ...................................................................................................................29 3.1 Systematic Literature Review................................................................................................29 3.1.1 The Systematic Literature Review Process...............................................................................30 3.1.2 Piloting/Validating the Protocol ..............................................................................................35 3.1.3 Conducting the Review .............................................................................................................36 3.1.4 Reporting the Review................................................................................................................37 3.1.5 The Review Protocol for a Systematic Review on Requirements Tracing Approaches............37 3.1.6 Results of the Systematic Review on Requirements Tracing Approaches ................................43 3.1.7 Lessons learned about systematic literature review.................................................................78 3.2 Model Building and Evaluation by Case Studies.................................................................80 3.3 Chapter Summary ..................................................................................................................81 4 PLANNING OF DEPENDENCY MANAGEMENT ...............................................................................82 4.1 The Tracing Activity Framework .........................................................................................82 4.1.1 Related Work on Requirements Tracing and Re-Testing .........................................................83 4.1.2 An Initial Tracing Activity Framework ....................................................................................85 4.1.3 Research Objectives .................................................................................................................87