Bachelor + Master Publishing
811 Bachelorarbeiten, 533 Masterarbeiten, 10.103 Diplomarbeiten

Softwareentwicklung in jungen Internetunternehmen

Anforderungen an Entwicklungsprozesse und Architekturdesign

Softwareentwicklung in jungen Internetunternehmen
Über dieses Buch
  • Art: Diplomarbeit
  • Autor: Martin Zihla
  • Abgabedatum: Juli 2007
  • Umfang: 116 Seiten
  • Dateigröße: 687,9 KB
  • Note: 1,3
  • Institution / Hochschule: Universität Duisburg-Essen, Standort Essen Deutschland
  • Bibliografie: ca. 110
  • ISBN (eBook): 978-3-8366-1305-7
  • ISBN (Buch): 978-3-8366-6305-2
  • Sprache: Deutsch
  • Prämierung:
  • Arbeit zitieren: Zihla, Martin Juli 2007: Softwareentwicklung in jungen Internetunternehmen, Hamburg: Diplomica Verlag
  • Schlagworte: E-Business, Softwareentwicklung, Entwicklungsprozess, Architekturdesign, Internet-Startups

In den Warenkorb
48,00 €

Diplomarbeit von Martin Zihla

Einleitung:

Auch heute stellt die Entwicklung von Software noch eine Herausforderung dar. Obwohl es zahlreiche Methoden gibt, die sich mit der Gestaltung eines optimalen Entwicklungsprozesses befassen, existiert noch kein universell einsetzbares Vorgehensmodell. Das Aufkommen der als agil bezeichneten Methoden der Softwareentwicklung hat darüber hinaus eine Diskussion über die korrekte Vorgehensweise bei der Entwicklung von Software angeregt. Junge Internetunternehmen müssen sich folglich nicht nur mit dem komplexen Gebiet des Software Engineering auseinander setzen, sondern sind auch den Einflüssen durch die schnelllebige Net Economy ausgesetzt. Dadurch sehen sie sich einer besonderen Herausforderung gegenüber.

Die zentrale Frage im Hinblick auf die Gestaltung des Entwicklungsprozesses ist somit nicht nur die durch Hruschka gestellte: „Wie viel ist ausreichend und wo beginnt die bürokratische Übertreibung?“ Für junge Internetunternehmen gilt es darüber hinaus zu ergründen, was in ihrer speziellen Situation und unter den gegebenen finanziellen und personellen Rahmenbedingungen überhaupt realisierbar und wirtschaftlich sinnvoll ist. Aus Sicht der Wirtschaftsinformatik ist diese Fragestellung interessant, da sie die Frage nach einer optimalen Vorgehensweise bei der Entwicklung von Internetanwendungen mit der Frage nach dem wirtschaftlichen Sinn der Realisierung einer solchen Vorgehensweise in Gründungsunternehmen verknüpft.

Die Situation von jungen Internetunternehmen lässt die Möglichkeit der sinnvollen Anwendung von wissenschaftlichen Erkenntnissen über die Entwicklung von Software auf die eigenen Projekte oftmals als fraglich erscheinen. Allein die in der Regel kleinen Teams lassen viele Methoden als völlig überdimensioniert erscheinen. Die regelmäßige, enge Zusammenarbeit zwischen den Gründern eines Internetunternehmens gibt zudem häufig Anlass zum Zweifel daran, ob die Formalisierung des Entwicklungsprozesses wirklich einen Mehrwert bietet. Obwohl die agilen Methoden der Softwareentwicklung hauptsächlich für kleine bis mittelgroße Teams entworfen wurden, ist ihre Anwendbarkeit in jungen Internetunternehmen zu hinterfragen, da auch diese Methoden grundlegende Annahmen über die Situation, in der ein Softwareprojekt durchgeführt wird, treffen.

Gang der Untersuchung:

