Slide 1

Slide 1 text

Bessere Präsentationen für Entwickler(innen) und Architekt(innen)

Slide 2

Slide 2 text

Michael Plöd Fellow bei INNOQ 150+ Konferenzvorträge @bitboss https://speakerdeck.com/mploed

Slide 3

Slide 3 text

Liebe Software Entwickler(innen), ich will Euch nicht zur dunklen Seite der Macht ziehen!

Slide 4

Slide 4 text

Es gibt zu viele schlechte und langweilige Präsentationen

Slide 5

Slide 5 text

Auch ich habe mit schlechten Präsentationen angefangen

Slide 6

Slide 6 text

Beispiel

Slide 7

Slide 7 text

PowerPoint Skills sind unwichtig

Slide 8

Slide 8 text

PowerPoint Material- suche Der übliche Prozess besteht aus 2 Schritten Schlechte Präsentation

Slide 9

Slide 9 text

Gute Präsentation Argumente Design Vortrag

Slide 10

Slide 10 text

Jede(r) kann gute Präsentationen erstellen, ...

Slide 11

Slide 11 text

...wenn man einem einfachen Prozess folgt...

Slide 12

Slide 12 text

Fünf einfache Schritte......

Slide 13

Slide 13 text

Schritt 1: Zielgruppenanalyse

Slide 14

Slide 14 text

Schritt 2: Stoff- und Materialsammlung

Slide 15

Slide 15 text

Schritt 3: Argumentation

Slide 16

Slide 16 text

Schritt 4: Layout

Slide 17

Slide 17 text

Schritt 5: Vortrag

Slide 18

Slide 18 text

Wir arbeiten am Anfang Analog

Slide 19

Slide 19 text

Schritt 1: Zielgruppenanalyse

Slide 20

Slide 20 text

Ihr seid nicht die
 Helden

Slide 21

Slide 21 text

Das Publikum ist der Held

Slide 22

Slide 22 text

einfache Fragen zur Analyse der Zielgruppe 7 Quelle: Nancy Duarte - Resonate

Slide 23

Slide 23 text

Was beschäftigt meine Zielgruppe? Welchen Widerstand wird es geben? Wie kann ich sie am besten erreichen? Was soll meine Zielgruppe tun? Wie ist das Publikum? Wie kann ich ihr Problem lösen? Warum sind sie hier?

Slide 24

Slide 24 text

Auch eine Analyse des Umfelds ist nötig

Slide 25

Slide 25 text

Schritt 2: Materialsammlung

Slide 26

Slide 26 text

Sammlung von Ideen mit Stift und Papier OFFLINE

Slide 27

Slide 27 text

Beispiel: Ideensammlung

Slide 28

Slide 28 text

ee Idee Idee Idee Idee Idee Idee Idee Idee Idee Id Idee Idee Idee Sammeln, bewerten, auswählen

Slide 29

Slide 29 text

Zuerst: Unstrukturiert und offen sammeln N+1 Problem 2nd Level Cache Batch Fetching Lazy Loading Eager Fetching Karthesi- sches Produkt Hibernate Statistics Bind Variablen Ignorieren Log Files bzgl. Queries Subselect Fetching Query Cache Session und 1st Level Cache

Slide 30

Slide 30 text

Log Files bzgl. Queries Danach: Gruppieren N+1 Problem 2nd Level Cache Eager Fetching Karthesi- sches Produkt Hibernate Statistics Bind Variablen Ignorieren Subselect Fetching Query Cache Session und 1st Level Cache Lazy Loading Batch Fetching Fetching Strategien Probleme Analyse Caching

Slide 31

Slide 31 text

Log Files bzgl. Queries 2nd Level Cache Hibernate Statistics Query Cache Session und 1st Level Cache Eager Fetching Subselect Fetching Lazy Loading Batch Fetching Fetching Strategien Es gibt 2 Haupt-
 Probleme Es gibt 2 Ansatz- punkte für Tuning Caching Analyse Tools Zuletzt: Botschaften N+1 Problem Karthesi- sches Produkt

Slide 32

Slide 32 text

Schritt 3: Argumentation + Story

Slide 33

Slide 33 text

Jede Präsentation hat eine Hauptbotschaft Sie ist das Minimum, was die Zuhörer mitnehmen sollten

Slide 34

Slide 34 text

Logische Gruppe Botschaft Antwort Antwort Antwort Frage

Slide 35

Slide 35 text

Logische Gruppe Jeder kann gute Präsentationen erstellen Prozess Argumentations- techniken Design
 Grundlagen warum?

Slide 36

Slide 36 text

M E C E utually xclusive ompletely xhaustive

Slide 37

Slide 37 text

ME CE Aussage Aussage Aussagen überschneiden sich nicht hinsichtlich ihrer Inhalte Antworten reichen aus, um Botschaft unangreifbar zu machen

Slide 38

Slide 38 text

Logische Kette Botschaft Neutrale Aussage (Situation) Kommentierende Aussage (Complication) Folgerung aus Situation und Complication warum? +

Slide 39

Slide 39 text

