EIN BRANCH FÜR JEDEN KUNDEN? - entwicklertag.de · AIT GmbH & Co. KG –Ihre Software effizienter...

46
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

Transcript of EIN BRANCH FÜR JEDEN KUNDEN? - entwicklertag.de · AIT GmbH & Co. KG –Ihre Software effizienter...

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

WITTENSTEIN AG - Firmenhauptsitz in Igersheim/Harthausen

4

© 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

Einfaches

Branch-Modell

11

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

GRUNDPROBLEMATIK DURCH

CLONE & OWN

22

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

CORE-ENTWICKLUNG

25

BRANCHING-MODELL

CORE-ENTWICKLUNG

26

MAPPING IN LOKALE

VERZEICHNISSE

Mapping

27

INDIVIDUALISIERUNG

VON PRODUKTEN

28

INDIVIDUALISIERUNG

VON PRODUKTEN

29

INDIVIDUALISIERUNG

VON PRODUKTEN

Komponenten sind gegen Veränderungen geschützt

Kein „Checkin“ des Core möglich

Versionssicherheit und einfache Updates

30

INDIVIDUALISIERUNG

VON PRODUKTEN

31

INDIVIDUALISIERUNG

VON PRODUKTEN

32

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

34

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

45

UMSETZUNG

46

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

NUGET PAKETE

BUILD PROZESS

48

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

[email protected]

+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