Es gilt folglich zu untersuchen, was die spezielle Situation von Gründungsunternehmen in der Net Economy ausmacht und welche Implikationen sich hieraus für den Entwicklungsprozess und das Architekturdesign ergeben. Um dies zu ermöglichen erfolgt in Kapitel 2 eine Betrachtung der Net Economy, wobei auf die grundlegenden Merkmale dieser sowie auf die spezielle Situation der Gründungsunternehmen eingegangen wird. In Kapitel 3 werden die unterschiedlichen Ansätze des Software Engineering beschrieben, wobei schwerpunktmäßig die Unterschiede zwischen den agilen und den planungsgetriebenen Methoden der Softwareentwicklung betrachtet werden. Weiterhin erfolgt eine Betrachtung des Web Engineering, welches hauptsächlich die Charakteristika von Web-Anwendungen und die sich aus ihnen ergebenden Anforderungen an einen Entwicklungsprozess untersucht.

Die Rolle des Architekturdesigns und der Softwarearchitektur im Entwicklungsprozess wird in Kapitel 4 beschrieben. In Kapitel 5 wird der Versuch unternommen, aufbauend auf bereits bestehenden Ansätzen zur Klassifikation von Softwareprojekten, ein Projektframework speziell für Gründungsunternehmen in der Net Economy zu entwerfen. Ziel des Frameworks ist es, Projekte in jungen Internetunternehmen anhand von passenden Unterscheidungsmerkmalen besser voneinander abgrenzen zu können.

Aus den im Rahmen des Frameworks identifizierten Projektmerkmalen sowie den Erkenntnissen aus den vorherigen Kapiteln werden in Kapitel 6 Anforderungen an das Architekturdesign und den Entwicklungsprozess formuliert. In Kapitel 7 folgt ein abschließendes Fazit sowie ein Ausblick auf die weitere Vorgehensweise im Hinblick auf die in dieser Arbeit formulierten Anforderungen.

Inhaltsverzeichnis:

