Kulturen der Software Entwicklung 2008 04 08

26
„The Clash of Cultures“: Quo vadis Software Entwicklung? Elmar Borgmeier, syngenio AG Vortrag auf dem BuildMe Fachseminar der arago AG, 04/2008

description

Vortrag von Elmar Borgmeier von Syngenio (www.syngenio.de) über die Zukunft der Software-Entwicklung.

Transcript of Kulturen der Software Entwicklung 2008 04 08

Page 1: Kulturen der Software Entwicklung 2008 04 08

„The Clash of Cultures“:Quo vadis Software Entwicklung?Elmar Borgmeier, syngenio AG

Vortrag auf dem BuildMe Fachseminar der arago AG, 04/2008

Page 2: Kulturen der Software Entwicklung 2008 04 08

2www.syngenio.de arago Fachseminar 04/2008

Agenda

Software Entwicklung und Kultur

Typologie der Software-Entwicklungs-Kulturen Die Typen einzeln betrachtet

Quo vadis Software Entwicklung: Trend

Eine Prognose

Page 3: Kulturen der Software Entwicklung 2008 04 08

3www.syngenio.de arago Fachseminar 04/2008

syngenio – We make IT work!

unabhängiges IT-Beratungs- und -Servicehaus

Niederlassungen: München, Stuttgart, Wiesbaden, Bonn, Region Nord im Aufbau

Branchenschwerpunkte Finanzdienstleister, Telekommunikation und Industrie

IT-Beratung, Realisierung von Lösungen, Application Management

Software-Entwicklung: Individualentwicklung, Systemintegration (SOA) Methodenberatung: Projektmanagement Prince2, Agile Software-

Entwicklung, Agiles QM, IT Service Management nach ITIL Beispiele: Webportale, Middleware (Java EE), BPM/Workflow

Page 4: Kulturen der Software Entwicklung 2008 04 08

4www.syngenio.de arago Fachseminar 04/2008

Referenzen - Unsere Kunden (Auszug)

Page 5: Kulturen der Software Entwicklung 2008 04 08

5www.syngenio.de arago Fachseminar 04/2008

Software-Entwicklung und Kultur

Was ist Kultur? The deposit of knowledge, experience, beliefs, values, attitudes,

meanings, hierarchies, religion, notions of time, roles, spatial relations,

concepts of the universe, and material objects and possessions acquired

by a group of people […] through individual and group striving.

Culture is acquired. It helps people categorize and predict their world by

teaching them habits, rules, and expectations from the behavior of

others. It helps people "read" the world's signals - the meaning of

symbols, of artifacts, gestures, and accoutrements of others. Culture also

molds the way people think: what their motivations are, how they

categorize things, what inference and decision procedures they use, and

the basis on which they evaluate themselves. It sets the gestures, space,

and timing of interactions.

Definition nach: Larry Samovar and Richard Porter

?!

Page 6: Kulturen der Software Entwicklung 2008 04 08

6www.syngenio.de arago Fachseminar 04/2008

Elemente einer Kultur

Werte Erfahrung, Einstellungen, Glaubenssätze und Tabus

Art zu denken Welche Strukturen wahrgenommen werden

Wie wir uns selbst bewerten

Soziale Organisation Rollen und Entscheidungs-Verfahren

Erwartung an das Verhalten anderer

Formen der Interaktion

Werkzeuge

Page 7: Kulturen der Software Entwicklung 2008 04 08

7www.syngenio.de arago Fachseminar 04/2008

Ethnologie

Fraunhofer-FIT Untersuchung zum Werkzeugeinsatz bei Software-Entwicklungs-

organisationen und Teams

University of California, Irvine Untersuchung des Einfluss von Werten auf die Arbeitsweisen und

Werkzeuge in Open Source Projekten

Eigene Erfahrung Jeder hat eine Vorstellung von Software-Entwicklung

„Intuitive Kulturerwartung“: Prägt Bewertung in „Gut“ und „Schlecht“

Page 8: Kulturen der Software Entwicklung 2008 04 08

8www.syngenio.de arago Fachseminar 04/2008

Typologie

Interaktion mit dem

Auftraggeber

Entwicklungs-Werkzeuge

Software-Entwicklungsprozess

Charakteristik der Ergebnisse

Software-& System-Architektur

Page 9: Kulturen der Software Entwicklung 2008 04 08

9www.syngenio.de arago Fachseminar 04/2008

Archäologie

Software-& System-

Architektur:

entsprechend Zielsystem

• Lastenheft / Pflichtenheft

• Fachkonzept / DV-Konzept

Design

Implementierung

Test

Editor

Spezifikation

Compiler Linker Debugger

