AIT GmbH & Co. KG – Ihre Software effizienter entwickelt.
WIE INDIVIDUALISIERUNG UND
STANDARDISIERUNG IN EINKLANG
GEBRACHT WERDEN KÖNNEN
EIN BRANCH FÜR JEDEN KUNDEN?
2
AGENDA
Die Unternehmen und ihre Produkte
Zwei Unternehmen, ein Problem
– die Ursachenanalyse
Zähme das Biest
3
© WITTENSTEIN
Unsere Kompetenzen
Beratung zu Antriebssystemen
Komponentenentwicklung
und Engineering
Anforderungsanalyse / Machbarkeit
Hard- und
Softwareentwicklung
Erprobung, Produktzulassung
Musterbau, Prototypen
kleine und
mittlere Serien
250 kVA
0,3…1 kVA
15 kVA
2 kVA
6
AIT GESCHÄFTSBEREICHEA
pplic
ation
LifeC
ycle
Managem
ent
TF
S / V
S C
onsultin
g
• TFS Evaluierung, Installation &
Einführung
• Prozessberatung & -modellierung:
• Agil (Scrum, Kanban, …)
• Formal (V, CMMI,…)
• Schulungen
• Customizing
• Toolentwicklung
• Anbindung und Integration in
bestehende Systeme
• Migrationen
.NE
T S
oft
ware
-E
ntw
icklu
ng
• Systemanalyse und Design
• Architekturberatung
• Erstellung der Spezifikation
• Implementierung:
• Managed Nearshore
• Vor-Ort
• Testing / QA
• Kompetenzaufbau / Coaching
• Externe Projektleitung
• Cloud Computing
BERATUNG ENTWICKLUNG
7
PRODUKTE
8
PRODUKTE UND TOOLS
Kostenlose TFS Tools
http://www.aitgmbh.de/downloads/kostenlose-tfs-tools.html
Automated Servicing and
Administration Platformhttp://www.tfsasap.com/
Software-Lokalisierunghttp://www.visual-localize.de/
AIT GmbH & Co. KG – Ihre Software effizienter entwickelt.
DIE URSACHENANALYSE
ZWEI UNTERNEHMEN –EIN PROBLEM
9
DER URSPRUNG
ALLEN ÜBELS
Erstes
Kundenprojekt
Zweites
Kundenprojekt
Drittes
Kundenprojekt
Einfaches
Branch-Modell
if-else / switch-
case
Konfigurations-
datei
13
DER URSPRUNG
ALLEN ÜBELS
Erstes
Kundenprojekt
Zweites
Kundenprojekt
Drittes
Kundenprojekt
Einfaches
Branch-Modell
if-else / switch-
case
Konfigurations-
datei
N-tes
Kundenprojekt
Komplexes
Branch-Modell
„Clone & Own“
15
PROBLEM-URSACHEN
Zu Beginn einer Produktentwicklung steht die Erfüllung
von Kundenwünschen an erster Stelle
Nichtfunktionale Qualitätsaspekte werden zum Teil
niedriger priorisiert
Modularisierung, Erweiterbarkeit, Wartbarkeit
Programmier-Prinzipien
KISS, YAGNI, GALAP
16
HERAUSFORDERUNGEN
Kundenspezifische Anforderungen bei immer gleichem
Grundproblem
Viele Kunden mit gleichem Entwicklungsteam
betreuen
Kontinuierlicher Informationsfluss zwischen Produkten
17
DIE KERNFRAGE
Welcher Teil der Produktlösung ist spezifisch und
welcher Teil ist allgemein?
Aufteilung der Anwendung in Projekt und
Komponenten
Zwei Lösungsräume:
Produkt mit Erweiterung vs. Produktlinie
18
AIT GmbH & Co. KG – Ihre Software effizienter entwickelt.
INDIVIDUALISIERUNG DURCH
DEPENDENCY MANAGEMENT
DIE PRODUKTLINIE
19
INDIVIDUALISIERUNG
DURCH CLONE & OWN
Individualisierung durch
„Clone & Own“
Individuelle Prozesse
Schlechte Wartbarkeit
Schlechte innere Qualität
Zunehmende Komplexität
Hohe Divergenz zwischen Branches trotz immer
gleicher Grundproblematik
20
GRUNDPROBLEMATIK DURCH
CLONE & OWN
Kunde 2
E-Mobility
Kunde 1
2012
2008 2009
2010
2013
2011
2014
„All in one“ 2010
Kunde 3
Kunde 5
Kunde 4
Kunde 6
Kunde 7
Kunde 8
AUF DER SUCHE NACH DER BASIS…
21
INDIVIDUALISIERUNG
DURCH PRODUKTLINIE
Produktlinie
„Wiederverwendung
von Komponenten“
Aufteilung des Produkts in veränderliche und
unveränderliche Bestandteile
Individualisierung zur Compilezeit
Dependency-Management zur
Produktindividualisierung
„Clone & Own“
24
INDIVIDUALISIERUNG
VON PRODUKTEN
Komponenten sind gegen Veränderungen geschützt
Kein „Checkin“ des Core möglich
Versionssicherheit und einfache Updates
30
AIT GmbH & Co. KG – Ihre Software effizienter entwickelt.
INDIVIDUALISIERUNG MITTELS
PAKET-VERWALTUNG
DAS STANDARD-PRODUKT
33
AUSGANGSLAGE
TFS ASAP
Scheduled
Automations
Triggered
Automations
Common
Features
Customer
Custom
Automations
Custom
Extensions
35
AUSGANGSLAGE
TFS ASAP TFS ASAP online
Scheduled
Automations
Triggered
Automations
Common
Features
Scheduled
Automations
Triggered
Automations
Common
Features
Customer
Custom
Automations
Custom
Extensions
36
VERGLEICH
WITTENSTEIN
Komponenten sind immer gleich
Der Projekt-Rahmen (das Framework) bestimmt die
Individualisierung und wird individualisiert
AIT
Komponenten werden individualisiert
Hinzufügen neuer Komponenten
Erweitern bestehender Komponenten
Das Framework bleibt immer gleich
37
PAKET-STRUKTUR
IDEE
Software als Baukasten
Framework als Standard-Software
Basis-Funktionalitäten als Pakete
Kundenspezifische Funktionen als Erweiterung
Framework-Erweiterung
Paket-Erweiterungen
38
LOSE KOPPLUNG VON
KOMPONENTEN
Applikation Interfaces
Interface 1
Interface 2
Interface 3
Klasse 1Klasse 2
Klasse 3
Interface 1
Interface 2
Interface 3
39
LOSE KOPPLUNG VON
KOMPONENTEN
Applikation Interfaces
Interface 1
Interface 2
Interface 3
Dependency
Injection
Framework
Klasse 1Klasse 2
Klasse 3
Instanz 1
Instanz 2
Instanz 3
40
PAKETE STRUKTUR
„Standard-
Software“
TFS ASAP
Common
Features
Triggered
Automations
Scheduled
Automations
41
PAKETE STRUKTUR
„Standard-
Software“
TFS ASAP
Common
Features
Triggered
Automations
Custom
Extension 2
Scheduled
Automations
Custom
Automation
Custom
Extension 1
42
PAKETE STRUKTUR
„Standard-
Software“
TFS ASAP
Common
Features
Triggered
Automations
Custom
Extension 2
Scheduled
Automations
Custom
Automation
Custom
Extension 1
„Standard-
Software“
TFS ASAP
online
43
MODULARISIERUNG
„Standard-
Software“
TFS ASAP Standard
Komponente
Kunden
Erweiterung
Kunden
Komponente
DEFINITION VON ERWEITERUNGSPUNKTEN
Wo sind Anpassungen sinnvoll und nötig?
Laden zusätzlicher Funktionalitäten
Erweitern von bestehenden Funktionen
44
UMSETZUNG
PAKET-VERWALTUNG
Komponenten als NuGet-Packages bereitgestellt
Einfache Implementierung von Extensions und
neuen Komponenten
Komponenten sind 100%ig gegen Veränderungen
geschützt
Versionssicherheit und einfache Updates
Debug-Symbole auf separatem Server bereitgestellt
47
ENDERGEBNIS
TFS
ASAP
TFS
ASAP
online Scheduled
Automations
Triggered
Automations
Common
Features
Customer
Custom
Automations
Custom
Extensions
Framework Komponenten Erweiterungen
49
ZUSAMMENFASSUNG
Unterscheidung von 2 Grundkonzepten
Produktlinie – Jedes Projekt ist ein eigenes Produkt
Standard-Produkt mit Erweiterungen
Wann in der Entwicklung kann individualisiert werden?
Zur Entwicklungszeit
Zur Laufzeit
Grundlagen müssen einen Schritt vorher geschaffen werden
Quellcode-Struktur und Branching
Anwendungsarchitektur und Technologien
50
FAZIT
Konzept für Individualisierung ist abhängig von
Rahmenbedingungen
Initialer Aufwand darf nicht unterschätzt werden
Es gibt passende Konzepte zur Entwicklung von
kundenspezifischer Software!
Individualisierung und effektive Ressourcen-Nutzung sind
kein Widerspruch!
51
WIR UNTERSTÜTZEN SIE
+49 151 55052634
AIT GmbH & Co. KGLeitzstr. 45, 70469 Stuttgart
www.aitgmbh.de
BERATUNGAgile ALM und TFS
.NET und Architektur
ENTWICKLUNGDienstleister für individuelle
Lösungen mit .NET und Azure
© AIT GmbH & Co. KG – Alle genannten und gezeigten Marken oder Warenzeichen sind eingetragene Marken oder eingetragene Warenzeichen ihrer jeweiligen Eigentümer und
ggf. nicht gesondert gekennzeichnet. Aus dem Fehlen der Kennzeichnung kann nicht geschlossen werden, daß es sich bei einem Begriff oder einem Bild nicht um eine
eingetragene Marke oder ein eingetragenes Warenzeichen handelt.
52
Top Related