Abbildungsverzeichnis IV
Tabellenverzeichnis V
1. Einführung und Motivation 1
2. Net Economy 2
2.1 Definitionen 2
2.1.1 Net Economy 2
2.1.2 E-Business 3
2.1.3 Junge Internetunternehmen 3
2.2 Die Entwicklung der Net Economy 4
2.3 Die elektronische Wertschöpfung 4
2.4 Das Unternehmensumfeld in der Net Economy 7
2.4.1 Das technologische Umfeld 7
2.4.1.1 Die digitale Revolution 8
2.4.1.2 Transparenz 9
2.4.2 Das ökonomische Umfeld 9
2.4.2.1 Intensivierung des Wettbewerbs 9
2.4.2.2 Zunahme des Virtualisierungsgrades 10
2.4.3 Das soziale Umfeld 10
2.4.4 Das politische Umfeld 11
2.5 Wettbewerbsvorteile in der Net Economy 12
2.5.1 Anpassungsfähigkeit 12
2.5.2 First Mover Advantage 13
2.5.3 Informationen als Wettbewerbsvorteil 13
2.5.4 Das Alleinstellungsmerkmal 14
2.6 Sondersituation Unternehmensgründung 14
2.6.1 Gründungsablauf 15
2.6.2 Merkmale von Gründungsunternehmen 16
2.7 Zusammenfassung 17
3. Ansätze des Software Engineering 18
3.1 Definitionen 20
3.1.1 Entwicklungsprozess 20
3.1.2 Software Engineering 21
3.2 Planungsgetriebene Softwareentwicklung 22
3.2.1 Das klassische sequenzielle Phasenmodell 23
3.2.2 Evolutionäre Prozessmodelle 24
3.2.3 Inkrementelle Prozessmodelle 26
3.2.4 Rational Unified Process 27
3.3 Agile Softwareentwicklung 30
3.3.1 Das Agile Manifest 30
3.3.2 Die Prinzipien der agilen Softwareentwicklung 31
3.3.3 Der Faktor Mensch 33
3.3.4 Einfachheit 34
3.3.5 Änderungskosten 36
3.3.5 Grenzen 38
3.3.6 Beispiele für agile Methoden 39
3.4 Web Engineering 41
3.4.1 Charakteristika von Web-Anwendungen 42
3.4.2 Ansätze des Web Engineering 44
4. Softwarearchitektur 46
4.1 Architekturdesign 46
4.2 Einflüsse auf die Softwarearchitektur 47
4.2.1 Organisatorische Einflussfaktoren 48
4.2.2 Technologische Faktoren 49
4.2.3 Produktfaktoren 49
4.2.4 Zusammenfassung 50
4.3 Kriterien für einen korrekten Architekturentwurf 51
4.4 Architekturmuster 52
4.4.1 Die Client/Server-Architektur 52
4.4.2 Die 3-Schichten-Architektur 53
4.4.3 Service-Orientierte Architekturen (SOA) 53
4.4.4 REpresentational State Transfer (REST) 54
4.5 Modellierungsziele einer Softwarearchitektur 55
5. Internetprojekte in Gründungsunternehmen 57
5.1 Definition Internetprojekt 57
5.2 Traditionelle Projekteigenschaften 57
5.2.1 Der Projektumfang 58
5.2.2 Die Projektdauer 59
5.2.3 Die Projektbesonderheit 59
5.2.4 Die Projektkomplexität 59
5.2.5 Die Projektschwierigkeit 60
5.2.6 Die Projektbedeutung 60
5.2.7 Das Projektrisiko 60
5.2.8 Die Projektkosten 60
5.2.9 Die Projektkontinuität 61
5.2.10 Die Projektintensität 61
5.2.11 Der Abhängigkeitsgrad 61
5.2.12 Zusammenfassende Betrachtung der Eignung traditioneller Projekteigenschaften 61
5.3 Existierende Ansätze zur Klassifikation von Softwareprojekten 62
5.3.1 Die Crystal Methodenfamilie (Cockburn) 62
5.3.1.1 Kommunikationsaufwand 63
5.3.1.2 Kritikalität 64
5.3.1.3 Projektprioritäten 65
5.3.1.4 Zusammenfassung 65
5.3.2 Der Polar Chart (Boehm/Turner) 65
5.3.2.1 Personnel (Fähigkeit der Entwickler) 70
5.3.2.2 Dynamism (Dynamik) 71
5.3.2.3 Culture (Unternehmenskultur) 71
5.3.2.4 Customer Involvement (Kundeneinbindung) 71
5.3.2.5 Team distribution (Verteilung des Teams) 72
5.3.2.6 Zusammenfassung 72
5.3.3 Die Houston Matrix (Little) 72
5.3.3.1 Domain knowledge gaps (Geschäftserfahrung) 75
5.3.3.2 Market uncertainty (Unsicherheit durch den Markt) 75
5.3.3.3 Technical uncertainty (Unsicherheit durch die Technik) 76
5.3.3.4 Zusammenfassung 76
5.4 Eigenschaften von Internetprojekten 77
5.4.1 Die Anzahl der beteiligten Personen 79
5.4.2 Die räumliche Verteilung des Teams 80
5.4.3 Die Fähigkeiten der Entwickler 81
5.4.4 Das Verhältnis zum Kunden 81
5.4.5 Die Unsicherheit durch Technik 82
5.4.6 Die Unsicherheit durch den Markt 83
5.4.7 Der Abhängigkeitsgrad des Projektes 84
5.4.8 Das Domänenwissen der Entwickler 85
6. Softwareentwicklung in jungen Internetunternehmen 87
6.1 Anforderungen an das Architekturdesign 87
6.1.1 Beachtung des Client/Server Paradigmas 89
6.1.2 Ausrichtung auf die Entwicklerfähigkeiten 90
6.1.3 Evaluation der technischen Möglichkeiten 90
6.1.4 Fokus auf nichtfunktionale Kernanforderungen 91
6.1.5 Unsicherheiten beachten 91
6.1.6 Beachtung von Entwurfskriterien 91
6.1.7 Validation der Softwarearchitektur 91
6.1.8 Verfügbarkeit 92
6.1.9 Aktualität 92
6.2 Anforderungen an den Entwicklungsprozess 92
6.2.1 Iterativ und Inkrementell 93
6.2.2 Ausrichtung auf das Architekturdesign 94
6.2.3 Ständige Anpassung 94
6.2.4 Berücksichtigung der Teamgröße 95
6.2.5 Berücksichtigung der Verteilung des Teams 96
6.2.6 Ausrichtung auf die Entwicklerfähigkeiten 97
6.2.7 Einbindung des Kunden 97
6.2.8 Berücksichtigung von Unsicherheitsfaktoren 98
6.2.9 Berücksichtigung von Abhängigkeiten 98
6.2.10 Berücksichtigung des Domänenwissens der Entwickler 98
7. Zusammenfassung und Ausblick 100
Literaturverzeichnis 103

