Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Demo-driven innovation (University of Zurich, J...

Demo-driven innovation (University of Zurich, June 2013)

I used this set of slides for a one-day workshop I gave at the University of Zurich in June 2013.

Tudor Girba

June 28, 2013
Tweet

More Decks by Tudor Girba

Other Decks in Research

Transcript

  1. Yogi Berra you’ve got to be careful if you do

    not know where you are going, because you might not get there.
  2. Tom deMarco It’s not what you don’t know that kills

    you, it’s what you know that isn’t so
  3. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com Roadmap

    • Every talk must start with a roadmap • So: • Introduction • Slides • Template • Design • Audience • Story • More slides • Conclusion 48
  4. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com Roadmap

    • Every talk must start with a roadmap • So: • Introduction • Slides • Template • Design • Audience • Story • More slides • Conclusion 49
  5. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com Slides

    • Every decent talk is accompanied by slides • Text is difficult to read so, slides should not have more than 6 first level bullets • The text should be no smaller than 12 pt • A good slide has an engaging design • Don’t just use a standard design • Show that you care • Let’s see what a good template is made of ... 50
  6. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com The

    template in 4 steps 1. Align title to the left, and add logo to the top right • The logo should not be too large, but it should be visible at all time • Adding it to the right, makes it secondary in the visual hierarchy so that it is not compete with the rest of the text 51
  7. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com The

    template in 4 steps 1. Align title to the left, and add logo to the top right • The logo should not be too large, but it should be visible at all time • Adding it to the right, makes it secondary in the visual hierarchy so that it is not compete with the rest of the text 2. Choose colors and style to match the corporate look 51
  8. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com The

    template in 4 steps 1. Align title to the left, and add logo to the top right • The logo should not be too large, but it should be visible at all time • Adding it to the right, makes it secondary in the visual hierarchy so that it is not compete with the rest of the text 2. Choose colors and style to match the corporate look 3. Delimit the title zone and readjust the style 51
  9. © Tudor Girba Zürich - June 28, 2013 www.tudorgirba.com The

    template in 4 steps 1. Align title to the left, and add logo to the top right • The logo should not be too large, but it should be visible at all time • Adding it to the right, makes it secondary in the visual hierarchy so that it is not compete with the rest of the text 2. Choose colors and style to match the corporate look 3. Delimit the title zone and readjust the style 4. Add footer • Slide number is important to let the audience know about the progress • Add your name, just in case they forgot it • Add the date and place of the presentation to show that it is customized for the situation 51
  10. message message message message message message message message message message

    message message message message message message message ssage message message message message message message message message message message message message message message message message message message message message
  11. message message message message message message message message message message

    message message message message message message message ssage message message message message message message message message message message message message message message message message message message message message
  12. to Understand Software Evolution Modeling History vorgelegt von Tudor Gîrba

    von Rumänien Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern Leiter der Arbeit: Prof. Dr. Stéphane Ducasse Prof. Dr. Oscar Nierstrasz Institut für Informatik und angewandte Mathematik
  13. To provide a generic meta-model for expressing software evolution analyses,

    we need to recognize evolution as an explicit phenomenon and model it as a first class entity. to Understand Software Evolution Modeling History vorgelegt von Tudor Gîrba von Rumänien Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern Leiter der Arbeit: Prof. Dr. Stéphane Ducasse Prof. Dr. Oscar Nierstrasz Institut für Informatik und angewandte Mathematik
  14. © Tudor Girba Zurich - April 23, 2013 www.tudorgirba.com Important

    sign • At this sign, stop, look around and proceed if no other car is coming your way. • Important!!!! The cars coming from the other directions will not have to stop. • This sign was put here by the authorities in charge. • This sign concerns vehicles only. Pedestrians should look at the signs dedicated to them. • This sign should not be touched or hindered in any way. Any violation is punishable according to the law. 70
  15. y x

  16. y x

  17. y x

  18. whitespace is a resource whitespace is a resource whitespace is

    a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource fill it for a reason
  19. © Tudor Girba Zurich - April 23, 2013 www.tudorgirba.com Text

    and slides • The more text there is on a slide, the more I will tend to speak it as it is written on the slide. • But, you can read a text much faster than I can speak it. • In such situations, my speech becomes noise as you rather prefer to just go ahead and read it by yourself. • That is the reason why slides should not have text that competes with my speech, but rather be as visual as possible to complement it. • If I would read this to you, you would likely be reading this line while I would still be somewhere in the middle of the text. 104
  20. © Tudor Girba Zurich - April 23, 2013 www.tudorgirba.com Text

    and slides • The more text there is on a slide, the more I will tend to speak it as it is written on the slide. • But, you can read a text much faster than I can speak it. • In such situations, my speech becomes noise as you rather prefer to just go ahead and read it by yourself. • That is the reason why slides should not have text that competes with my speech, but rather be as visual as possible to complement it. • If I would read this to you, you would likely be reading this line while I would still be somewhere in the middle of the text. 1 notes will set you free http://www.iwm-kmrc.de/workshops/visualization/sweller.pdf http://www.smh.com.au/news/technology/powerpoint-presentations-a-disaster/ 2007/04/03/1175366240499.html One assumption is that slides must also carry the message in the absence of the speaker, and hence most of the content must be on the slides. The result is lots of bullet points and lots of text. However, lots of text competes with the spoken words because we can just read faster than we speak. And we want the audience to hear what we have to say. Another option is to put the text in the notes and provide slides with notes for as printouts.
  21. 30%

  22. yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM andTopCurrentENM: topCurrentENM | currentVersions previousClassHistoriesSortedByWENM yesterdayWeatherHits last2VersionsTopHistories last2Versions

    last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories previousVersionsTopHistoriesNames over | currentVersions := OrderedCollection new. currentVersions addLast: (self allVersionNames at: 1). yesterdayWeatherHits := 0. (2 to: self allVersionNames size) do: [: i | self smelly: 'this algorithm is too big and complex'. previousClassHistoriesSortedByWENM := (self classHistories selectFromReferenceVersionCollection: currentVersions) sortBy: [:a :b | a value getWENM >= b value getWENM]. currentVersions addLast: (self allVersionNames at: i). previousVersionsTopHistories := OrderedCollection new. x := previousClassHistoriesSortedByWENM first value getWENM. valuesCount := 0. previousClassHistoriesSortedByWENM do: [ :each | (each value getWENM ~= x) ifTrue: [ valuesCount := valuesCount + 1. x:= each value getWENM]. (valuesCount < topPreviousWENM) ifTrue: [ previousVersionsTopHistories addLast: each] ]. last2VersionsTopHistories := OrderedCollection new. last2Versions := OrderedCollection new. last2Versions addLast: (self allVersionNames at: (i-1)). last2Versions addLast: (self allVersionNames at: i).
  23. previousVersionsTopHistories addLast: each] ]. last2VersionsTopHistories := OrderedCollection new. last2Versions :=

    OrderedCollection new. last2Versions addLast: (self allVersionNames at: (i-1)). last2Versions addLast: (self allVersionNames at: i). last2HistoriesSortedByENM := (self classHistories selectFromReferenceVersionCollection: last2Versions) sortBy: [:a :b | a value getWENM >= b value getWENM]. x := last2HistoriesSortedByENM first value getENM. valuesCount := 0. last2HistoriesSortedByENM do: [ :each | (each value getENM ~= x) ifTrue: [ valuesCount := valuesCount + 1. x:= each value getENM]. (valuesCount < topCurrentENM) ifTrue: [ last2VersionsTopHistories addLast: each] ]. previousVersionsTopHistoriesNames := previousVersionsTopHistories collect: [ :each | each value name]. over := false. last2VersionsTopHistories do: [:each | ((previousVersionsTopHistoriesNames includes: (each value name)) and: [over not]) ifTrue: [ yesterdayWeatherHits := yesterdayWeatherHits + 1. over := true]. ]. ]. ^yesterdayWeatherHits/(self size - 1) asFloat.
  24. yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM andTopCurrentENM: topCurrentENM | currentVersions previousClassHistoriesSortedByWENM yesterdayWeatherHits last2VersionsTopHistories last2Versions

    last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories previousVersionsTopHistoriesNames over | currentVersions := OrderedCollection new. currentVersions addLast: (self allVersionNames at: 1). yesterdayWeatherHits := 0. (2 to: self allVersionNames size) do: [: i | self smelly: 'this algorithm is too big and complex'. previousClassHistoriesSortedByWENM := (self classHistories selectFromReferenceVersionCollection: currentVersions) sortBy: [:a :b | a value getWENM >= b value getWENM]. currentVersions addLast: (self allVersionNames at: i). previousVersionsTopHistories := OrderedCollection new. x := previousClassHistoriesSortedByWENM first value getWENM. valuesCount := 0. previousClassHistoriesSortedByWENM do: [ :each | (each value getWENM ~= x) ifTrue: [ valuesCount := valuesCount + 1. x:= each value getWENM]. (valuesCount < topPreviousWENM) ifTrue: [ previousVersionsTopHistories addLast: each] ]. last2VersionsTopHistories := OrderedCollection new. last2Versions := OrderedCollection new. last2Versions addLast: (self allVersionNames at: (i-1)). last2Versions addLast: (self allVersionNames at: i).
  25. yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM andTopCurrentENM: topCurrentENM | currentVersions previousClassHistoriesSortedByWENM yesterdayWeatherHits last2VersionsTopHistories last2Versions

    last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories previousVersionsTopHistoriesNames over | currentVersions := OrderedCollection new. currentVersions addLast: (self allVersionNames at: 1). yesterdayWeatherHits := 0. (2 to: self allVersionNames size) do: [: i | self smelly: 'this algorithm is too big and complex'. previousClassHistoriesSortedByWENM := (self classHistories selectFromReferenceVersionCollection: currentVersions) sortBy: [:a :b | a value getWENM >= b value getWENM]. currentVersions addLast: (self allVersionNames at: i). previousVersionsTopHistories := OrderedCollection new. x := previousClassHistoriesSortedByWENM first value getWENM. valuesCount := 0. previousClassHistoriesSortedByWENM do: [ :each | (each value getWENM ~= x) ifTrue: [ valuesCount := valuesCount + 1. x:= each value getWENM]. (valuesCount < topPreviousWENM) ifTrue: [ previousVersionsTopHistories addLast: each] ]. last2VersionsTopHistories := OrderedCollection new. last2Versions := OrderedCollection new. last2Versions addLast: (self allVersionNames at: (i-1)). last2Versions addLast: (self allVersionNames at: i).
  26. yWFor: yesterdayCheck for: tomorrowCheck | hits | hits := (self

    detailedYWFor: yesterdayCheck for: tomorrowCheck) sum: [ :each | each isEmpty ifTrue: [0] ifFalse: [1]]. ^ hits / (self versions size - 2) yWFor: yesterdayCheck for: tomorrowCheck ^ ( 3 to: self versions size ) collect: [ :i | | yesterday tomorrow | yesterday := self selectByExpression: yesterdayCheck appliedFromVersionIndex: 1 toVersionIndexAndPresentInIt: i - 1. tomorrow := self selectByExpression: tomorrowCheck appliedFromVersionIndexAndPresentInIt: i - 1 toVersionIndex: self versions size. yesterday intersectWith: tomorrow ]
  27. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15
  28. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15
  29. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15
  30. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15
  31. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15
  32. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15 16
  33. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15 16 17