Logische Kette Der Test von Projekt X soll zwei Wochen ausgesetzt werden Es gibt im aktuellen Test Release zahlreiche Fehler Die Fehler verhindern eine reibungslose Test- Durchführung Deshalb sollte Test ausgesetzt werden um Entwicklern die Möglichkeit zu geben die Fehler auszubessern warum? +

Slide 40

Slide 40 text

Logische Kette und logische Gruppe können kombiniert werden +

Slide 41

Slide 41 text

Kette untermauert mit Gruppen +

Slide 42

Slide 42 text

Gruppe untermauert mit Gruppen

Slide 43

Slide 43 text

Was haben sie gemeinsam?

Slide 44

Slide 44 text

Eine Story die unterschiedliche Zielgruppen anspricht

Slide 45

Slide 45 text

Ethos Pathos Logos

Slide 46

Slide 46 text

Auf Basis unserer Argumentationsketten erstellen wir ein Storyboard

Slide 47

Slide 47 text

Was ist? Was kann sein? Die Sparkline hilft uns bei der Strukturierung der Story Quelle: Nancy Duarte - Resonate

Slide 48

Slide 48 text

Was ist? Was kann sein? Der STAR-MOMENT ist das Highlight der Präsentation Quelle: Nancy Duarte - Resonate

Slide 49

Slide 49 text

Schritt 4: Layout + Design

Slide 50

Slide 50 text

Ursprungslayout von Ideen mit Stift und Papier OFFLINE

Slide 51

Slide 51 text

Beispiel: Layout

Slide 52

Slide 52 text

3einfache Regeln für die Gestaltung von Folien

Slide 53

Slide 53 text

Eine Botschaft pro Folie

Slide 54

Slide 54 text

Einfache Folien

Slide 55

Slide 55 text

Schau- bilder anstelle von Worten

Slide 56

Slide 56 text

Visualisierung von Daten

Slide 57

Slide 57 text

Präsentationsprogramme bieten zu viele Diagrammarten 0 25 50 75 100 2007 2009 0 17,5 35 52,5 70 0 25 50 75 100 2007 2010 7 % 8 % 10 % 11 % 29 % 35 % 0 10 20 0 5 10 15 20 2007 2008 2009 2010 0 50 100 150 200

Slide 58

Slide 58 text

Visualisierung von textuellen Sachverhalten mit Schaubildern

Slide 59

Slide 59 text

Nicht manipulieren

Slide 60

Slide 60 text

public List get( QueryKey key, Type[] returnTypes, boolean isNaturalKeyLookup, Set spaces, SessionImplementor session) throws HibernateException { if ( log.isDebugEnabled() ) { log.debug( "checking cached query results in region: " + cacheRegion.getName() ); } List cacheable = ( List ) cacheRegion.get( key ); if ( cacheable == null ) { log.debug( "query results were not found in cache" ); return null; } Long timestamp = ( Long ) cacheable.get( 0 ); if ( !isNaturalKeyLookup && !isUpToDate( spaces, timestamp ) ) { log.debug( "cached query results were not up to date" ); return null; } log.debug( "returning cached query results" ); for ( int i = 1; i < cacheable.size(); i++ ) { if ( returnTypes.length == 1 ) { returnTypes[0].beforeAssemble( ( Serializable ) cacheable.get( i ), session ); } else { TypeFactory.beforeAssemble( ( Serializable[] ) cacheable.get( i ), returnTypes, session ); } } List result = new ArrayList( cacheable.size() - 1 ); for ( int i = 1; i < cacheable.size(); i++ ) { try { if ( returnTypes.length == 1 ) { result.add( returnTypes[0].assemble( ( Serializable ) cacheable.get( i ), session, null ) ); } else { result.add( TypeFactory.assemble( ( Serializable[] ) cacheable.get( i ), returnTypes, session, null ) ); } } catch ( RuntimeException ex ) { if ( isNaturalKeyLookup && ( UnresolvableObjectException.class.isInstance( ex ) || session.getFactory().getEntityNotFoundDelegate().isEntityNotFoundException( ex ) ) ) { //TODO: not really completely correct, since // the uoe could occur while resolving // associations, leaving the PC in an // inconsistent state log.debug( "could not reassemble cached result set" ); cacheRegion.evict( key ); return null; } else { throw ex; } } } return result; } Visualisierung von Code

Slide 61

Slide 61 text

Slide

Slide 62

Slide 62 text

Live Coding

Slide 63

Slide 63 text

Screencast

Slide 64

Slide 64 text

Plane alles Offline WiFi

Slide 65

Slide 65 text

Schritt 5: Vortrag

Slide 66

Slide 66 text

Anti- Chaos Checkliste

Slide 67

Slide 67 text

Üben Frühe Ankunft Infrastruktur Check Wasser Durchatmen...................

Slide 68

Slide 68 text

Showtime!

Slide 69

Slide 69 text

E-Book

Slide 70

Slide 70 text

michael.ploed@innoq.com @bitboss http://speakerdeck.com/mploed Vielen Dank!!! Photos / Grafiken (c) Michael Plöd / innoQ Deutschland GmbH Pointy Font lizensiert von Bitfoundry