Textprobe:

Kapitel 3.3.3, Der Faktor Mensch:

Der Faktor Mensch ist ein zentraler Bestandteil der agilen Methoden. Selbstorganisierende Teams, das Streben nach technischer Exzellenz sowie nach der fortschreitenden Verbesserung der eigenen Effektivität verlangen nach fähigen und motivierten Entwicklern. Nach Hruschka „(...) sind hoch motivierte, selbstständige, gut ausgebildete Projektteams, die dann aufgrund ihrer Erfahrungen situationsgerecht richtig entscheiden können, wie die Ziele effizient erreicht werden [eine der wesentlichen Voraussetzungen für die Anwendung agiler Prinzipien].“ Er konstatiert weiterhin: „Agilität setzt also nicht nur auf mutige, engagierte Mitarbeiter, sondern vor allem auch auf mutige, charismatische Führungspersönlichkeiten.“ Dies kann allerdings auch ein einschränkender Faktor sein. So stellt Constantine etwa kritisch fest: „There are only so many Kent Becks in the world to lead the team. All of the agile methods put a premium on having premium people (...).“ Die Fähigkeit der Entwickler ist also ein zentraler Erfolgsfaktor bei der Anwendung agiler Methoden. Um die Fähigkeiten bezüglich des Einsatzes von Entwicklungsmethoden zu beschreiben, leitet Cockburn von den drei Verständnisebenen des Aikido (Shu-Ha-Ri) drei Ebenen des Verständnisses für Softwareentwicklungsmethoden ab.148 Diese werden von Boehm/Turner angepasst, um sie sowohl für agile als auch für planungsgetriebene Methoden einsetzen zu können:

Level 3: Der Entwickler ist in der Lage, eine Methode zu überarbeiten und an neue, noch nie da gewesene Situationen anzupassen.

Level 2: Der Entwickler kann eine Methode an eine neue Situation anpassen (Präzedenzfall vorhanden).

Level 1A: Nach einem Training ist der Entwickler dazu in der Lage, stark vom eigenen Ermessen abhängige Methodenschritte (bspw. die Anpassung von user stories an Inkremente) durchzuführen. Mit zunehmender Erfahrung ist ein Aufstieg auf Level 2 möglich.

Level 1B: Nach einem Training ist der Entwickler dazu imstande, prozedurale Methodenschritte durchzuführen (z.B. eine simple Methode zu programmieren oder Programmierstandards einzuhalten).

Level -1: Der Entwickler besitzt evtl. technische Fähigkeiten, ist aber weder zur Zusammenarbeit mit anderen Entwicklern noch zur Verwendung einer Methodik bereit.

