Continuous Software Developmentst.inf.tu-dresden.de/files/teaching/ws12/ring/2013... · Continuous...

Preview:

Citation preview

Continuous Software Development - Catching the Flow in Software Engineering -

Christian Wende, DevBoost GmbH

14. Januar 2013, Dresden

14. Januar 2013 3

Agenda

E!zienzprobleme im Entwicklungsvorgehen

Flow als wichtigstes Optimierungskriterium

Flow in der Softwareentwicklung

Konkrete Beispiele für Flow

Round-Up

14. Januar 2013 5

Wie ist Software-

entwicklung in der

Industriellen Praxis?

Quelle: Zerotournaround; Developer

Productivity Report 2012

26%!

26%!

30%!

39%!

53%!

Buggy Software!

Lack of motivation!

Bad Management!

Boring Tasks!

To much multitasking!

What makes developers less efficient!

14. Januar 2013 7

Agenda

E!zienzprobleme im Entwicklungsvorgehen

Flow als wichtigstes Optimierungskriterium

Flow in der Softwareentwicklung

Konkrete Beispiele für Flow

Round-Up

14. Januar 2013 8

Was ist Flow? [Csikszentmihalyi]

Scha"ensrausch - mit Gefühl von

- Kontrolle

- Mühelosigkeit

- Zeitlosigkeit

- Tätigkeitsverschmelzen

=> Ansatz zur E!zienzsteigerung in der Softwareentwicklung

14. Januar 2013 9

Voraussetzungen für Flow

Notwendige Bedingungen

A) Eindeutige Schritte

B) Direktes Feedback

C) Unterbrechungsfrei

D) Skills & Tools

14. Januar 2013 10

Herausforderung vs.

Fähigkeiten

14. Januar 2013 12

Agenda

E!zienzprobleme im Entwicklungsvorgehen

Flow als wichtigstes Optimierungskriterium

Flow in der Softwareentwicklung

Konkrete Beispiele für Flow

Round-Up

???

14. Januar 2013 13

Was ist der Job to be Done

in der Software-

entwicklung?

14. Januar 2013 14

How the Job

Is to be Done

nach Ullwick

Analyse Teamorganisation

Umsetzung

Flow

14. Januar 2013 16

Agenda

E!zienzprobleme im Entwicklungsvorgehen

Flow als wichtigstes Optimierungskriterium

Flow in der Softwareentwicklung

Konkrete Beispiele für Flow

Round-Up

14. Januar 2013 17

Flow in der Analyse

Beispiel:

Anforderungs-spezi#kation

A) Eindeutige Schritte

B) Direktes Feedback

Nutzungsszenarien beschreiben

D) Skills & Tools

C) Unterbrechungsfrei

Prüfbar durch Klienten

Ausführbar als Test

Natürlichsprachliche Kommunikation

14. Januar 2013 18

Natural Speci#cation

NatSpec •  De#nition von Anforderungen in natürlicher Sprache

•  Ausführung durch Abbildung auf Unit Tests [Demo]

14. Januar 2013 19

Flow in der Team-organisation

Beispiel:

Aufgaben-planung

A) Eindeutige Schritte

B) Direktes Feedback

Todoliste

D) Skills & Tools

C) Unterbrechungsfrei

Daily Chronicle

Transparent und übergreifend

Natürliche Sprache, Reminder, Aggregatoren, Generatoren

14. Januar 2013 20

Organisation mit

SmartText

SmartText •  Natürlichsprachlicher Text als universales Medium zur

Arbeitsorganisation –  Todos (Aufgaben, Erinnerungen, Priorisierung) –  Kontakte (Daten, Verlauf ) –  Projekte (Planung, Durchführung) –  Marketing (Artikel, Social Media, etc) –  Events (Ort)

•  Annotation mit Semantik über HashTags (#todo, #event)

•  Interpreter zur Automatisierung

14. Januar 2013 21

Todos & Chronicle

14. Januar 2013 22

Events & Website

14. Januar 2013 23

Events & Website

14. Januar 2013 24

Flow in der

Umsetzung

Beispiel: JPA

Persistenzschicht

A) Eindeutige Schritte

B) Direktes Feedback

Prozeß und Abstraktion

D) Skills & Tools

C) Unterbrechungsfrei

Sofortige Validierung

Hohe Automatisierung

Spezielle IDE

14. Januar 2013 25

Hibernate DSL

HEDL •  Domänenspezi#sche Sprache für Java Persistence API (e.g. JPA)

•  Generierung von Entitäten, DAOs und Testfällen [Demo]

14. Januar 2013 27

Agenda

E!zienzprobleme im Entwicklungsvorgehen

Flow als wichtigstes Optimierungskriterium

Flow in der Softwareentwicklung

Konkrete Beispiele für Flow

Round-Up

14. Januar 2013 28

A) Eindeutige Schritte

Autofahrt von Dresden nach Rom

Google Maps Kartennavigation

50 Schritte 50 Schritte

Routenanfrage: 30 sec Anhalten: 30 sec (50 mal)

Ausdrucken: 30 sec Nachschlagen: 30 sec (50 mal)

Abfahren: 30 sec (50 mal)

1 min 75 min + 18 Verkehrsverstöße

Die faszinierende Mathematik

des Flow

14. Januar 2013 29

A) Eindeutige Schritte

B) Direktes Feedback

Software entwickeln (35h Programmieraufwand, 50 Commits)

CI System (z.B. Jenkins) Lochkarte

50 Server-Builds pro Woche 5 Rechennächte pro Woche kompilieren

50 * 5 min warten 50 * eine Nacht warten

35 h programmieren 5 h Leerlauf

35 h programmieren 2 Monate Leerlauf

Die faszinierende Mathematik

des Flow

14. Januar 2013 30

A) Eindeutige Schritte

B) Direktes Feedback

C) Unterbrechungsfrei

Emails bearbeiten

Sofort 1 mal am Abend

50 Mails über Tag verteilt 50 Mails einmal am Abend

Laden: 5 sec (50 mal) Laden: 5sec

Lesen: 30 sec (50 mal) Lesen: 30 sec (50 mal)

Antworten: 60 sec (10 mal) Antworten: 60 sec (10 mal)

Arbeit fortsetzen: 60 sec (50 mal) Feierabend: 0 sec

1,5 h 0,5 h

Die faszinierende Mathematik

des Flow

14. Januar 2013 31

A) Eindeutige Schritte

B) Direktes Feedback

D) Skills & Tools

C) Unterbrechungsfrei

Kellerloch ausheben (250 m3)

Bagger Schaufel

150 m3 am Tag 6 m3 am Tag

2000 kcal Energieverbrauch 4000 kcal Energieverbrauch

2 Tage Bagger fahren 40 Bananen essen

2 Monate im Erdloch 1.460 Bananen essen

Die faszinierende Mathematik

des Flow

14. Januar 2013 32

Den Flow selbst

erfahren

Freizeit Trial Versionen (Ende Jan 2013) •  NatSpec: nat-spec.com

•  HEDL: hibernate-dsl.org

•  Testlizenzen bei christian.wende@devboost.de

Vertiefungsthemen •  Model-driven Software Development

•  Continuous Delivery

•  Agile Software Development

Beleg- und Diplomarbeiten •  Themenliste bei christian.wende@devboost.de

Disclaimer.

Danke!

Fragen?

http://www.devboost.de

christian.wende@devboost.de

14. Januar 2013 33

Recommended