Page 10: Kulturen der Software Entwicklung 2008 04 08

10www.syngenio.de arago Fachseminar 04/2008

Die Software Kulturen

Die Prozess-Integrations-Kultur

Die Modell- und Generator-Kultur

Die interaktiv Kultur

Spezialkulturen als Sonderfälle

Page 11: Kulturen der Software Entwicklung 2008 04 08

11www.syngenio.de arago Fachseminar 04/2008

Generatoren-Ansatz mal plakativ:Die Programmiermaschine

Beispiel (Werbegrafik):

Page 12: Kulturen der Software Entwicklung 2008 04 08

12www.syngenio.de arago Fachseminar 04/2008

Modell und Generator-Kultur

Model Driven Architecture (MDA) CIM: Computational Independant Model

PIM: Platform Independant Model

PSM: Platform Specific Model

Fokus auf Erstellung des (fachlichen) Modells statt des Programmcodes

Im UML oder Domain Specific Languages

Generieren des eigentlichen Programmcodes Durch Modelltransformationen

Hoher Abstraktionsgrad, sehr formales Arbeiten

Generator für Zielarchitektur muss existieren

Page 13: Kulturen der Software Entwicklung 2008 04 08

13www.syngenio.de arago Fachseminar 04/2008

Typologie Modell- und Generator-Kultur

Auftraggeber-Interaktion:

Modell-Entwicklung:muss alle semantischen Vorgaben

enthalten

Software-Entwicklungs-Prozess:

Hauptaufwand: ModellierungGenerierung automatisiertNachbearbeitung manuell

Charakteristik der Ergebnisse:

Zweckmäßig, Fachlich Korrekt

Software-& System-Architektur:

Eine der möglichen Zielarchitekturen des Generators

Modeler GeneratorModell

Page 14: Kulturen der Software Entwicklung 2008 04 08

14www.syngenio.de arago Fachseminar 04/2008

Prozessintegrations-Kultur

Fokus auf Betrachtung des Software Engineering Prozesses

Unterstützung der unterschiedlichen Rollen und auch Nicht-Programmier-Aktivitäten durch integrierte Umgebungen

Beispiele: Application Life Cycle Management

RUP

CMMI, SPICE, V-Modell XT

zum Teil nur Prozess- / Projektmanagement,zum Teil auch Gesamtverständnis der Software-Entwicklung

Page 15: Kulturen der Software Entwicklung 2008 04 08

15www.syngenio.de arago Fachseminar 04/2008

Unified Process

Gesamtdefinition eines Software Engineering Process (framework)

4 Phasen

6 Kernprozesse

Merkmale: Requirements über Use Cases

UML-Modelle

Architektur-zentrierter Entwurf

Prototypen

Iterative Entwicklung

Page 16: Kulturen der Software Entwicklung 2008 04 08

16www.syngenio.de arago Fachseminar 04/2008

IBM Rational Method Composer

Integrierte Produkt-Suite mit wieder verwendbaren Prozess-Komponenten

IBM Rational Method Composer: Werkzeug zur Definition von Projekt-Prozesses aus einer

Prozess-Bibliothek mit Prozess-Komponenten

Enthält RUP, aber nicht mehr ausschließlich RUP

„Extensive Guidelines for all Team members and all phases of the lifecycle“

Templates für Work Products

Page 17: Kulturen der Software Entwicklung 2008 04 08

17www.syngenio.de arago Fachseminar 04/2008

Typologie Prozessintegrations-Kultur

Auftraggeber-Interaktion:

Im Rahmen des Prozesses zu definieren: Requirements (Use Cases), Iterations-Ergebnisse

Software-Entwicklungs-Prozess:

Komplexe Entwicklungsprojektebesser beherrschen

Charakteristik der Ergebnisse:

Werden auch unter schwierigen Bedingungen geliefert –

mit ggf. beachtlichem Aufwand

Software-& System-Architektur:

Architektur wird im Projekt definiert, keine Abhängigkeit

von einer spezifischen Architektur.

Integrierte Umgebungen: mit z.B. Prozess- und UML-Modellierer,

Aufgaben der Nicht-Programmierer integriert

Page 18: Kulturen der Software Entwicklung 2008 04 08

18www.syngenio.de arago Fachseminar 04/2008

Die interaktiv-Kultur

Arbeitsweisen wie aus Werbeagenturen

Charakteristiken: Dynamic Languages

User Centric Design

Mündliche Abstimmungen

Viele Iterationen

Schnell mal was programmieren

Sich die richtigen Tools nach Bedarf zusammensuchen

Page 19: Kulturen der Software Entwicklung 2008 04 08

