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 [email protected]
Vertiefungsthemen • Model-driven Software Development
• Continuous Delivery
• Agile Software Development
Beleg- und Diplomarbeiten • Themenliste bei [email protected]