Nach Boehm/Turner können Level 1B Entwickler gut in Teams eingesetzt werden, die eine planungsgetriebene Methode verwenden und in einem stabilen Umfeld operieren. Ein Team das auf agile Methoden setzt und sich mit einer unsicheren und instabilen Situation konfrontiert sieht, kann jedoch durch 1B Entwickler verlangsamt werden. Projekte mit agilen Methoden können gut von Level 1A Entwicklern durchgeführt werden, wenn genügend Level 2 Entwickler vorhanden sind, um diese zu führen. Die Notwendigkeit, mindestens einen Level 2 (oder höher) Entwickler im Projektteam zu haben, wird auch von Cockburn betont. Level 2 Entwickler können, ebenso wie solche auf Level 3, für das Management agiler oder planungsgetriebener Teams gleichermaßen gut eingesetzt werden. Zusammenfassend kann gesagt werden, dass agile Methoden sich am besten einsetzen lassen, wenn die Entwickler zum Großteil mindestens Level 1A erreicht haben. Planungsgetriebene Methoden können hingegen im späteren Projektverlauf auch gut mit vielen Level 1B Entwicklern funktionieren.

Einfachheit:

Einer der Hauptunterschiede zwischen den traditionellen, planungsgetriebenen und den agilen Ansätzen der Softwareentwicklung ist der Umfang und der Detailgrad der Methoden. Traditionelle Methoden haben oft sehr detaillierte Vorgaben für Rollen, Aktivitäten, Prozesse, Techniken und Werkzeuge. Agile Methoden hingegen setzen auf minimale Prozesse, Dokumentation und Formalitäten. Das Hauptziel der agilen Methoden besteht darin, funktionierende Software zu liefern, die den Kunden zufrieden stellt. Dabei gilt es allerdings auch das Nebenziel zu beachten: Die Software muss auch in Zukunft wart- und anpassbar sein. Hierbei besteht die Schwierigkeit darin festzulegen, wie viel Zusatzaufwand nötig ist, um dieses Nebenziel zu erreichen. Nach Hruschka ist deshalb eine der Hauptfragen beim Einsatz agiler Methoden: „Wie viel ist ausreichend und wo beginnt die bürokratische Übertreibung?“ Er schlägt vor, dass das Vorgehensmodell zur Erreichung der Ergebnisse „gerade eben ausreichend sein“ soll. Cockburn benutzt dafür die Bezeichnung „barely sufficient“ und betont, dass dies nicht nur im Hinblick auf das Hauptziel (laufende Software), sondern auch für die Erreichung des Nebenziels gilt. Der Ansatzpunkt bei vielen agilen Methoden ist es, lediglich einige wenige zu Grunde liegende Regeln vorzugeben. Diese Regeln beschreiben allerdings nicht alles, was in einem Softwareentwicklungsprojekt getan werden muss. Die Idee hinter diesem Vorgehen liegt vielmehr darin, dass die zugrunde liegenden Regeln immer eingehalten werden müssen. Aufbauend auf diesen Regeln sollen, wenn nötig, im Laufe des Projekts Erweiterungen vorgenommen werden. Highsmith verweist hier auf die Erforschung komplexer adaptiver Systeme.157 Diese zeichnen sich u.a. durch das emergente komplexe Verhalten eines Systems auf der Basis von einfachen Regeln für die Interaktion zwischen seinen Individuen aus.