19www.syngenio.de arago Fachseminar 04/2008

Dynamic Languages / Tools

Sprachen / Frameworks: Groovy / Grails, Ruby,JRuby / Rails, Scala, Jython, …

AJAX-Toolkits und Interactive Web development Kits: JSF, Google Web Toolkit, Microsoft Silverlight, …

Adobe Flex bzw. AIR

Open Source Basis-Komponenten JPA, Hibernate, AspectJ, JBoss Seam …

Eclipse: die unendlich erweiterbare Entwicklungsumgebung Codechecker, Bugtracker, Installer, DB-Zugriffe, Entwicklungs-

umgebung für alles, Build- und Versionsmanagement, …

Page 20: Kulturen der Software Entwicklung 2008 04 08

20www.syngenio.de arago Fachseminar 04/2008

Typologie Interaktiv-Kultur

Auftraggeber-Interaktion:

Interaktiv in Form von häufigenAbstimmungen

Software-Entwicklungs-Prozess:

Agile Software-Entwicklungoder echtes „Hacken“

Charakteristik der Ergebnisse:

Schnell und/oder

cool

Software-& System-Architektur:

Architektur-Risiko:Vielfalt an Architektur-Variantenz.T. direkt mit Tools verknüpft

OS Tool x

OS Tool y

Editor

OS Tool z

GUI Tool A

Page 21: Kulturen der Software Entwicklung 2008 04 08

21www.syngenio.de arago Fachseminar 04/2008

Spezialkulturen

Spezielle Bedingungen bringen Software-Kulturen hervor, die sich kaum übertragen lassen.

Beispiel „Guru-Kultur“: Basiert auf der Fokussierung auf einen anerkannten Vordenker

Wirkt durch persönliche Überzeugung.

Beispiel Google: Extreme Inkubations-Kultur im Großen

Unabhängig von Fachabteilung und Business Case

Fördert Selbstverantwortung, lenkt durch Incentives (Geld und

Aufmerksamkeit)

Page 22: Kulturen der Software Entwicklung 2008 04 08

22www.syngenio.de arago Fachseminar 04/2008

Quo Vadis Software-Entwicklung?

Die Prozess-Integrations-Kultur

Die Modell- und Generator-Kultur

Die interaktiv Kultur

Spezialkulturen als Sonderfälle

Page 23: Kulturen der Software Entwicklung 2008 04 08

23www.syngenio.de arago Fachseminar 04/2008

Clash of Cultures:Mulitkulturelle Ratlosigkeit

Die Prozess-Integrations-Kultur

Die Modell- und Generator-Kultur

Die interaktiv Kultur

Page 24: Kulturen der Software Entwicklung 2008 04 08

24www.syngenio.de arago Fachseminar 04/2008

Patchwork-Kulturen und Evolution

Kommender Trend: der Aufweichung von Kultur-Merkmalen Bildung von Cross Overs: Patchwork-Kulturen Technisches Indiz: Trend zu Plattformen statt Systemen (Eclipse,

Java)

Systemtheoretisch gesehen Die Kulturen werden aus ihren stabilen Zuständen herausgerissen

und befinden sich in einem instabilen Übergangszustand Sie werden die Instabilität in den kommenden Jahren verstärkt

erkennen Es werden sich neue stabile Zustände entwickeln

Evolutionäre Auswahl

Page 25: Kulturen der Software Entwicklung 2008 04 08

25www.syngenio.de arago Fachseminar 04/2008

Prognose: Beyond Patchwork

Werkzeuge, Prozesse und Ergebnis-Charakteristik verlieren ihre Bedeutung als Fixpunkte einer Kultur

„Plattformen“ als allgemeines Prinzip ermöglichen höhere Flexibilität

Kultur wird definiert durch wenige feste Prinzipien

Häufige Merkmale zukünftiger Kulturen (subjektive Einschätzung): „No Nonsense“: KISS statt Fancy. (Usability wird Commodity)

Retro: Informatik-Klassiker wie Algorithmen, Modularisierung und

sauberer Code werden wichtige Werte werden / bleiben

Ergebnisorientiert: Prototypen und Testdatenmanagement werden

wichtiger und besser werden (Modelle sind auch Prototypen)

Explorativer: Umgang mit Altsystemen als Herausforderung

Page 26: Kulturen der Software Entwicklung 2008 04 08

26www.syngenio.de arago Fachseminar 04/2008

Vielen Dank für Ihre Aufmerksamkeit

Welche Kulturen erkennen Sie?

Was ist Ihre Prognose?

Kontakt:

Elmar Borgmeier

CIO syngenio AG

Elmar(.)Borgmeier(at)syngenio.de

0711 / 4903 - 401