Dokumentation ist in der Softwareentwicklung ein geläufiges Stichwort. Sie ist Be-standteil jeder Software. Zu den Aufgaben eines Programmierers gehört es Entwicklerdokumentation zu erstellen. Sie „ (...) dient der Aufzeichnung von Informationen über die Prozesse und Produkte der Entwicklung.“
Entwicklerdokumentation wird verschieden gehandhabt und bewertet. Einerseits wird sie in der Softwareentwicklung als absolut notwendig erachtet und sogar postuliert, je mehr in einem Softwareentwicklungsprojekt dokumentiert wird, desto „besser“ ist dies für ein Projekt. Diesem Verständnis liegen zum Beispiel Vorgehensmodelle, wie das CMM, das V-Modell oder auch die ISO 9000, zugrunde.
Andererseits wird Entwicklerdokumentation in den Hintergrund gestellt, als hinderlich für ein erfolgreiches Softwareprojekt angesehen und soweit wie möglich reduziert. In der Praxis kann häufig beobachtet werden, dass Entwicklerdokumentation, selbst bei erfolgreichen Softwareentwicklungen, als lästig angesehen und vernachlässigt oder teilweise weggelassen wird. Von Dokumentationsvorgaben wird häufig abgewichen und erstellte Entwicklerdokumentation wird als mangelhaft bewertet.
Entwicklerdokumentation hat sich jedoch für Beteiligte an einem Entwicklungsprojekt als hilfreiches Mittel zur Arbeitsunterstützung herausgestellt. Aus diesem Grund wird die Entwicklerdokumentation auch als ein „notwendiges Übel“ bezeichnet.
Es existieren verschiedene Ansätzen zur Softwareentwicklung, mit jeweils verschieden stark ausgeprägten Anweisungen und Gestaltungsvorgaben zur Erstellung von Entwicklerdokumentation. Daraus lässt sich schließen, dass verschiedene Aspekte bei der Bestimmung eines effizienten Grades der eingesetzten Entwicklerdokumentation von Bedeutung sind. Deshalb lassen sich unterschiedliche Gestaltungsalternativen in Bezug auf die Erstellung von Entwicklerdokumentation finden.
Die Softwarebranche ist ein stark umkämpfter Markt. Um Wettbewerbsvorteile erreichen zu können ist es wichtig, die Softwareentwicklung so effizient wie möglich zu gestalten und Software auf hohem qualitativem Niveau zu erstellen. Doch die eine „silber-ne Kugel“, welche die Softwarekosten zur Erstellung qualitativ guter Software reduziert, ist nicht in Sicht. Aus diesem Grund kann sich nur in kleinen Schritten einer effizienten Softwareentwicklung genähert werden.
Inhaltsverzeichnis
1 Einleitung
1.1 Problemstellung
1.2 Einordnung und Ziel der Arbeit
1.3 Vorgehensweise
1.4 Erläuterung verwendeter Begriffe
2 Entwicklerdokumentation
2.1 Gegenstände der Entwicklerdokumentation
2.2 Gründe für Entwicklerdokumentation
2.2.1 Wissenskonservierung
2.2.2 Wissenstransfer
2.2.3 Koordination
2.2.4 Kommunikation
2.2.5 Softwareerstellungs-Vertrag
2.2.6 Organisatorische Politik und Macht
2.2.7 Strukturierung der Implementierung
2.2.8 Durchdringung inhaltlicher Konzepte
2.2.9 Geforderte Qualitätsstandards
2.2.10 Dokumentationsvorgaben
2.3 Nachteile von Entwicklerdokumentation
2.3.1 Aktualität
2.3.2 Aktualisierungsaufwand
2.3.3 Verständlichkeit
2.3.4 Informationsfindung
2.3.5 Zusätzlicher Ressourcenbedarf
2.3.6 Motivationsproblem
3 Effizienzsteigerung des Einsatzes von Entwicklerdokumentation
3.1 Effizienz von Entwicklerdokumentation
3.2 Maßnahmen zur Effizienzsteigerung
3.2.1 Grundkonzepte und Qualitätsanforderungen
3.2.2 Quantitative Aspekte
3.2.3 Alternativen zu traditionellen Ansätzen der Dokumentation
3.3 Kritische Beleuchtung weiterer und genannter Vorschläge
3.3.1 Zeitpunkt von Dokumentation
3.3.2 Technische Hilfsmittel
3.3.3 Video- und Audioaufnahmen als Dokumentation
3.3.4 Kompletter Dokumentationsverzicht
3.3.5 Positive Aspekte von Redundanzen
3.3.6 Unnötigkeit richtiger und aktueller Dokumentation
3.3.7 Teamgröße und angemessene direkte Kommunikation
3.3.8 Öffentliche Präsentation und Prozessdokumentation
4 Einflussfaktoren auf Entwicklerdokumentation
4.1 Organisatorische Einflussfaktoren
4.1.1 Ablauforganisation
4.1.2 Aufbauorganisation
4.1.3 Umfang eines Projekts
4.1.4 Zeitraum der Erstellung eines Projektes
4.1.5 Fluktuation
4.1.6 Arbeitsteilung
4.1.7 Planung und Kontrolle
4.1.8 Entscheidungsdelegation
4.1.9 Vorauskoordination
4.1.10 Formalisierung
4.2 Softwarespezifische Einflussfaktoren
4.2.1 Art der Auslösung
4.2.2 Unklarheit der Entwicklungsaufgabe
4.2.3 Dynamik der Anforderungen
4.2.4 Neuartigkeit der Technologie
4.2.5 Intensität der Kunden-/Marktkommunikation
4.2.6 Sicherheitsanforderungen der Software
4.2.7 Lebensdauer von Entwicklerdokumentation und Software
4.2.8 Vorgehensmodelle
4.3 Weitere Einflussfaktoren
4.3.1 Verhalten der Mitarbeiter
4.3.2 Ausbildung und Wissen der Mitarbeiter
4.3.3 Technische Unterstützung der Entwicklung
4.3.4 Wirtschaftlicher Druck auf Software-Firmen
Zielsetzung und Themen
Das Hauptziel dieser Arbeit besteht darin, Maßnahmen aufzuzeigen, die zu einer Effizienzsteigerung der Entwicklerdokumentation führen, sowie die verschiedenen Einflüsse darzulegen, denen eine solche Dokumentation unterliegt. Dabei wird untersucht, wie eine effiziente Softwareentwicklung durch die Optimierung des Dokumentationsprozesses erreicht werden kann, um den Zielkonflikt zwischen notwendiger Information und Ressourcenschonung aufzulösen.
- Anforderungen und Gegenstände effizienter Entwicklerdokumentation
- Maßnahmen zur Effizienzsteigerung (z.B. Pair Programming, direkte Kommunikation)
- Kontingenztheoretische Analyse von Einflussfaktoren auf die Dokumentation
- Vergleich von traditionellen Ansätzen und alternativen Dokumentationsstrategien
- Optimierung des Verhältnisses von Dokumentationsaufwand zu Softwarequalität
Auszug aus dem Buch
3.2.3.1 Pair Programming
Beim Pair Programming arbeiten zwei Programmierer für eine relativ kurze Zeit (u.U. nur einen Tag oder noch weniger) zusammen. Beide Programmierer arbeiten dabei simultan vor einem Rechner an einem Problem und programmieren zusammen.
Pair Programming kann einige Ansprüche an traditionelle Dokumentation erfüllen. Darunter fällt die Konservierung von Wissen und der projektinterne Wissenstransfer.
Wissen wird beim Pair Programming besser konserviert, da das Wissen eines Programmierers für ein Projekt nicht verloren geht, wenn der Programmierer aus dem Projekt ausscheidet. Durch Pair Programming lernen beide beteiligen Programmierer voneinander und geben ihr implizites Wissen an den Partner und durch das kontinuierliche Wechseln der Partner auch an das gesamte Entwicklungsteam weiter. Der Wissenstransfer findet deshalb durch Pair Programming sehr intensiv statt.
Pair Programming führt zu direkter Kommunikation innerhalb eines Entwicklungsteams, wodurch schriftliche Dokumentation ersetzt werden kann.
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel führt in die Problematik ein, dass Entwicklerdokumentation oft als notwendiges Übel betrachtet wird, und definiert das Ziel der Arbeit, Wege zu einer effizienteren Dokumentationsgestaltung aufzuzeigen.
2 Entwicklerdokumentation: Hier werden die verschiedenen Gegenstände sowie die Gründe für die Erstellung von Entwicklerdokumentation erläutert, aber auch deren inhärente Nachteile, wie etwa der Aktualisierungsaufwand, detailliert betrachtet.
3 Effizienzsteigerung des Einsatzes von Entwicklerdokumentation: In diesem Kapitel werden konkrete Ansätze und Maßnahmen zur Effizienzsteigerung vorgestellt, darunter alternative Methoden zur klassischen schriftlichen Dokumentation.
4 Einflussfaktoren auf Entwicklerdokumentation: Dieses Kapitel verknüpft die zuvor vorgestellten Maßnahmen mit verschiedenen organisatorischen und softwarespezifischen Einflussfaktoren, um deren situative Anwendung zu bewerten.
5 Schlussbetrachtung: Das Fazit fasst zusammen, dass es keine universelle Vorgehensweise gibt, sondern die effiziente Gestaltung der Entwicklerdokumentation stark von den spezifischen Rahmenbedingungen des Projektes abhängt.
Schlüsselwörter
Entwicklerdokumentation, Softwareentwicklung, Effizienzsteigerung, Wissenstransfer, Wissenskonservierung, Pair Programming, direkte Kommunikation, Prozessdokumentation, Dokumentationsaufwand, Kontingenztheorie, Vorgehensmodelle, Softwarewartung, implizites Wissen, Projektmanagement, Softwarequalität.
Häufig gestellte Fragen
Worum geht es in der vorliegenden Arbeit grundsätzlich?
Die Arbeit analysiert die Effizienz der Entwicklerdokumentation in Softwareprojekten und untersucht, wie der Dokumentationsprozess optimiert werden kann, um eine Balance zwischen notwendigem Wissen und Ressourceneffizienz zu finden.
Was sind die zentralen Themenfelder der Analyse?
Im Zentrum stehen die Gründe für die Dokumentation, die damit verbundenen Nachteile, Möglichkeiten der Effizienzsteigerung durch organisatorische und technische Maßnahmen sowie die Einflussfaktoren, die diese Gestaltung bestimmen.
Welches primäre Ziel verfolgt die Arbeit?
Das Ziel ist es, Maßnahmen aufzuzeigen, die die Dokumentation effizienter machen, und zu verdeutlichen, welchen organisatorischen und softwarespezifischen Einflüssen diese unterliegt.
Welche wissenschaftliche Methode wird zur Untersuchung verwendet?
Die Arbeit basiert primär auf einem fundierten Literaturstudium und integriert einen kontingenztheoretischen Ansatz, um den Einfluss situativer Faktoren auf die Dokumentationspraxis zu analysieren.
Welche Aspekte werden im Hauptteil schwerpunktmäßig behandelt?
Der Hauptteil konzentriert sich auf die Definition von Dokumentationsgegenständen, eine kritische Beleuchtung traditioneller vs. alternativer Ansätze (wie Pair Programming) und eine detaillierte kontingenztheoretische Betrachtung von Einflussfaktoren.
Welche Keywords charakterisieren die Arbeit am besten?
Die Arbeit lässt sich am besten durch Begriffe wie Entwicklerdokumentation, Wissenstransfer, Effizienzsteigerung, Pair Programming und kontingenztheoretische Einflussfaktoren beschreiben.
Wie bewertet der Autor die Rolle des Pair Programming für die Dokumentation?
Der Autor sieht im Pair Programming eine effektive Alternative zur klassischen Dokumentation, da es den direkten Wissenstransfer fördert und die Notwendigkeit für schriftliche Aufzeichnungen reduziert, indem Wissen durch die Zusammenarbeit im Team konserviert wird.
Was sagt die Arbeit zur Rolle von Dokumentationskomitees aus?
Die Arbeit empfiehlt Dokumentationskomitees vor allem für große Projekte, da sie helfen können, Dokumentationsvorgaben an das spezifische Projektumfeld anzupassen und selektive Effizienzkontrollen durchzuführen.
- Quote paper
- Kai Jan Oey (Author), 2002, Dokumentation in der Softwareentwicklung - Effizienter Einsatz von Entwicklerdokumentation, Munich, GRIN Verlag, https://www.grin.com/document/21755