Einfachheit ist aber nicht nur das Ziel im Hinblick auf die Gestaltung des Projektmodells, sondern auch im Hinblick auf das Design der Software. Traditionelle Projektmodelle setzen oft auf eine ausgedehnte Designphase vor dem eigentlichen Beginn der Programmierung. Dies wird oft auch als „Big Design Up Front“ (BDUF) bezeichnet. Agile Methoden hingegen setzen, wie das Agile Manifest verdeutlicht, auf Emergenz,: „The best architectures, requirements, and designs emerge from self-organizing teams.“ Gegner des agilen Ansatzes sehen darin einen großen Schwachpunkt, da sie befürchten, dass durch das Fehlen einer expliziten Designphase unstrukturiertes Hacking Einzug hält. Fowler nimmt sich diesem Kritikpunkt mit seinem etwas provokativ formulierten Artikel „Is Design Dead?“ an. Das Ergebnis seiner Untersuchung ist, dass auch bei agilen Methoden wie XP Design stattfindet. Design ist somit nicht tot, hat aber seine Natur verändert. Anstelle des BDUF tritt bei den agilen Methoden das evolutionäre Design. Dies zeichnet sich dadurch aus, dass das Design wächst, während das System implementiert wird. Highsmith betont, dass bei agilen Ansätzen Planung, Architektur und Anforderungen keine Phasen, sondern Aktivitäten des Entwicklungsprozesses darstellen. Ihm zufolge kann ein agiler Ansatz genau soviel Zeit für diese Aktivitäten aufwenden, wie ein traditioneller – dies dann allerdings über multiple Iterationen hinweg. Martin sieht beim Softwaredesign die Gefahr, dass selbst ein gutes initiales Design mit der Zeit degradiert, wenn es nicht konstant an veränderte Anforderungen und Erkenntnisse angepasst wird. Der Ansatz des evolutionären Designs kommt dieser Erkenntnis entgegen, da hier das Design nicht von der Implementierung entkoppelt wird. Im Gegensatz zu sequenziellen Prozessmodellen (vgl. Kapitel 3.2.1) werden Tätigkeiten wie Analyse, Design, Implementierung und Testen nicht nacheinander, sondern parallel durchgeführt. Sowohl beim Testen als auch beim Codieren können bspw. Erkenntnisse gewonnen werden, die unmittelbare Auswirkungen auf das Design des Systems haben. Diese Erkenntnisse können beim evolutionären Design flexibler berücksichtigt werden, so dass das Design im Entwicklungsprozess ständig verbessert werden kann. Neben dem potenziellen Vorteil der Flexibilität besteht hier aber auch die nicht zu vernachlässigende Gefahr eines nicht-konvergierenden Designs.

In den Warenkorb
48,00 €

Arbeit zitieren:
Zihla, Martin Juli 2007: Softwareentwicklung in jungen Internetunternehmen, Hamburg: Diplomica Verlag

Schlagworte:
E-Business, Softwareentwicklung, Entwicklungsprozess, Architekturdesign, Internet-Startups

Entdecken Sie mehr zum Thema

diplom.de
Bachelor + Master Publishing

Hermannstal 119 k
22119 Hamburg

Fon: +49 (0) 40 655992-0
Fax: +49 (0) 40 655992-22

Service-Telefon

Rufen Sie uns an:
+49 (0) 40 655992-0

Mo-Fr
09.00-16.00 Uhr

diplom.de in den Medien

Folgen Sie uns bei Twitter & werden Sie diplom.de-Fan bei Facebook!
Schreibtipps unserer Lektoren, Neuigkeiten aus dem Verlagsalltag und das Expertenwissen unserer Autoren als Tweet & Post!
Wir freuen uns auf Sie!

diplom.de BACHELOR + MASTER PUBLISHING

Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Magisterarbeiten, Dissertationen und andere Abschlussarbeiten aus allen Fachbereichen und Hochschulen können Sie bei uns als eBook sofort per Download beziehen oder sich auf CD oder als Buch zusenden lassen. Seit mehr als 15 Jahren ist diplom.de der seriöse, professionelle und erfolgreiche Partner für die Veröffentlichung wissenschaftlicher Abschlussarbeiten.

© Diplomica Verlag GmbH 1996-2011, AG Hamburg HRB 80293 - GF Björn Bedey, USt-IdNr.: DE214910002 - Verkehrsnummer: 12285 - Impressum
Index der Arbeiten - Index der Autoren