SlideShare a Scribd company logo
1 of 32
Download to read offline
www.tudorgirba.com

Presenting
Tudor Gîrba
www.tudorgirba.com

Roadmap

•
•

www.tudorgirba.com

The following slides are intended to be read
either by looking at the laptop screen, or with
the back to the audience.

Every talk must start with a roadmap
So:
• Introduction
• Slides
•

•
•
•
•

Template

•

One common wisdom is that there should be a
roadmap at the beginning. That is many times
a good thing, only we should design the
roadmap to be meaningful.

Design

Audience
Story
More about slides
Conclusion

http://www.tudorgirba.com/blog/meaninglessroadmap
© Tudor Girba

Zürich - April 23, 2013

Roadmap

•
•

2

www.tudorgirba.com

Every talk must start with a roadmap
So:
• Introduction
• Slides
•

•
•
•
•

Template

•

Design

Audience
Story
More about slides
Conclusion

© Tudor Girba

Zürich - April 23, 2013

3

This is actually true.
About this talk

•
•
•

www.tudorgirba.com

I used to be extremely afraid of speaking in public
• In fact, I was so afraid that I could hardly speak
But, because I had to speak, I spent a bit of time thinking about it
Today, I will share with you some of my reflections on how to do
presentations
• I am actually quite nervous to talk about it here

© Tudor Girba

Zürich - April 23, 2013

4
Roadmap

•
•

www.tudorgirba.com

Every talk must start with a roadmap
So:
• Introduction
• Slides
•

•
•
•
•

Template

Audience
Story
More slides
Conclusion

© Tudor Girba

Zürich - April 23, 2013

Slides

•
•
•
•
•
•

5

www.tudorgirba.com

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 ...

© Tudor Girba

Zürich - April 23, 2013

The template in 4 steps

6

www.tudorgirba.com

If you take this approach, just make sure to not
add the total amount of slides, because you do
not want to discourage the audience :)

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

© Tudor Girba

Zürich - April 23, 2013

7

This is one way to deliver talks. While it can be
straightforward, it is completely inneffective.
The audience gets bored, and the retention is
low.

STOP
presenting is storytelling
www.tudorgirba.com

why are
we here?
In abstract, a lecture is an educational talk.

lecture |ˈlek ch ər|
noun
an educational talk to an audience

legere
latin verb
action of reading, that which is read

But, where does the design of a lecture come
from?

Lecture come from legere which is a latin verb
denoting the act of reading.
A couple of centuries ago, before the printing
press, reading was a technological solution for
spreading information.
lecture |ˈlek ch ər|
noun
an educational talk to an audience

Lectures should not stick to the original
meaning anymore. There is no reason. We are
no longer in dire need of information.
What should the goal of a lecture be? To frame
the problem and to incite the audience to
investigate it further.

The best tool to animate an audience is
through a story.

presenting is storytelling
www.tudorgirba.com

The story does not have to be a fairy tale to
capture my imagination. In fact, it should not be
a fairy tale.

story = fairy tale

Good stories are typically not straightforward.
They require design and discovery.

design

your story
The first step is to figure out what your
audience is? What do they expect? What are
their values?
who is your

audience?

let me tell you a story
about

Paris
http://www.flickr.com/photos/pingnews/
421079337/sizes/l/

Let me tell you a story about how I went to
Paris ...
and I wanted to see how other people see
Paris.

I was surprised to see that some don’t even
look at Paris.

And when they do look, they do it in a strange
way.

At night, we finally got to Louvre.
And we set our minds to go see Mona Lisa.

So, the second day, we took the metro.

And we got to Louvre.

And just near the information sign ...
We found Mona Lisa.
Actually it was not really Mona Lisa, but just a
guide about The Da Vinci Code. We did not
want the guide, and we started to search Mona
Lisa by ourselves.

And we finally got to the room of Mona Lisa.

Because we were not allowed to take pictures
inside the room, I took a picture from outside of
it.

But, no one else took the sign seriously. My
take is that they did not regard themselves
taking pictures, they regarded themselves as
just looking at Mona Lisa.
Even though some not even looked.

Or when they did, they did it in a peculiar way.

If you want to tell a story, you have to know
your audience.

http://www.tudorgirba.com/blog/the-audienceis-your-friend
And you have to know how they see the world.
And if you think you know your audience and
how it sees the world, think again. Your
audience will never be the same and it will
never seize to surprise you.

The first step is to figure out what your
audience is? What do they expect? What are
their values?
who is your

audience?

message

message
message

message

message

message

message

message

message
messagemessage

message

message
message

message

message
message
message

message

message
message message
message
message
message

After you think you know your audience,
choose your message.
Any thing can be “sold” in several ways. Some
are more obvious than others.

message
message
message
message
message

message
message

message

message message

message

message

message

message

message
message

message

message

message

message

message

message

message
messagemessage

message

message
message

message
message
message

message

message
message message
message
message
message

message
message
message
message
message

message
message

message

message message
message

message

message

You should choose the message that matches
your audience and your contextual goal.
The message does not have to be as
comprehensive as the material it covers. Its
goal is to focus the story.
one
message

Strive to choose one message. Not two, not
one and a half. One. A 30 seconds ad has one
punch line. A good movie has one single
message that summarizes the main point (of
course, is the movie is not Pulp Fiction).
So should your talk have just one core
message. Bring plenty of evidence, but focus
on one message.

Ads have one message. Most movies have one
message.

Sometimes the message is directly in the title.
Modeling History
to Understand Software Evolution

Inauguraldissertation der
Philosophisch-naturwissenschaftlichen
Fakultät der Universität Bern

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.

You might say that ads and movies are just for
entertaining.
But, a PhD dissertation is also about one
thesis. 3-5 years of work and all you get to
defend is one single statement.

vorgelegt von

Tudor Gîrba
von Rumänien

Leiter der Arbeit:
Prof. Dr. Stéphane Ducasse
Prof. Dr. Oscar Nierstrasz
Institut für Informatik und
angewandte Mathematik

Strive to choose one message.

one
message

Slides used to be called visual aids. The
difference between the two terms is that
“slides” describes the technology, while “visual
aids” describes the goal.

slides

These days, it is a must for a talk to be
accompanied with slides.

slides are visual aids

Slides used to be called visual aids. The
difference between the two terms is that
“slides” describes the technology, while “visual
aids” describes the goal. We focused so much
on getting the technology right, that we forgot
about the goal. Always have the goal in mind.
These days, it is a must for a talk to be
accompanied with slides.

slides are

visual

Slides used to be called visual aids. The
difference between the two terms is that
“slides” describes the technology, while “visual
aids” describes the goal. We focused so much
on getting the technology right, that we forgot
about the goal. Always have the goal in mind.

aids

Let’s take an example.
Important sign

•
•
•
•
•

www.tudorgirba.com

At this sign, stop, look around and proceed if no other car is
coming your way.

Imagine driving. What would you do if you
would see this sign at a crossroad?

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.

© Tudor Girba

Zurich - April 23, 2013

50

STOP

What about if you see this one? There is no
doubt as to what you have to do. There are
three reasons for this:
- it is big so that we notice it
- it is red so that we pay attention, and
- it is so distinct and simple that it leaves no
place for confusion. it only conveys the relevant
information.

The difference between the two signs is that
one is detailed but only the other one is actually
effective in traffic.

STOP

Slides should be like traffic signs:
- They should stay on the side,
- They should come to our attention for a very
brief period, and
- They should become invisible.
How to achieve that?
few

details

The good news is that not all details are
important. In fact, only few details are
important.
are important

When it comes to the English language, the
Elements of Style is a book that should not be
missed.

omit needless words

we sell fresh fish here

fresh fish here
fresh fish

fresh

You can almost not go wrong removing details.

fresh
for sale: baby shoes, never worn
Ernest Hemingway

http://en.wikipedia.org/wiki/
For_sale:_baby_shoes,_never_worn

Twitter can be a great medium to exercise
conciseness.

This message is exactly 140 characters long.

design is not the abundance of simplicity
it is the absence of complexity

http://www.amazon.com/Elements-GraphicDesign-Space-Architecture/dp/1581152507
emphasizing everything

IS emphasizing nothing

One particular graphic design resource that is
most often forgotten is whitespace.

whitespace

Whitespace is defined by the objects inside.

Whitespace is not necessarily white.
What is background and what is foreground?

What about now?

One small difference solves the conflict.
You now perceive two blobs.
But, is whitespace a wasted space? No. If you
fill it completely, you lose everything.

Whitespace can guide your eyes. For example,
this arrangement implies no particular reading
order.

This one, however, will guide your eye line by
line.

… and this one, column by column.
Let’s take a chart
y

x

Simply not filling the whitespace reveals the
data.

y

x

Less can be even more.
y

x

http://www.edwardtufte.com/tufte/books_vdqi

remove chart junk
increase data ink
whitespace is a resource a resource
whitespace is
whitespace is a resource
whitespace is a resource
whitespace is
whitespace whitespace
whitespace is a resource whitespace is a resource
whitespace is a resourcea resourceis a resource is a resource
whitespace is a is a a
resource
whitespace is a resource
whitespacewhitespace is a resource
whitespace whitespace resource a resource
whitespace is a whitespace is
whitespaceresource resourceaisresource is a resourceis is resource
is awhitespace
whitespace is isresource
whitespaceresource awhitespace is a is whitespace a is a resource
iswhitespace whitespace resourceresource resource
a resource a resource a resource
whitespace is a is a resource
whitespacewhitespace
whitespace is a is a resource
whitespace
whitespace resource
whitespace isisaaresource whitespace is a
is a resource
whitespace whitespace is a is a resourceresourceis a resource
whitespacewhitespace is a resource whitespacea resource
resource
whitespace is
whitespace is a resource
whitespace is a resource
whitespace
whitespace is a resource
a resource
whitespace is a resource
whitespacewhitespace is a resourcewhitespaceaisresource
is a resource whitespace iswhitespaceaisresource is a resource
whitespace is
a resource whitespace is a resource
whitespacewhitespace is whitespace
is a
whitespace is a resource is a resourceis a resource is a resourceis a resource
whitespace whitespace
whitespace whitespaceresource a resource is a resource
whitespace is a resource whitespace is a resource whitespace is a resource
whitespace is a resource
whitespace is is resource
whitespace is a resource
whitespace is a resourcea a resource
whitespace
whitespace a resourcea is whitespace is a resource resource
whitespace is a whitespace is a resource
whitespace is iswhitespaceresource whitespace whitespace a resource resource
whitespace resource a
is is
whitespaceais aaresource resource
whitespaceresource
is a is a is
whitespace is a whitespace isis whitespace resource is a
whitespace aisresource a resource
whitespaceais a resourceresource whitespaceresource a resource
resource is awhitespace a a resource is is is a resource
resourcewhitespace
whitespace whitespace
whitespace
whitespace whitespace is aisresource whitespace isisaaresourcearesourceis a resource
is is is awhitespacewhitespace whitespace isresource resource
whitespace resource aa resource a is whitespace is resource
resource is is
whitespace
a
whitespaceisawhitespaceisresource is resource whitespacea is is a resource
whitespace is a resource
resource
whitespace resource
whitespaceresource resourcewhitespace resource
whitespace a resourcea resource resourcewhitespace
is is
whitespace
whitespacewhitespace iswhitespace a whitespacewhitespaceresourceresource
whitespaceisiswhitespace is iswhitespaceisresource isiswhitespaceaisresource a resource
aaresource resource whitespace is a resource
whitespaceiswhitespaceisawhitespaceisaaa a resource a a whitespace is
aaresource isresource is resource resource
whitespaceisiswhitespace aisisaa resourceresourceaisaresource is
whitespace iswhitespaceiswhitespace resourceresourcewhitespaceais a resource
whitespaceresourceisaresourcewhitespaceis isaaresource
resource
a resource a is whitespace
whitespace iswhitespace whitespaceresourceaaresourceresourceresourceresource
a resource
whitespace resourcewhitespace a resource
whitespaceiswhitespace resourceresource resourcewhitespace resource
whitespaceresource aaaaawhitespaceiswhitespaceresourceaa resource
is iswhitespaceis aa iswhitespace isaaresource
a resource resourcewhitespace
is
whitespaceiswhitespace aisresource whitespacewhitespaceawhitespaceais a resource
is
whitespacewhitespace
whitespacewhitespacewhitespaceresourceisawhitespaceawhitespace is isisa aresource
aaaaresource awhitespacewhitespaceisaisresource
whitespacewhitespaceisisaaresourceiswhitespace isisiswhitespaceaisresource resource
a resource
whitespaceresourceawhitespace iswhitespaceresource a resource
whitespaceis is isresourcewhitespacewhitespaceresource
is resourceais is whitespace
a
whitespace whitespaceresourceis aawhitespaceresource a resource
whitespacewhitespacearesourceresourcewhitespacewhitespace is a resource
is resource whitespace is resource is a whitespace
a whitespace is resource resource is isis a
whitespaceaaisresourcearesourceaawhitespacewhitespaceresourceresource
iswhitespace resourcewhitespace a aaisresource
aa resourceisresource whitespace whitespace
whitespace whitespaceresource aisresourceis is
is
resourceis
whitespace is resourceaawhitespaceis aaresourceresource
whitespaceresource iswhitespaceaisresource isiswhitespace is isaa resource
iswhitespacewhitespaceis is a resource resource
whitespace is a whitespace isiswhitespace
whitespacewhitespaceresourcea resourcea resourceaaresourceresource
whitespace resource
a a resourceresource whitespace resource
whitespaceiswhitespace is a resource resourcewhitespace whitespace is a resource
iswhitespace
whitespace isisisresource is a resourceresource a resource
whitespacewhitespace whitespacea whitespace is a
whitespace
whitespace isaa awhitespaceresourceis a aresourceis isaaresource
whitespace whitespaceresourcewhitespaceisisawhitespaceresource
whitespace aaresource isisa isisawhitespace aisaaresource
is a is a a whitespace whitespace is is resource
whitespace
resource
is resource resource is a resource
resource resource
whitespace isresource whitespace whitespace resource
resource
whitespaceiswhitespace resourceawhitespaceisiswhitespace is a resource
whitespace
whitespaceresource aaresourceiswhitespaceresource aiswhitespace is a resource
resource
whitespaceresource a resource whitespaceisisaaresource is a resource
whitespace is a
whitespace
whitespace a whitespace a whitespace
resource
whitespace is a a
whitespace whitespace isisisaresource
is whitespace a is whitespace whitespace a resource
a iswhitespace whitespace is aisresource resource
whitespace
whitespace iswhitespaceresource whitespace whitespace is aresource
is
whitespaceaa is a resourceresourceisisaaresourceisresource resource
whitespace resource whitespace is resource resource
a a
whitespaceresourceis whitespace is whitespacewhitespaceisisa aresource
whitespaceis a isresourceresource awhitespaceresource a is a resource
is resource a whitespace a whitespace resource
resource whitespace is aaresource is resource
is resource
a isisaa resource
whitespaceresourceis is a resource whitespaceaaisisa resource
whitespaceisis a whitespace is aaresourcea resourcewhitespace a resource
whitespace aisaaresource resource whitespacewhitespaceresourcea resource
whitespaceis
whitespacewhitespaceisisaaresourcea whitespaceiswhitespaceaisresource
whitespace is whitespaceis resource a resource
whitespace resource whitespace whitespacearesource resource
isis aisresource whitespace whitespace is resource
a a resource resource resourceresource is
whitespace whitespace isisaaresource
resource a resource a
is whitespaceresource
iswhitespace is a resource
aisresource
whitespace is a aresource is whitespace whitespace
whitespace
is
whitespace isis whitespaceaisresource whitespace isais resource is ais a resource
whitespace resourcewhitespace a is resource a resource
resource
whitespace isaawhitespace resource a is a
whitespacewhitespaceresource is aawhitespacewhitespace
whitespacewhitespaceaisresource
resource
whitespace awhitespacewhitespace whitespace iswhitespaceis a resource
isis resource resource
a
resource
whitespacewhitespace iswhitespace whitespacewhitespace resource
a resource
whitespaceaisis is aiswhitespace iswhitespaceresource resourceresource
resource
resourcewhitespace
whitespace whitespace
whitespacewhitespaceaaisresourceisresource whitespacea isa aresourceresource
is whitespace aresourcewhitespace is isaaresource
a is a whitespace a resourceresource resource
resource whitespace iswhitespace
resource
whitespacea is is
whitespace isisawhitespacea awhitespacewhitespace isisaa resource
whitespace is resourcea resourceis a resourceisresource is a
whitespaceais a
whitespacewhitespaceresourcewhitespaceaisresource
resource
whitespaceresourceawhitespace resourcewhitespace resourceresource
whitespacewhitespace whitespace is aaresource
whitespaceaiswhitespace is isisa isresourcewhitespace
whitespaceaiswhitespaceis a resourceisaa resource
whitespaceresource whitespace is resourceresource
aresource is a
a resource whitespace
whitespace aisresourcewhitespaceawhitespaceaiswhitespace is is a resource
whitespaceresource
is aisresource
whitespace aaisresource a whitespacewhitespace resource a resource
whitespace resource is resource resourcewhitespace is a
a resource
whitespace is iswhitespaceresourceisresourcea resourceis a resourcea resource
is a
whitespace is a resource whitespaceresourcewhitespace is
whitespace
whitespace is whitespace is is is is aaresource is a
a resource a
iswhitespace is resource
a resource whitespace
whitespace is a isa aresource whitespacewhitespaceis aaresource resourceresource
whitespace
resource
whitespace is resource
whitespace is a resource whitespaceais aa resource resource
whitespace isis a resource a resource
a resource
whitespace iswhitespace is a
whitespace resource
is
whitespace whitespace is
whitespace is a
whitespace is a resourceresource
whitespace is a resource
whitespace is a resource is a resource whitespace is a resource
whitespace
iswhitespace is a resource
a resource a resource
whitespace is a resource whitespace whitespaceais is a resource
whitespace resource
whitespace is a resource whitespaceresource whitespaceresource
whitespace is a is
whitespace is ais is ais a resource
whitespace resource
whitespace a resource
whitespace whitespace is a resourceresource whitespace is a resource
whitespace is whitespace is a resource is a resource
whitespace is ais a resource
resource
whitespace is a resource
a whitespace whitespace
is a resource
whitespace is a resource
whitespace is a resource whitespace is a resourceresource
is a resource whitespace is aisresource
whitespace a
whitespace is a resource whitespace resource
whitespace is a
whitespace is a resource

http://www.tudorgirba.com/blog/empty-yourslides
http://www.youtube.com/watch?v=aeXAcwriid0

fill it for a reason

One thing to remember is that slides are not
documents. They do not have the same
purpose and they do not have the same
capabilities. As such, they should not be
treated in the same way.
If you feel the need to rely on a template like
this, you are probably doing something wrong.

Why exactly do we see so many slides that
resemble documents?
Take a look at what we see when we open the
slideware program. The default template wants
us to enter a title and some content in form of
bullets.

It is difficult to not put too many things on a
slide, because the default look of PowerPoint
urges you to add them. Most templates just go
along these lines.
Bullet points are not evil. They are just not the
answer to everything.
And they are especially not the answer to
effective slide design.
The projector is a different medium than the
screen.

projector = screen

On the one hand, the projector has a much
poorer resolution, and as the distances from
which it is being watched differ greatly, we can
only rely on it to deliver very few details
accurately.
On the other hand, the projector offers an
opportunity: it allows us to focus on just one
thing, and we can control the advance. This is
an important characteristic that should be used
So, next time you open your slideware
program ...

Start the design of slides from an empty
canvas.
Do not let the default document metaphor
influence your choice.
Take control.

On the one hand, a slide is a poorer graphical
than a printed document.
On the other hand, their dynamic nature offer
an opportunity: focus. A slide should
encapsulate one concept and focus the
attention of the audience.
When each slide encapsulates a point, the
story is in between these points.

the

tween

in be
story is

http://www.iwm-kmrc.de/workshops/
visualization/sweller.pdf
Text and slides

•
•
•
•

www.tudorgirba.com

http://www.smh.com.au/news/technology/
powerpoint-presentations-a-disaster/
2007/04/03/1175366240499.html

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.

© Tudor Girba

Zurich - April 23, 2013

90

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.
notes will set you free

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.

http://www.iwm-kmrc.de/workshops/visualization/sweller.pdf

Text and slides

•
•
•
•
•

www.tudorgirba.com

http://www.smh.com.au/news/technology/powerpoint-presentations-a-disaster/
2007/04/03/1175366240499.html

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.

© Tudor Girba

Zurich - April 23, 2013

1

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.

notes will set you free

Another option is to put the text in the notes and provide slides with notes for
as printouts.

This is how the previous two slides look like
when they are printed with notes.
When points are encapsulated in a slide,
transition is what brings cohesion to the story.

trans

ition

The slides overview is perhaps the most useful
tool in your slideware because it is the one that
has the potential to reveal the story.
One rule of thumb is that if you cannot see
what a slide is about in the overview, you
probably have too much on it.

Use the presenter tools to take notice of the
next slide. This is the simplest approach to
control the transition between these points.

slides are

visual

aids
Beside being visual, slides should be just aids.
They should only complement the talk, not
replace it.

slides are visual

aids
This is how an empty slide looks like.

And this is how it looks on a white.
You should be able to deliver your message
without slides.
The audience is your friend and it wants you to
succeed because if you would not succeed
they would lose time. And who likes losing time
these days?
http://www.tudorgirba.com/blog/the-audienceis-your-friend

slides are visual

aids
Recommended resources.
m
zen.co

e.com

tation

presen

art
blog.du

http://presentationzen.com
http://thebackofthenapkin.com
http://blog.duarte.com

kin.com

ap
kofthen

thebac

tudorgirba.com/blog

A great place to find examples of amazing talks
is www.ted.com.

d.com

www.te

http://www.tudorgirba.com/blog/ted-talks
http://www.tudorgirba.com/blog/favorite-tedtalks-posted-until-2008
http://www.tudorgirba.com/blog/favorite-tedtalks-posted-in-2009
http://www.ted.com/talks/lang/en/
ken_robinson_says_schools_kill_creativity.html
http://www.tudorgirba.com/blog/to-pause-ornot-to-pause

presenting is storytelling
www.tudorgirba.com

What about talks that pertain technical facts?
Does all this fluffy theory apply to them?

what about

technical talks?
Facts alone are boring. And that is a fact.
Regardless of how boring a subject appears to
be, there always is at least one exciting story
hidden in there.

any fact has its own story

Hans Rosling:
http://www.ted.com/talks/
hans_rosling_shows_the_best_stats_you_ve_e
ver_seen.html

content

form

Designing and building the form is typically
perceived as an effort that comes after the
main effort of designing and building the
content. That is not an optimal process,
because we cannot reason about content in the
absence of form.
Content and form must co-exist, because
neither has value without the other.
• The histories of class C and E have almost the same
methods were added or removed, therefore the values
LENOM 1..5 value, because of the similar amount of
of ENOM , EENOM 1..5 and of LENOM 1..5 of this
changes in1..5
their recent history. The ENOM 1..5 valclass history are 0.
ues differ heavily because class E was changed more
• throughout its history than class C. B and of class E,
In the histories of class A, of class
7 methods were detected as being added or removed.
3.2 The class histories differ in their LENOM 1..5 and
Measuring Yesterday’s Weather
EENOM 1..5 values which means that (i) the changes
Before defining the YW history of we introduce the noare more recent in the function, class B, (ii) in class E
tion of top n of entities out of an original setandof entities
the changes occurred in its early history, S (iii) in the
with the highestclass A the changes were scattered through
history of M measurement value:
the history more evenly. ˛

2

4

(i > 1; t , t

3

1)

6

D

yesterdayWeatherHits := 0.

2

2

2

8
> 1,
>
<
> 0,
>
:
2

T op
(S, t1)
T op
(S, t2) 6= ;
T op
(S, t1)
T opEEN OMi..n (S, t2) = ;
2

previousClassHistoriesSortedByWENM do: [ :each |
(each value getWENM ~= x) ifTrue: [
future
present
past
valuesCount := valuesCount + 1. x:= each value getWENM].
version
(valuesCount < topPreviousWENM) ifTrue: versions
[
versions
previousVersionsTopHistories addLast: each]
Legend:
].
last2VersionsTopHistories := OrderedCollection new.

a candidate history (i.e., in Top

f class
candie highYesterf these
elongs
on i at
ong the
rsion i.

unction
he two

Figure 4. The detection of a Yesterday’s Weather hit.
last2VersionsTopHistories := OrderedCollection new.
last2Versions := OrderedCollection new.
last2Versions addLast: (self allVersionNames at: (i-1)).
last2Versions addLast: (self allVersionNames at: i).
last2HistoriesSortedByENM := (self classHistories 10 11
System
2 3 4 5 6 7 8 9
selectFromReferenceVersionCollection: last2Versions)
sortBy: [:a :b | a value getWENM >= b value getWENM].
Versions
x := last2HistoriesSortedByENM first value getENM.
valuesCount := 0.
last2HistoriesSortedByENM do: [ :each |
(each value getENM ~= x) ifTrue: [
valuesCount := valuesCount 6 hits
+ 1. x:= each value getENM].
(valuesCount < YW =
topCurrentENM) ifTrue: [
= 60%
last2VersionsTopHistories addLast: each]
10 possible hits
].
previousVersionsTopHistoriesNames := previousVersionsTopHistories
collect: [ :each | each value name].
over := false.

Figure last2VersionsTopHistories do: [:each | overall Yesterday’s
5. The computation of the
((previousVersionsTopHistoriesNames includes: (each value name))
and: [over not]) ifTrue: [
yesterdayWeatherHits := yesterdayWeatherHits + 1. over := true].

].
].
^yesterdayWeatherHits/(self size - 1) asFloat.

(6)

=;

hits for

5
4
E
Figure 4. The detection of a1Yesterday’s Weather hit.
1

2

3
G
System

4
2

Versions

past
versions

F

4

3

5

7

4

5

4

3

6

present
version

7

6
8

6

9

3

hit

10 11

future
versions

Legend:

6 in
a candidate history (i.e.,hits
YW =
One way to explain Topis =via formulas. It can be
it LENOM60% )
1..i
10 possible hits
daunting.
a really-changed history (i.e., in TopEENOM
)
i..n

Figure 5. The computation of the overall Yesterday’s
Figure
Weather. 4. The detection of a Yesterday’s Weather hit.

Example. In Figure 4 we present an example of how we check
System
2 3 4 5 6 7 8 9 10 11
Yesterday’s Weather with respect to a certain version. We display
Versions
6 versions of a system with 7 classes (A-G). We want to check
Yesterday’s Weather when considering the 4th version to be the
present one. Therefore, the versions between 1 to 3 are the past
versions, and the 5th and 6th=are the 6 hits ones. 60%
future
YW
=
We also consider the dimensions of the candidates and the
10 possible hits
really-changed set to be 3, that is, we want to check the assump-

Figure 5. The computation of the overall Yesterday’s
Weather.

(6)

4

)

previousClassHistoriesSortedByWENM do: [ :each |
(each value getWENM ~= x) ifTrue: [
valuesCount := valuesCount + 1. x:= each value getWENM].
(valuesCount < topPreviousWENM) ifTrue: [
previousVersionsTopHistories addLast: each]
].

Weather.

)

)

last2Versions := OrderedCollection new. LENOM1..i
last2Versions addLast: (self allVersionNames at: (i-1)).
last2Versions addLast: (self allVersionNames at: i).
last2HistoriesSortedByENM := (self classHistories
a really-changed history (i.e., in TopEENOM
selectFromReferenceVersionCollection: last2Versions)
i..n

(5)

(7)

I actually did not use formulas. Once I had the
basic Figure 4 we present an example of how we check
Example. Inidea, I just implemented it.
Yesterday’s Weather with respect the implementation to measure
And I could use to a certain version. We display
6 versions of a system with 7 classes (A-G). We want to check
my assumption. It turned out to be my
Yesterday’s Weather when considering the 4th version that the
present one. Therefore, the versions between 1 to 3 are the past
assumption was right:
versions, and the 5th and 6th are the future ones.
On consider systems of the candidates and the
We also some the dimensions it makes sense, on others it
really-changed not.be 3, that is, we want to check the assumpdoes set to

previousVersionsTopHistories := OrderedCollection new.

he noentities

4

Y Wi (S, t1 , t2 )
3
n 26

a candidate history (i.e., in TopLENOM

2

x := previousClassHistoriesSortedByWENM first value getWENM.
hit
valuesCount := 0. 5
3
4
4
6
3

1
i=2

1..i
1
3
3
4
C
http://scg.unibe.ch/archive/papers/
a really-changed history (i.e., in TopEENOM
Girb04bYesterdayWeather.pdf)
2
2
2
2
2
2 i..n
D

(2 to: self allVersionNames size)
|
Yesterday’s 'this algorithm is do: [: iand complex'.
Weather is computed by counting the hits for
self smelly:
too big
all versions and dividing them by5the total number of pos1
4
E
previousClassHistoriesSortedByWENM := (self classHistories
selectFromReferenceVersionCollection:
sible hits. Thus,:bwea obtain the>= currentVersions)
sortBy: [:a
|
value getWENM result as a percentage with
b value getWENM].
currentVersions addLast: (self allVersionNames
values between 0% and 100%. 3 at: i).
1
2
4
7
6
F

G

5

Pn

2

B

7

1 2
yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM
3
9
9
topCurrentENM 4
| currentVersions previousClassHistoriesSortedByWENM 1..i
LEN OM
yesterdayWeatherHits last2VersionsTopHistories last2Versions
EEN OMi..n
last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories
1 12
i
3
4
C previousVersionsTopHistoriesNames over | 3
LEN OM1..i
currentVersions := OrderedCollection new.
currentVersions addLast: (self allVersionNames at: 1).

2
B andTopCurrentENM:

Y W (S, t , t ) =

e same
ount of
.5 vald more

5

2

1
2
4
F
Let me tell you a7story about the first paper I
hit
ever 3wrote. 5It was about predicting changes in
4
4
6
3
G
a software system using a Yesterday’s Weather
2 past
4
3
5
6
A
future 7
present
versions
metaphor. 3 version versions
Legend:
2
4
9
9

changes in their recent history. The ENOM 1..5 values system version i, we compare the set of more
For a differ heavily because class E was changed class
throughout its history LENOM
histories with the highest than class C.values (the candi1..i
dates set) with the set of the class histories with the high3.2 Measuring Yesterday’s Weather
est EENOM i..n values (the really-changed set). The Yesterday’s Weather assumption holds if the intersection of these
setsBefore empty, that is at least one class history belongs
is not defining the YW function, we introduce the notion of sets.nThis means out of an original set S of entities
to both top of entities that for the classes in version i at
with the of the recently most changed classes is among the
least one highest M measurement value:
most changed classes in the near˛future relative to version i.
˛ S 0 S,
˛
If the assumption holds for version i0 ✓= n
we have a hit.
˛ |S |
(0 <formally define the Yesterday’s Weather hit function
n < 1) T opM (S, n) = S 0 ˛
(5)
We
˛ 8x 2 S 0 , 8y 2 S S 0
˛
˛ M (x) > M (y)
applied on version i of a system history S and given the two
threshold values t1 and t2 as follows:
For a system version i, we compare the set of class
histories t1 , t2 the highest LENOM 1..i values (the candi(i > 1; with 1)
dates set) with the set 8 the class histories (S, t1) highof
with the
>
> 1, T opLEN OM1..i
<
est EENOM i..n values (the really-changed set). t2) 6=YesterT opWeatheri..n (S, The ;
EEN OM applied on
We formally define, tthe=
Yesterday’s
Y Wi (S,
(6)
day’s Weather t1 2 ) > 0, T opLEN OM1..i (S, t1)of these
assumption holds if the intersection
>
:
n versions of a system history S given two threshold values;
T opone class history =
EEN OMi..n (S, t2) belongs
sets is not empty, that is at least
t1 and t2 as in Equation 7.
to both sets. This means that for the classes in version i at
Yesterday’s Weather is computed by counting the hits for
least one of the recently most changed classes is among the
all (n > 2; t1 ,and dividing them by the total number of posversions t2 1)
most changed classes in the near future relative to version i.
Pn
sible hits. Thus, we obtain the 1result(S, t1 , t2 )
Y W as a percentage with
If the assumption tholds = version ii we have a hit. (7)
Y W1..n (S, 1 , t2 ) for i=2
values between 0% and 100%. n 2
We formally define the Yesterday’s Weather hit function
applied on version i of a system history S and given the two
threshold values t1 and t2 as follows:
4
A

1

1)

Y W1..n (S, t1 , t2 ) =

˛ S 0 ✓ S,
˛
• < n <histories of(S, n) = S 0 ˛ |SE| = n almost the same
The 1) T op class C and 0 have
˛
(0
(5)
M
0
0
˛
LENOM 1..5 value, because 8x 2 S ,similar amount of
˛ of the 8y 2 S S
˛ M (x) > M (y)

lass E,
moved.
.5 and
hanges
class E
) in the
hrough

2

E (n > 2; t1 , t2

yesterday’s
weather

s D the
that no
values
of this

=;

t1 andDt2 as in Equation 7.
2
2
2

Example. In Figure 4 we present an example of how we check
Yesterday’s Weather with respect to a certain version. We display
6 versions of a system with 7 classes (A-G). We want to check
Yesterday’s Weather when considering the 4th version to be the
present one. Therefore, the versions between 1 to 3 are the past

But, something bothered me. Even if Smalltalk
is a beautifully concise language, my code was
loong.
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).
last2HistoriesSortedByENM := (self classHistories
selectFromReferenceVersionCollection: last2Versions)

And I knew it was ugly and that I should do
something about it. I just did not know what.

yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM
andTopCurrentENM: topCurrentENM
| currentVersions previousClassHistoriesSortedByWENM
yesterdayWeatherHits last2VersionsTopHistories last2Versions
last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories
previousVersionsTopHistoriesNames over |
currentVersions := OrderedCollection new.
currentVersions addLast: (self allVersionNames at: 1).

And the worse thing of all was that nobody
could really understand what I was doing. Of
course, the paper got rejected, too.

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).
last2HistoriesSortedByENM := (self classHistories
selectFromReferenceVersionCollection: last2Versions)

30%

90%

I stepped back. What exactly was I doing? I
thought of a metaphor.
In Switzerland, using yesterday’s weather as a
predictor for today’s weather is a poor
prediction model.
However, in Sahara, it is a great way to predict
weather, given that most days look like the
previous one.
This prediction model is contextual to the place,
or system, in which it is to be applied. So,

past

YesterdayWeatherHit(present):
past:=all.topChanged(beginning, present)
future:=all.topChanged(present, end)
past.intersect(future).notEmpty()

future

I eventually created a small picture and based
on that I rethought the model.
It turned out that the algorithm to check the
assumption for each day was three lines long.
Figure 4. The detection of a Yesterday’s Weather hit.
For a system version i, we compare the set of class
histories with During the displayed history (5 versions) of class D the
the highest LENOM 1..i values (the candi•
We formally define the Yesterday’s Weather applied on
dates set) with the set of the class histories with the highn versions of a system history S given two threshold values
est EENOM i..nnumber of methods remained 2. We consider that no
values (the really-changed set). The YesterSystem
2 3 4 5 6 7 8 9 10 11
t1 and t2 as in Equation 7.
day’s Weather methods wereifadded or removed, therefore the values
assumption holds the intersection of these
Versions
sets is not empty, ENOM least, one class history and of LENOM
of that is at 1..5 EENOM 1..5 belongs
of this
1..5
to both sets. This means that for the classes in version i at
(n > 2; t1 , t2
1)
least one of theclass history are 0.classes is among the
recently most changed
6 hits
Pn 1
most changed classes in the near future relative to version i. past
future YW = 10 possible hits = 60% W (S, t , t ) = i=2 Y Wi (S, t1 , t2 )
Y 1..n
(7)
• In the for version we have a hit.
1 2
If the assumption holds histories iof class A, of class B and of class E,
n 2
We formally define the Yesterday’s Weather hit function added or removed.
7 methods were detected as being
applied on version i of a system history S and given the two
Figure 5. and
The class histories differ in their LENOM 1..5 The computation of the overall Yesterday’s
threshold values t1 and t2 as follows:
Weather.

The pseudocode matches the math formula,
too.

EENOM 1..5 values which means that (i) the changes
2
4
3
A
1)
are more recent in the history of class B, (ii) in class E
8
> 1, T opLEN OM (S, t1)
>
the changes occurred in(S, t2) 6= ; history, Example. Inin the4 we present an example of how we check
its early
and (iii) Figure
<
T opEEN OM
2
3
B
Y Wi (S, t1 , t2 ) =
(6)
Yesterday’s through
history>of classLEN OM changes were scattered Weather with respect to a certain version. We display
> 0, T op A the (S, t1)
:
T opEEN OM
(S, t2) = ;
6 versions of a system with 7 classes (A-G). We want to check
the history more evenly.
Yesterday’s Weather when considering the 4th version to be the

6

7

4

9

9

3

3

4

2

2

2

1

5

4

1..i

i..n

1..i

i..n

1

C

Yesterday’s Weather is computed by counting the hits for
present one. Therefore, the versions between 1 to 3 are the past
all versions• The histories of classnumber ofE have almost and thesame 6th are the future ones.
and dividing them by the total C and posversions, the 5th and
sible hits. Thus, we obtain the result as a percentage with
We amount the
the
2
2
LENOM 1..5 value, because of the similar also considerof dimensions of D candidates and the 2
values between 0% and 100%.
really-changed set to be 3, that is, we want to check the assump-

changes in their recent history. The ENOM 1..5 values differ heavily because class E was changed more
4
throughout its history than class C.

3.2

E
F

(0 < n < 1)

of class E,
r removed.
M 1..5 and
he changes
) in class E
(iii) in the
ed through

t the same
amount of
M 1..5 valnged more

class D the
der that no
the values
1..5 the this
ce of noof entities

of class E,
r removed.
M 1..5 and
(5)
he S 0
changes
) in class E
(iii) in the
et of class
ed through
the candih the highThe Yestert the same
on of these
amount of
ry 1..5 valM belongs
version i at
nged more
among the
o version i.
it.
it function
ven the two
ce
noof entities

(5)
(6)

et of class
the hits for
the candiber of posh the high-

˛
˛
˛
˛
0˛
T opM (S, n) = S ˛
˛
˛

S 0 ✓YW = 3 / 8 = 37%
S,
|S 0 | = n
8x 2 S 0 , 8y 2 S S 0
M (x) > M (y)
Yesterday’s Weather applied

2

2

(i > 1; t1 , t2

2

2

2

7

3

6

3

4

5

4

6

3

hit

1..i

a really-changed history (i.e., in TopEENOM

(5)

)

i..n

)

Figure 4. The detection of a Yesterday’s Weather hit.

System

2

3

4

5

6

7

8

9

10 11

Versions

YW =

6 hits

= 60%

10 possible hits

Math formulas became more understandable.

Figure 5. The computation of the overall Yesterday’s
Weather.

2

1)

8
> 1, 1T opLEN OM1..i (S, t1)
5
4
>
<
T opEEN OMi..n (S, t2) 6= ;
Y Wi (S, t1 , t2 ) =
(6)
0, T opLEN OM1..i (S, t1)
>
:
1
2
4>
7T op
3
6 (S, t2) = ;
F
We formally define the Yesterday’s Weather applied on
EEN OMi..n

Example. In Figure 4 we present an example of how we check
Yesterday’s Weather with respect to a certain version. We display
6 versions of a system with 7 classes (A-G). We want to check
Yesterday’s Weather when considering the 4th version to be the
present one. Therefore, the versions between 1 to 3 are the past
versions, and the 5th and 6th are the future ones.
We also consider the dimensions of the candidates and the
really-changed set to be 3, that is, we want to check the assump-

n versions of a system history S given two threshold values
hit
3
4
5
4
6
3
Yesterday’s Weather is
t1 andG 2 as in Equation 7. computed by counting the hits for
t
all versions and dividing them by the future number of postotal
present
past
versions
sible hits.>Thus,t2 obtain version
the result versions
as a percentage with
(n 2; t1 , we 1)
Legend:
values between 0% and 100%.Pn 1 Y Wi (S, t1 , t2 )
i=2

Y W1..n (S, t1 , t2 ) =

a candidate history (i.e., in TopLENOM
n 2

1..i

a really-changed history (i.e., in TopEENOM
2

4

a candidate history (i.e., in TopLENOM

E

A

2

Obtaining the overall value was just an
future
present
past
versions
version
versions
average.
Legend:

Wehit
formally define the
hit
hit
hit
hit
hit
hit on
n versions of a system history S given two threshold values
For a system version i, we compare= the 8set87% class
YW 7 / = of
t1 and t2 as in Equation 7.
histories with the highest LENOM 1..i values (the candidates set)> 2; t ,the set of the class histories with the highwith t
(n
1)
1 2
est EENOM i..n values (the really-changed set). The YesterPn 1
Y Wi (S, t1 , t2 )
day’s Weather assumption )holds i=2the intersection of these
if
Y W1..n (S, t1 , t2 =
(7)
n 2
sets is not empty, that is at least one class history belongs
to both sets. This means that for the classes in version i at
least one of the recently most changed classes is among the
2
4
3
5
6
7
most A
changed classes in the near future relative to version i.
If the assumption holds for version i we have a hit.
2
3
4
9
9
B
We formally define the Yesterday’s Weather hit function
applied on version i of a system history S and given the two
1
3
3
4
C
threshold values t1 and t2 as follows:
D

1

G

Measuring Yesterday’s Weather

Before defining the YW function, we introduce the notion of top n of entities out of an original set S of entities
with hit highest M measurement value: hit
the
hit

class D the
der that no
the values
1..5 of this

1)
t2) 6= ;
S
1)0
t2) = ;

5

(i > 1; t1 , t2

4

3

5

6

(7)

)

i..n

)

4

7

Figure 4. The detection of a Yesterday’s Weather hit.
2

C

3

4

9

9

1

B

3

3

4

yWFor: yesterdayCheck for: tomorrowCheck
^ ( 3 to: self versions size ) collect: [ :i |
| System2
22 32 4 5 2 6 7 28 92 10 11
D yesterday tomorrow |
yesterday := self
Versions
selectByExpression: yesterdayCheck
appliedFromVersionIndex: 1
1
5
4
E
toVersionIndexAndPresentInIt: i - 1.
tomorrow := self
selectByExpression: tomorrowCheck
1
2appliedFromVersionIndexAndPresentInIt: i - 1
4
76 hits
3 = 60%
6
F
YW =
toVersionIndex: self versions size.
yesterday intersectWith: 10 possible]hits
tomorrow
hit

3

4

Figure 5.

past

G

5

4

present

6

3

future

The computation of
yWFor: yesterdayCheck for: tomorrowCheckthe overall Yesterday’s
versions
version
versions
| hits |
Weather.
Legend:
hits := (self detailedYWFor: yesterdayCheck for: tomorrowCheck)
sum: [ :each |
each isEmpty
a candidate history (i.e., in TopLENOM
)
ifTrue: [0]
1..i
ifFalse: [1]].
^ hits / (self versions size - 2)

Example. InaFigure 4 we present an example of how we check
really-changed history (i.e., in TopEENOM
)
i..n
Yesterday’s Weather with respect to a certain version. We display
6 versions of a system with 7 classes (A-G). We want to check
Yesterday’s Weather when considering the 4th Weather to be the
Figure 4. The detection of a Yesterday’s version hit.
present one. Therefore, the versions between 1 to 3 are the past
versions, and the 5th and 6th are the future ones.

And, in the end, even the actual
implementation became similarly simple (and
even more generic).
All in all, it was because I could not present the
idea, that I had to rethink the approach
altogether. Of course, I could have just
accepted that the problem is just too complex
and cannot be made simpler, but that is never a
good enough point.
Content and form must co-exist, because
neither has value without the other.

content

form

If you think design is for designers, please
change your mind. Design is not a job. Not
anymore. Today it is a responsibility.

are
you
a

designer?

Specifically related to talks, it is in everyone’s
best interest to have interesting talks. No
audience wants to be bored or be left
uninterested.
When you take the stand, the responsibility
falls on you.

presenting is storytelling
www.tudorgirba.com

moosetechnology.org

humane-assessment.com

www.tudorgirba.com

demo-driven.com

pharo.org
Tudor Gîrba
www.tudorgirba.com

http://creativecommons.org/licenses/by-nc-sa/3.0/

More Related Content

Similar to Presenting is storytelling at Uni Zurich - handouts (2014-03-05)

Content to Convert - TMI Tourism Presentation | Cheltenham May 14
Content to Convert - TMI Tourism Presentation | Cheltenham May 14Content to Convert - TMI Tourism Presentation | Cheltenham May 14
Content to Convert - TMI Tourism Presentation | Cheltenham May 14e-Strategy
 
Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18Cammy Bean
 
Writing for new media
Writing for new mediaWriting for new media
Writing for new mediaDori Adar
 
Enhancing your power point presentation
Enhancing your power point presentationEnhancing your power point presentation
Enhancing your power point presentationAnne-Maree Kerr
 
Pres.course
Pres.coursePres.course
Pres.coursesabary_r
 
How to Deliver a Great Presentation
How to Deliver a Great PresentationHow to Deliver a Great Presentation
How to Deliver a Great PresentationBerlin Office
 
Ten Tips to Better Powerpoint
Ten Tips to Better PowerpointTen Tips to Better Powerpoint
Ten Tips to Better PowerpointGeoff Stewart
 
How to stand out in a conference
How to stand out in a conferenceHow to stand out in a conference
How to stand out in a conferenceJohn Abrena
 
How not to pitch
How not to pitchHow not to pitch
How not to pitchWhitesmith
 
Storytelling over coffee
Storytelling over coffeeStorytelling over coffee
Storytelling over coffeeWayne Aspland
 
How to Rock a Presentation by Cynthia Hartwig at Two Pens
How to Rock a Presentation by Cynthia Hartwig at Two PensHow to Rock a Presentation by Cynthia Hartwig at Two Pens
How to Rock a Presentation by Cynthia Hartwig at Two PensCynthia Hartwig
 
Become a BIGFiSH Online: How to Build a Following & Find Lifetime Customers
Become a BIGFiSH Online: How to Build a Following & Find Lifetime CustomersBecome a BIGFiSH Online: How to Build a Following & Find Lifetime Customers
Become a BIGFiSH Online: How to Build a Following & Find Lifetime CustomersDanielle Leslie
 
The 4 Most Important PowerPoint RULES for Successful Presentations
The 4 Most Important PowerPoint RULES for Successful PresentationsThe 4 Most Important PowerPoint RULES for Successful Presentations
The 4 Most Important PowerPoint RULES for Successful PresentationsNed Potter
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Tudor Girba
 

Similar to Presenting is storytelling at Uni Zurich - handouts (2014-03-05) (20)

Content to Convert - TMI Tourism Presentation | Cheltenham May 14
Content to Convert - TMI Tourism Presentation | Cheltenham May 14Content to Convert - TMI Tourism Presentation | Cheltenham May 14
Content to Convert - TMI Tourism Presentation | Cheltenham May 14
 
Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18Writing Better e-Learning Scripts #Training18
Writing Better e-Learning Scripts #Training18
 
Writing for new media
Writing for new mediaWriting for new media
Writing for new media
 
Enhancing your power point presentation
Enhancing your power point presentationEnhancing your power point presentation
Enhancing your power point presentation
 
Pres.course
Pres.coursePres.course
Pres.course
 
How to Deliver a Great Presentation
How to Deliver a Great PresentationHow to Deliver a Great Presentation
How to Deliver a Great Presentation
 
Slideology sample30
Slideology sample30Slideology sample30
Slideology sample30
 
Ten Tips to Better Powerpoint
Ten Tips to Better PowerpointTen Tips to Better Powerpoint
Ten Tips to Better Powerpoint
 
How to stand out in a conference
How to stand out in a conferenceHow to stand out in a conference
How to stand out in a conference
 
How not to pitch
How not to pitchHow not to pitch
How not to pitch
 
Storytelling over coffee
Storytelling over coffeeStorytelling over coffee
Storytelling over coffee
 
Poster Mind Map
Poster Mind MapPoster Mind Map
Poster Mind Map
 
Poster Mind Map
Poster Mind MapPoster Mind Map
Poster Mind Map
 
English for Presentations
English for PresentationsEnglish for Presentations
English for Presentations
 
How to Rock a Presentation by Cynthia Hartwig at Two Pens
How to Rock a Presentation by Cynthia Hartwig at Two PensHow to Rock a Presentation by Cynthia Hartwig at Two Pens
How to Rock a Presentation by Cynthia Hartwig at Two Pens
 
Become a BIGFiSH Online: How to Build a Following & Find Lifetime Customers
Become a BIGFiSH Online: How to Build a Following & Find Lifetime CustomersBecome a BIGFiSH Online: How to Build a Following & Find Lifetime Customers
Become a BIGFiSH Online: How to Build a Following & Find Lifetime Customers
 
The 4 Most Important PowerPoint RULES for Successful Presentations
The 4 Most Important PowerPoint RULES for Successful PresentationsThe 4 Most Important PowerPoint RULES for Successful Presentations
The 4 Most Important PowerPoint RULES for Successful Presentations
 
Presentation tips by rodinhood
Presentation tips by rodinhoodPresentation tips by rodinhood
Presentation tips by rodinhood
 
Fall 2015 3700 Print Digital
Fall 2015 3700 Print DigitalFall 2015 3700 Print Digital
Fall 2015 3700 Print Digital
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
 

More from Tudor Girba

Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismTudor Girba
 
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Tudor Girba
 
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Tudor Girba
 
Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Tudor Girba
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cardsTudor Girba
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingTudor Girba
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks laterTudor Girba
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Tudor Girba
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomTudor Girba
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeTudor Girba
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Tudor Girba
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systemsTudor Girba
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Tudor Girba
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaserTudor Girba
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Tudor Girba
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Tudor Girba
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Tudor Girba
 
Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Tudor Girba
 
Holistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichHolistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichTudor Girba
 

More from Tudor Girba (20)

Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
 
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
 
GT Spotter
GT SpotterGT Spotter
GT Spotter
 
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)
 
Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Don't demo facts. Demo stories!
Don't demo facts. Demo stories!
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective Thinking
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks later
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development room
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading code
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systems
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaser
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011
 
Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011Flexible analysis with Moose at Jazoon 2011
Flexible analysis with Moose at Jazoon 2011
 
Holistic software assessment at the University of Zurich
Holistic software assessment at the University of ZurichHolistic software assessment at the University of Zurich
Holistic software assessment at the University of Zurich
 

Presenting is storytelling at Uni Zurich - handouts (2014-03-05)

  • 1. www.tudorgirba.com Presenting Tudor Gîrba www.tudorgirba.com Roadmap • • www.tudorgirba.com The following slides are intended to be read either by looking at the laptop screen, or with the back to the audience. Every talk must start with a roadmap So: • Introduction • Slides • • • • • Template • One common wisdom is that there should be a roadmap at the beginning. That is many times a good thing, only we should design the roadmap to be meaningful. Design Audience Story More about slides Conclusion http://www.tudorgirba.com/blog/meaninglessroadmap © Tudor Girba Zürich - April 23, 2013 Roadmap • • 2 www.tudorgirba.com Every talk must start with a roadmap So: • Introduction • Slides • • • • • Template • Design Audience Story More about slides Conclusion © Tudor Girba Zürich - April 23, 2013 3 This is actually true. About this talk • • • www.tudorgirba.com I used to be extremely afraid of speaking in public • In fact, I was so afraid that I could hardly speak But, because I had to speak, I spent a bit of time thinking about it Today, I will share with you some of my reflections on how to do presentations • I am actually quite nervous to talk about it here © Tudor Girba Zürich - April 23, 2013 4
  • 2. Roadmap • • www.tudorgirba.com Every talk must start with a roadmap So: • Introduction • Slides • • • • • Template Audience Story More slides Conclusion © Tudor Girba Zürich - April 23, 2013 Slides • • • • • • 5 www.tudorgirba.com 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 ... © Tudor Girba Zürich - April 23, 2013 The template in 4 steps 6 www.tudorgirba.com If you take this approach, just make sure to not add the total amount of slides, because you do not want to discourage the audience :) 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 © Tudor Girba Zürich - April 23, 2013 7 This is one way to deliver talks. While it can be straightforward, it is completely inneffective. The audience gets bored, and the retention is low. STOP
  • 3. presenting is storytelling www.tudorgirba.com why are we here? In abstract, a lecture is an educational talk. lecture |ˈlek ch ər| noun an educational talk to an audience legere latin verb action of reading, that which is read But, where does the design of a lecture come from? Lecture come from legere which is a latin verb denoting the act of reading. A couple of centuries ago, before the printing press, reading was a technological solution for spreading information.
  • 4. lecture |ˈlek ch ər| noun an educational talk to an audience Lectures should not stick to the original meaning anymore. There is no reason. We are no longer in dire need of information. What should the goal of a lecture be? To frame the problem and to incite the audience to investigate it further. The best tool to animate an audience is through a story. presenting is storytelling www.tudorgirba.com The story does not have to be a fairy tale to capture my imagination. In fact, it should not be a fairy tale. story = fairy tale Good stories are typically not straightforward. They require design and discovery. design your story
  • 5. The first step is to figure out what your audience is? What do they expect? What are their values? who is your audience? let me tell you a story about Paris http://www.flickr.com/photos/pingnews/ 421079337/sizes/l/ Let me tell you a story about how I went to Paris ...
  • 6. and I wanted to see how other people see Paris. I was surprised to see that some don’t even look at Paris. And when they do look, they do it in a strange way. At night, we finally got to Louvre.
  • 7. And we set our minds to go see Mona Lisa. So, the second day, we took the metro. And we got to Louvre. And just near the information sign ...
  • 8. We found Mona Lisa. Actually it was not really Mona Lisa, but just a guide about The Da Vinci Code. We did not want the guide, and we started to search Mona Lisa by ourselves. And we finally got to the room of Mona Lisa. Because we were not allowed to take pictures inside the room, I took a picture from outside of it. But, no one else took the sign seriously. My take is that they did not regard themselves taking pictures, they regarded themselves as just looking at Mona Lisa.
  • 9. Even though some not even looked. Or when they did, they did it in a peculiar way. If you want to tell a story, you have to know your audience. http://www.tudorgirba.com/blog/the-audienceis-your-friend And you have to know how they see the world.
  • 10. And if you think you know your audience and how it sees the world, think again. Your audience will never be the same and it will never seize to surprise you. The first step is to figure out what your audience is? What do they expect? What are their values? who is your audience? message message message message message message message message message messagemessage message message message message message message message message message message message message message message After you think you know your audience, choose your message. Any thing can be “sold” in several ways. Some are more obvious than others. message message message message message message message message message message message message message message message message message message message message message message message messagemessage message message message message message message message message message message message message message message message message message message message message message message message message message message You should choose the message that matches your audience and your contextual goal. The message does not have to be as comprehensive as the material it covers. Its goal is to focus the story.
  • 11. one message Strive to choose one message. Not two, not one and a half. One. A 30 seconds ad has one punch line. A good movie has one single message that summarizes the main point (of course, is the movie is not Pulp Fiction). So should your talk have just one core message. Bring plenty of evidence, but focus on one message. Ads have one message. Most movies have one message. Sometimes the message is directly in the title.
  • 12. Modeling History to Understand Software Evolution Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern 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. You might say that ads and movies are just for entertaining. But, a PhD dissertation is also about one thesis. 3-5 years of work and all you get to defend is one single statement. vorgelegt von Tudor Gîrba von Rumänien Leiter der Arbeit: Prof. Dr. Stéphane Ducasse Prof. Dr. Oscar Nierstrasz Institut für Informatik und angewandte Mathematik Strive to choose one message. one message Slides used to be called visual aids. The difference between the two terms is that “slides” describes the technology, while “visual aids” describes the goal. slides These days, it is a must for a talk to be accompanied with slides. slides are visual aids Slides used to be called visual aids. The difference between the two terms is that “slides” describes the technology, while “visual aids” describes the goal. We focused so much on getting the technology right, that we forgot about the goal. Always have the goal in mind.
  • 13. These days, it is a must for a talk to be accompanied with slides. slides are visual Slides used to be called visual aids. The difference between the two terms is that “slides” describes the technology, while “visual aids” describes the goal. We focused so much on getting the technology right, that we forgot about the goal. Always have the goal in mind. aids Let’s take an example. Important sign • • • • • www.tudorgirba.com At this sign, stop, look around and proceed if no other car is coming your way. Imagine driving. What would you do if you would see this sign at a crossroad? 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. © Tudor Girba Zurich - April 23, 2013 50 STOP What about if you see this one? There is no doubt as to what you have to do. There are three reasons for this: - it is big so that we notice it - it is red so that we pay attention, and - it is so distinct and simple that it leaves no place for confusion. it only conveys the relevant information. The difference between the two signs is that one is detailed but only the other one is actually effective in traffic. STOP Slides should be like traffic signs: - They should stay on the side, - They should come to our attention for a very brief period, and - They should become invisible. How to achieve that?
  • 14. few details The good news is that not all details are important. In fact, only few details are important. are important When it comes to the English language, the Elements of Style is a book that should not be missed. omit needless words we sell fresh fish here fresh fish here
  • 15. fresh fish fresh You can almost not go wrong removing details. fresh
  • 16. for sale: baby shoes, never worn Ernest Hemingway http://en.wikipedia.org/wiki/ For_sale:_baby_shoes,_never_worn Twitter can be a great medium to exercise conciseness. This message is exactly 140 characters long. design is not the abundance of simplicity it is the absence of complexity http://www.amazon.com/Elements-GraphicDesign-Space-Architecture/dp/1581152507
  • 17. emphasizing everything IS emphasizing nothing One particular graphic design resource that is most often forgotten is whitespace. whitespace Whitespace is defined by the objects inside. Whitespace is not necessarily white.
  • 18. What is background and what is foreground? What about now? One small difference solves the conflict. You now perceive two blobs.
  • 19. But, is whitespace a wasted space? No. If you fill it completely, you lose everything. Whitespace can guide your eyes. For example, this arrangement implies no particular reading order. This one, however, will guide your eye line by line. … and this one, column by column.
  • 20. Let’s take a chart y x Simply not filling the whitespace reveals the data. y x Less can be even more. y x http://www.edwardtufte.com/tufte/books_vdqi remove chart junk increase data ink
  • 21. whitespace is a resource a resource whitespace is whitespace is a resource whitespace is a resource whitespace is whitespace whitespace whitespace is a resource whitespace is a resource whitespace is a resourcea resourceis a resource is a resource whitespace is a is a a resource whitespace is a resource whitespacewhitespace is a resource whitespace whitespace resource a resource whitespace is a whitespace is whitespaceresource resourceaisresource is a resourceis is resource is awhitespace whitespace is isresource whitespaceresource awhitespace is a is whitespace a is a resource iswhitespace whitespace resourceresource resource a resource a resource a resource whitespace is a is a resource whitespacewhitespace whitespace is a is a resource whitespace whitespace resource whitespace isisaaresource whitespace is a is a resource whitespace whitespace is a is a resourceresourceis a resource whitespacewhitespace is a resource whitespacea resource resource whitespace is whitespace is a resource whitespace is a resource whitespace whitespace is a resource a resource whitespace is a resource whitespacewhitespace is a resourcewhitespaceaisresource is a resource whitespace iswhitespaceaisresource is a resource whitespace is a resource whitespace is a resource whitespacewhitespace is whitespace is a whitespace is a resource is a resourceis a resource is a resourceis a resource whitespace whitespace whitespace whitespaceresource a resource is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resource whitespace is is resource whitespace is a resource whitespace is a resourcea a resource whitespace whitespace a resourcea is whitespace is a resource resource whitespace is a whitespace is a resource whitespace is iswhitespaceresource whitespace whitespace a resource resource whitespace resource a is is whitespaceais aaresource resource whitespaceresource is a is a is whitespace is a whitespace isis whitespace resource is a whitespace aisresource a resource whitespaceais a resourceresource whitespaceresource a resource resource is awhitespace a a resource is is is a resource resourcewhitespace whitespace whitespace whitespace whitespace whitespace is aisresource whitespace isisaaresourcearesourceis a resource is is is awhitespacewhitespace whitespace isresource resource whitespace resource aa resource a is whitespace is resource resource is is whitespace a whitespaceisawhitespaceisresource is resource whitespacea is is a resource whitespace is a resource resource whitespace resource whitespaceresource resourcewhitespace resource whitespace a resourcea resource resourcewhitespace is is whitespace whitespacewhitespace iswhitespace a whitespacewhitespaceresourceresource whitespaceisiswhitespace is iswhitespaceisresource isiswhitespaceaisresource a resource aaresource resource whitespace is a resource whitespaceiswhitespaceisawhitespaceisaaa a resource a a whitespace is aaresource isresource is resource resource whitespaceisiswhitespace aisisaa resourceresourceaisaresource is whitespace iswhitespaceiswhitespace resourceresourcewhitespaceais a resource whitespaceresourceisaresourcewhitespaceis isaaresource resource a resource a is whitespace whitespace iswhitespace whitespaceresourceaaresourceresourceresourceresource a resource whitespace resourcewhitespace a resource whitespaceiswhitespace resourceresource resourcewhitespace resource whitespaceresource aaaaawhitespaceiswhitespaceresourceaa resource is iswhitespaceis aa iswhitespace isaaresource a resource resourcewhitespace is whitespaceiswhitespace aisresource whitespacewhitespaceawhitespaceais a resource is whitespacewhitespace whitespacewhitespacewhitespaceresourceisawhitespaceawhitespace is isisa aresource aaaaresource awhitespacewhitespaceisaisresource whitespacewhitespaceisisaaresourceiswhitespace isisiswhitespaceaisresource resource a resource whitespaceresourceawhitespace iswhitespaceresource a resource whitespaceis is isresourcewhitespacewhitespaceresource is resourceais is whitespace a whitespace whitespaceresourceis aawhitespaceresource a resource whitespacewhitespacearesourceresourcewhitespacewhitespace is a resource is resource whitespace is resource is a whitespace a whitespace is resource resource is isis a whitespaceaaisresourcearesourceaawhitespacewhitespaceresourceresource iswhitespace resourcewhitespace a aaisresource aa resourceisresource whitespace whitespace whitespace whitespaceresource aisresourceis is is resourceis whitespace is resourceaawhitespaceis aaresourceresource whitespaceresource iswhitespaceaisresource isiswhitespace is isaa resource iswhitespacewhitespaceis is a resource resource whitespace is a whitespace isiswhitespace whitespacewhitespaceresourcea resourcea resourceaaresourceresource whitespace resource a a resourceresource whitespace resource whitespaceiswhitespace is a resource resourcewhitespace whitespace is a resource iswhitespace whitespace isisisresource is a resourceresource a resource whitespacewhitespace whitespacea whitespace is a whitespace whitespace isaa awhitespaceresourceis a aresourceis isaaresource whitespace whitespaceresourcewhitespaceisisawhitespaceresource whitespace aaresource isisa isisawhitespace aisaaresource is a is a a whitespace whitespace is is resource whitespace resource is resource resource is a resource resource resource whitespace isresource whitespace whitespace resource resource whitespaceiswhitespace resourceawhitespaceisiswhitespace is a resource whitespace whitespaceresource aaresourceiswhitespaceresource aiswhitespace is a resource resource whitespaceresource a resource whitespaceisisaaresource is a resource whitespace is a whitespace whitespace a whitespace a whitespace resource whitespace is a a whitespace whitespace isisisaresource is whitespace a is whitespace whitespace a resource a iswhitespace whitespace is aisresource resource whitespace whitespace iswhitespaceresource whitespace whitespace is aresource is whitespaceaa is a resourceresourceisisaaresourceisresource resource whitespace resource whitespace is resource resource a a whitespaceresourceis whitespace is whitespacewhitespaceisisa aresource whitespaceis a isresourceresource awhitespaceresource a is a resource is resource a whitespace a whitespace resource resource whitespace is aaresource is resource is resource a isisaa resource whitespaceresourceis is a resource whitespaceaaisisa resource whitespaceisis a whitespace is aaresourcea resourcewhitespace a resource whitespace aisaaresource resource whitespacewhitespaceresourcea resource whitespaceis whitespacewhitespaceisisaaresourcea whitespaceiswhitespaceaisresource whitespace is whitespaceis resource a resource whitespace resource whitespace whitespacearesource resource isis aisresource whitespace whitespace is resource a a resource resource resourceresource is whitespace whitespace isisaaresource resource a resource a is whitespaceresource iswhitespace is a resource aisresource whitespace is a aresource is whitespace whitespace whitespace is whitespace isis whitespaceaisresource whitespace isais resource is ais a resource whitespace resourcewhitespace a is resource a resource resource whitespace isaawhitespace resource a is a whitespacewhitespaceresource is aawhitespacewhitespace whitespacewhitespaceaisresource resource whitespace awhitespacewhitespace whitespace iswhitespaceis a resource isis resource resource a resource whitespacewhitespace iswhitespace whitespacewhitespace resource a resource whitespaceaisis is aiswhitespace iswhitespaceresource resourceresource resource resourcewhitespace whitespace whitespace whitespacewhitespaceaaisresourceisresource whitespacea isa aresourceresource is whitespace aresourcewhitespace is isaaresource a is a whitespace a resourceresource resource resource whitespace iswhitespace resource whitespacea is is whitespace isisawhitespacea awhitespacewhitespace isisaa resource whitespace is resourcea resourceis a resourceisresource is a whitespaceais a whitespacewhitespaceresourcewhitespaceaisresource resource whitespaceresourceawhitespace resourcewhitespace resourceresource whitespacewhitespace whitespace is aaresource whitespaceaiswhitespace is isisa isresourcewhitespace whitespaceaiswhitespaceis a resourceisaa resource whitespaceresource whitespace is resourceresource aresource is a a resource whitespace whitespace aisresourcewhitespaceawhitespaceaiswhitespace is is a resource whitespaceresource is aisresource whitespace aaisresource a whitespacewhitespace resource a resource whitespace resource is resource resourcewhitespace is a a resource whitespace is iswhitespaceresourceisresourcea resourceis a resourcea resource is a whitespace is a resource whitespaceresourcewhitespace is whitespace whitespace is whitespace is is is is aaresource is a a resource a iswhitespace is resource a resource whitespace whitespace is a isa aresource whitespacewhitespaceis aaresource resourceresource whitespace resource whitespace is resource whitespace is a resource whitespaceais aa resource resource whitespace isis a resource a resource a resource whitespace iswhitespace is a whitespace resource is whitespace whitespace is whitespace is a whitespace is a resourceresource whitespace is a resource whitespace is a resource is a resource whitespace is a resource whitespace iswhitespace is a resource a resource a resource whitespace is a resource whitespace whitespaceais is a resource whitespace resource whitespace is a resource whitespaceresource whitespaceresource whitespace is a is whitespace is ais is ais a resource whitespace resource whitespace a resource whitespace whitespace is a resourceresource whitespace is a resource whitespace is whitespace is a resource is a resource whitespace is ais a resource resource whitespace is a resource a whitespace whitespace is a resource whitespace is a resource whitespace is a resource whitespace is a resourceresource is a resource whitespace is aisresource whitespace a whitespace is a resource whitespace resource whitespace is a whitespace is a resource http://www.tudorgirba.com/blog/empty-yourslides http://www.youtube.com/watch?v=aeXAcwriid0 fill it for a reason One thing to remember is that slides are not documents. They do not have the same purpose and they do not have the same capabilities. As such, they should not be treated in the same way. If you feel the need to rely on a template like this, you are probably doing something wrong. Why exactly do we see so many slides that resemble documents? Take a look at what we see when we open the slideware program. The default template wants us to enter a title and some content in form of bullets. It is difficult to not put too many things on a slide, because the default look of PowerPoint urges you to add them. Most templates just go along these lines. Bullet points are not evil. They are just not the answer to everything. And they are especially not the answer to effective slide design.
  • 22. The projector is a different medium than the screen. projector = screen On the one hand, the projector has a much poorer resolution, and as the distances from which it is being watched differ greatly, we can only rely on it to deliver very few details accurately. On the other hand, the projector offers an opportunity: it allows us to focus on just one thing, and we can control the advance. This is an important characteristic that should be used So, next time you open your slideware program ... Start the design of slides from an empty canvas. Do not let the default document metaphor influence your choice. Take control. On the one hand, a slide is a poorer graphical than a printed document. On the other hand, their dynamic nature offer an opportunity: focus. A slide should encapsulate one concept and focus the attention of the audience.
  • 23. When each slide encapsulates a point, the story is in between these points. the tween in be story is http://www.iwm-kmrc.de/workshops/ visualization/sweller.pdf Text and slides • • • • www.tudorgirba.com http://www.smh.com.au/news/technology/ powerpoint-presentations-a-disaster/ 2007/04/03/1175366240499.html 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. © Tudor Girba Zurich - April 23, 2013 90 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. notes will set you free 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. http://www.iwm-kmrc.de/workshops/visualization/sweller.pdf Text and slides • • • • • www.tudorgirba.com http://www.smh.com.au/news/technology/powerpoint-presentations-a-disaster/ 2007/04/03/1175366240499.html 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. © Tudor Girba Zurich - April 23, 2013 1 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. notes will set you free Another option is to put the text in the notes and provide slides with notes for as printouts. This is how the previous two slides look like when they are printed with notes.
  • 24. When points are encapsulated in a slide, transition is what brings cohesion to the story. trans ition The slides overview is perhaps the most useful tool in your slideware because it is the one that has the potential to reveal the story. One rule of thumb is that if you cannot see what a slide is about in the overview, you probably have too much on it. Use the presenter tools to take notice of the next slide. This is the simplest approach to control the transition between these points. slides are visual aids
  • 25. Beside being visual, slides should be just aids. They should only complement the talk, not replace it. slides are visual aids This is how an empty slide looks like. And this is how it looks on a white. You should be able to deliver your message without slides. The audience is your friend and it wants you to succeed because if you would not succeed they would lose time. And who likes losing time these days? http://www.tudorgirba.com/blog/the-audienceis-your-friend slides are visual aids
  • 26. Recommended resources. m zen.co e.com tation presen art blog.du http://presentationzen.com http://thebackofthenapkin.com http://blog.duarte.com kin.com ap kofthen thebac tudorgirba.com/blog A great place to find examples of amazing talks is www.ted.com. d.com www.te http://www.tudorgirba.com/blog/ted-talks http://www.tudorgirba.com/blog/favorite-tedtalks-posted-until-2008 http://www.tudorgirba.com/blog/favorite-tedtalks-posted-in-2009 http://www.ted.com/talks/lang/en/ ken_robinson_says_schools_kill_creativity.html http://www.tudorgirba.com/blog/to-pause-ornot-to-pause presenting is storytelling www.tudorgirba.com What about talks that pertain technical facts? Does all this fluffy theory apply to them? what about technical talks?
  • 27. Facts alone are boring. And that is a fact. Regardless of how boring a subject appears to be, there always is at least one exciting story hidden in there. any fact has its own story Hans Rosling: http://www.ted.com/talks/ hans_rosling_shows_the_best_stats_you_ve_e ver_seen.html content form Designing and building the form is typically perceived as an effort that comes after the main effort of designing and building the content. That is not an optimal process, because we cannot reason about content in the absence of form. Content and form must co-exist, because neither has value without the other.
  • 28. • The histories of class C and E have almost the same methods were added or removed, therefore the values LENOM 1..5 value, because of the similar amount of of ENOM , EENOM 1..5 and of LENOM 1..5 of this changes in1..5 their recent history. The ENOM 1..5 valclass history are 0. ues differ heavily because class E was changed more • throughout its history than class C. B and of class E, In the histories of class A, of class 7 methods were detected as being added or removed. 3.2 The class histories differ in their LENOM 1..5 and Measuring Yesterday’s Weather EENOM 1..5 values which means that (i) the changes Before defining the YW history of we introduce the noare more recent in the function, class B, (ii) in class E tion of top n of entities out of an original setandof entities the changes occurred in its early history, S (iii) in the with the highestclass A the changes were scattered through history of M measurement value: the history more evenly. ˛ 2 4 (i > 1; t , t 3 1) 6 D yesterdayWeatherHits := 0. 2 2 2 8 > 1, > < > 0, > : 2 T op (S, t1) T op (S, t2) 6= ; T op (S, t1) T opEEN OMi..n (S, t2) = ; 2 previousClassHistoriesSortedByWENM do: [ :each | (each value getWENM ~= x) ifTrue: [ future present past valuesCount := valuesCount + 1. x:= each value getWENM]. version (valuesCount < topPreviousWENM) ifTrue: versions [ versions previousVersionsTopHistories addLast: each] Legend: ]. last2VersionsTopHistories := OrderedCollection new. a candidate history (i.e., in Top f class candie highYesterf these elongs on i at ong the rsion i. unction he two Figure 4. The detection of a Yesterday’s Weather hit. last2VersionsTopHistories := OrderedCollection new. last2Versions := OrderedCollection new. last2Versions addLast: (self allVersionNames at: (i-1)). last2Versions addLast: (self allVersionNames at: i). last2HistoriesSortedByENM := (self classHistories 10 11 System 2 3 4 5 6 7 8 9 selectFromReferenceVersionCollection: last2Versions) sortBy: [:a :b | a value getWENM >= b value getWENM]. Versions x := last2HistoriesSortedByENM first value getENM. valuesCount := 0. last2HistoriesSortedByENM do: [ :each | (each value getENM ~= x) ifTrue: [ valuesCount := valuesCount 6 hits + 1. x:= each value getENM]. (valuesCount < YW = topCurrentENM) ifTrue: [ = 60% last2VersionsTopHistories addLast: each] 10 possible hits ]. previousVersionsTopHistoriesNames := previousVersionsTopHistories collect: [ :each | each value name]. over := false. Figure last2VersionsTopHistories do: [:each | overall Yesterday’s 5. The computation of the ((previousVersionsTopHistoriesNames includes: (each value name)) and: [over not]) ifTrue: [ yesterdayWeatherHits := yesterdayWeatherHits + 1. over := true]. ]. ]. ^yesterdayWeatherHits/(self size - 1) asFloat. (6) =; hits for 5 4 E Figure 4. The detection of a1Yesterday’s Weather hit. 1 2 3 G System 4 2 Versions past versions F 4 3 5 7 4 5 4 3 6 present version 7 6 8 6 9 3 hit 10 11 future versions Legend: 6 in a candidate history (i.e.,hits YW = One way to explain Topis =via formulas. It can be it LENOM60% ) 1..i 10 possible hits daunting. a really-changed history (i.e., in TopEENOM ) i..n Figure 5. The computation of the overall Yesterday’s Figure Weather. 4. The detection of a Yesterday’s Weather hit. Example. In Figure 4 we present an example of how we check System 2 3 4 5 6 7 8 9 10 11 Yesterday’s Weather with respect to a certain version. We display Versions 6 versions of a system with 7 classes (A-G). We want to check Yesterday’s Weather when considering the 4th version to be the present one. Therefore, the versions between 1 to 3 are the past versions, and the 5th and 6th=are the 6 hits ones. 60% future YW = We also consider the dimensions of the candidates and the 10 possible hits really-changed set to be 3, that is, we want to check the assump- Figure 5. The computation of the overall Yesterday’s Weather. (6) 4 ) previousClassHistoriesSortedByWENM do: [ :each | (each value getWENM ~= x) ifTrue: [ valuesCount := valuesCount + 1. x:= each value getWENM]. (valuesCount < topPreviousWENM) ifTrue: [ previousVersionsTopHistories addLast: each] ]. Weather. ) ) last2Versions := OrderedCollection new. LENOM1..i last2Versions addLast: (self allVersionNames at: (i-1)). last2Versions addLast: (self allVersionNames at: i). last2HistoriesSortedByENM := (self classHistories a really-changed history (i.e., in TopEENOM selectFromReferenceVersionCollection: last2Versions) i..n (5) (7) I actually did not use formulas. Once I had the basic Figure 4 we present an example of how we check Example. Inidea, I just implemented it. Yesterday’s Weather with respect the implementation to measure And I could use to a certain version. We display 6 versions of a system with 7 classes (A-G). We want to check my assumption. It turned out to be my Yesterday’s Weather when considering the 4th version that the present one. Therefore, the versions between 1 to 3 are the past assumption was right: versions, and the 5th and 6th are the future ones. On consider systems of the candidates and the We also some the dimensions it makes sense, on others it really-changed not.be 3, that is, we want to check the assumpdoes set to previousVersionsTopHistories := OrderedCollection new. he noentities 4 Y Wi (S, t1 , t2 ) 3 n 26 a candidate history (i.e., in TopLENOM 2 x := previousClassHistoriesSortedByWENM first value getWENM. hit valuesCount := 0. 5 3 4 4 6 3 1 i=2 1..i 1 3 3 4 C http://scg.unibe.ch/archive/papers/ a really-changed history (i.e., in TopEENOM Girb04bYesterdayWeather.pdf) 2 2 2 2 2 2 i..n D (2 to: self allVersionNames size) | Yesterday’s 'this algorithm is do: [: iand complex'. Weather is computed by counting the hits for self smelly: too big all versions and dividing them by5the total number of pos1 4 E previousClassHistoriesSortedByWENM := (self classHistories selectFromReferenceVersionCollection: sible hits. Thus,:bwea obtain the>= currentVersions) sortBy: [:a | value getWENM result as a percentage with b value getWENM]. currentVersions addLast: (self allVersionNames values between 0% and 100%. 3 at: i). 1 2 4 7 6 F G 5 Pn 2 B 7 1 2 yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM 3 9 9 topCurrentENM 4 | currentVersions previousClassHistoriesSortedByWENM 1..i LEN OM yesterdayWeatherHits last2VersionsTopHistories last2Versions EEN OMi..n last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories 1 12 i 3 4 C previousVersionsTopHistoriesNames over | 3 LEN OM1..i currentVersions := OrderedCollection new. currentVersions addLast: (self allVersionNames at: 1). 2 B andTopCurrentENM: Y W (S, t , t ) = e same ount of .5 vald more 5 2 1 2 4 F Let me tell you a7story about the first paper I hit ever 3wrote. 5It was about predicting changes in 4 4 6 3 G a software system using a Yesterday’s Weather 2 past 4 3 5 6 A future 7 present versions metaphor. 3 version versions Legend: 2 4 9 9 changes in their recent history. The ENOM 1..5 values system version i, we compare the set of more For a differ heavily because class E was changed class throughout its history LENOM histories with the highest than class C.values (the candi1..i dates set) with the set of the class histories with the high3.2 Measuring Yesterday’s Weather est EENOM i..n values (the really-changed set). The Yesterday’s Weather assumption holds if the intersection of these setsBefore empty, that is at least one class history belongs is not defining the YW function, we introduce the notion of sets.nThis means out of an original set S of entities to both top of entities that for the classes in version i at with the of the recently most changed classes is among the least one highest M measurement value: most changed classes in the near˛future relative to version i. ˛ S 0 S, ˛ If the assumption holds for version i0 ✓= n we have a hit. ˛ |S | (0 <formally define the Yesterday’s Weather hit function n < 1) T opM (S, n) = S 0 ˛ (5) We ˛ 8x 2 S 0 , 8y 2 S S 0 ˛ ˛ M (x) > M (y) applied on version i of a system history S and given the two threshold values t1 and t2 as follows: For a system version i, we compare the set of class histories t1 , t2 the highest LENOM 1..i values (the candi(i > 1; with 1) dates set) with the set 8 the class histories (S, t1) highof with the > > 1, T opLEN OM1..i < est EENOM i..n values (the really-changed set). t2) 6=YesterT opWeatheri..n (S, The ; EEN OM applied on We formally define, tthe= Yesterday’s Y Wi (S, (6) day’s Weather t1 2 ) > 0, T opLEN OM1..i (S, t1)of these assumption holds if the intersection > : n versions of a system history S given two threshold values; T opone class history = EEN OMi..n (S, t2) belongs sets is not empty, that is at least t1 and t2 as in Equation 7. to both sets. This means that for the classes in version i at Yesterday’s Weather is computed by counting the hits for least one of the recently most changed classes is among the all (n > 2; t1 ,and dividing them by the total number of posversions t2 1) most changed classes in the near future relative to version i. Pn sible hits. Thus, we obtain the 1result(S, t1 , t2 ) Y W as a percentage with If the assumption tholds = version ii we have a hit. (7) Y W1..n (S, 1 , t2 ) for i=2 values between 0% and 100%. n 2 We formally define the Yesterday’s Weather hit function applied on version i of a system history S and given the two threshold values t1 and t2 as follows: 4 A 1 1) Y W1..n (S, t1 , t2 ) = ˛ S 0 ✓ S, ˛ • < n <histories of(S, n) = S 0 ˛ |SE| = n almost the same The 1) T op class C and 0 have ˛ (0 (5) M 0 0 ˛ LENOM 1..5 value, because 8x 2 S ,similar amount of ˛ of the 8y 2 S S ˛ M (x) > M (y) lass E, moved. .5 and hanges class E ) in the hrough 2 E (n > 2; t1 , t2 yesterday’s weather s D the that no values of this =; t1 andDt2 as in Equation 7. 2 2 2 Example. In Figure 4 we present an example of how we check Yesterday’s Weather with respect to a certain version. We display 6 versions of a system with 7 classes (A-G). We want to check Yesterday’s Weather when considering the 4th version to be the present one. Therefore, the versions between 1 to 3 are the past But, something bothered me. Even if Smalltalk is a beautifully concise language, my code was loong.
  • 29. 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). last2HistoriesSortedByENM := (self classHistories selectFromReferenceVersionCollection: last2Versions) And I knew it was ugly and that I should do something about it. I just did not know what. yesterdayWeatherProbabilityWithTopPreviousWENM: topPreviousWENM andTopCurrentENM: topCurrentENM | currentVersions previousClassHistoriesSortedByWENM yesterdayWeatherHits last2VersionsTopHistories last2Versions last2HistoriesSortedByENM x valuesCount previousVersionsTopHistories previousVersionsTopHistoriesNames over | currentVersions := OrderedCollection new. currentVersions addLast: (self allVersionNames at: 1). And the worse thing of all was that nobody could really understand what I was doing. Of course, the paper got rejected, too. 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). last2HistoriesSortedByENM := (self classHistories selectFromReferenceVersionCollection: last2Versions) 30% 90% I stepped back. What exactly was I doing? I thought of a metaphor. In Switzerland, using yesterday’s weather as a predictor for today’s weather is a poor prediction model. However, in Sahara, it is a great way to predict weather, given that most days look like the previous one. This prediction model is contextual to the place, or system, in which it is to be applied. So, past YesterdayWeatherHit(present): past:=all.topChanged(beginning, present) future:=all.topChanged(present, end) past.intersect(future).notEmpty() future I eventually created a small picture and based on that I rethought the model. It turned out that the algorithm to check the assumption for each day was three lines long.
  • 30. Figure 4. The detection of a Yesterday’s Weather hit. For a system version i, we compare the set of class histories with During the displayed history (5 versions) of class D the the highest LENOM 1..i values (the candi• We formally define the Yesterday’s Weather applied on dates set) with the set of the class histories with the highn versions of a system history S given two threshold values est EENOM i..nnumber of methods remained 2. We consider that no values (the really-changed set). The YesterSystem 2 3 4 5 6 7 8 9 10 11 t1 and t2 as in Equation 7. day’s Weather methods wereifadded or removed, therefore the values assumption holds the intersection of these Versions sets is not empty, ENOM least, one class history and of LENOM of that is at 1..5 EENOM 1..5 belongs of this 1..5 to both sets. This means that for the classes in version i at (n > 2; t1 , t2 1) least one of theclass history are 0.classes is among the recently most changed 6 hits Pn 1 most changed classes in the near future relative to version i. past future YW = 10 possible hits = 60% W (S, t , t ) = i=2 Y Wi (S, t1 , t2 ) Y 1..n (7) • In the for version we have a hit. 1 2 If the assumption holds histories iof class A, of class B and of class E, n 2 We formally define the Yesterday’s Weather hit function added or removed. 7 methods were detected as being applied on version i of a system history S and given the two Figure 5. and The class histories differ in their LENOM 1..5 The computation of the overall Yesterday’s threshold values t1 and t2 as follows: Weather. The pseudocode matches the math formula, too. EENOM 1..5 values which means that (i) the changes 2 4 3 A 1) are more recent in the history of class B, (ii) in class E 8 > 1, T opLEN OM (S, t1) > the changes occurred in(S, t2) 6= ; history, Example. Inin the4 we present an example of how we check its early and (iii) Figure < T opEEN OM 2 3 B Y Wi (S, t1 , t2 ) = (6) Yesterday’s through history>of classLEN OM changes were scattered Weather with respect to a certain version. We display > 0, T op A the (S, t1) : T opEEN OM (S, t2) = ; 6 versions of a system with 7 classes (A-G). We want to check the history more evenly. Yesterday’s Weather when considering the 4th version to be the 6 7 4 9 9 3 3 4 2 2 2 1 5 4 1..i i..n 1..i i..n 1 C Yesterday’s Weather is computed by counting the hits for present one. Therefore, the versions between 1 to 3 are the past all versions• The histories of classnumber ofE have almost and thesame 6th are the future ones. and dividing them by the total C and posversions, the 5th and sible hits. Thus, we obtain the result as a percentage with We amount the the 2 2 LENOM 1..5 value, because of the similar also considerof dimensions of D candidates and the 2 values between 0% and 100%. really-changed set to be 3, that is, we want to check the assump- changes in their recent history. The ENOM 1..5 values differ heavily because class E was changed more 4 throughout its history than class C. 3.2 E F (0 < n < 1) of class E, r removed. M 1..5 and he changes ) in class E (iii) in the ed through t the same amount of M 1..5 valnged more class D the der that no the values 1..5 the this ce of noof entities of class E, r removed. M 1..5 and (5) he S 0 changes ) in class E (iii) in the et of class ed through the candih the highThe Yestert the same on of these amount of ry 1..5 valM belongs version i at nged more among the o version i. it. it function ven the two ce noof entities (5) (6) et of class the hits for the candiber of posh the high- ˛ ˛ ˛ ˛ 0˛ T opM (S, n) = S ˛ ˛ ˛ S 0 ✓YW = 3 / 8 = 37% S, |S 0 | = n 8x 2 S 0 , 8y 2 S S 0 M (x) > M (y) Yesterday’s Weather applied 2 2 (i > 1; t1 , t2 2 2 2 7 3 6 3 4 5 4 6 3 hit 1..i a really-changed history (i.e., in TopEENOM (5) ) i..n ) Figure 4. The detection of a Yesterday’s Weather hit. System 2 3 4 5 6 7 8 9 10 11 Versions YW = 6 hits = 60% 10 possible hits Math formulas became more understandable. Figure 5. The computation of the overall Yesterday’s Weather. 2 1) 8 > 1, 1T opLEN OM1..i (S, t1) 5 4 > < T opEEN OMi..n (S, t2) 6= ; Y Wi (S, t1 , t2 ) = (6) 0, T opLEN OM1..i (S, t1) > : 1 2 4> 7T op 3 6 (S, t2) = ; F We formally define the Yesterday’s Weather applied on EEN OMi..n Example. In Figure 4 we present an example of how we check Yesterday’s Weather with respect to a certain version. We display 6 versions of a system with 7 classes (A-G). We want to check Yesterday’s Weather when considering the 4th version to be the present one. Therefore, the versions between 1 to 3 are the past versions, and the 5th and 6th are the future ones. We also consider the dimensions of the candidates and the really-changed set to be 3, that is, we want to check the assump- n versions of a system history S given two threshold values hit 3 4 5 4 6 3 Yesterday’s Weather is t1 andG 2 as in Equation 7. computed by counting the hits for t all versions and dividing them by the future number of postotal present past versions sible hits.>Thus,t2 obtain version the result versions as a percentage with (n 2; t1 , we 1) Legend: values between 0% and 100%.Pn 1 Y Wi (S, t1 , t2 ) i=2 Y W1..n (S, t1 , t2 ) = a candidate history (i.e., in TopLENOM n 2 1..i a really-changed history (i.e., in TopEENOM 2 4 a candidate history (i.e., in TopLENOM E A 2 Obtaining the overall value was just an future present past versions version versions average. Legend: Wehit formally define the hit hit hit hit hit hit on n versions of a system history S given two threshold values For a system version i, we compare= the 8set87% class YW 7 / = of t1 and t2 as in Equation 7. histories with the highest LENOM 1..i values (the candidates set)> 2; t ,the set of the class histories with the highwith t (n 1) 1 2 est EENOM i..n values (the really-changed set). The YesterPn 1 Y Wi (S, t1 , t2 ) day’s Weather assumption )holds i=2the intersection of these if Y W1..n (S, t1 , t2 = (7) n 2 sets is not empty, that is at least one class history belongs to both sets. This means that for the classes in version i at least one of the recently most changed classes is among the 2 4 3 5 6 7 most A changed classes in the near future relative to version i. If the assumption holds for version i we have a hit. 2 3 4 9 9 B We formally define the Yesterday’s Weather hit function applied on version i of a system history S and given the two 1 3 3 4 C threshold values t1 and t2 as follows: D 1 G Measuring Yesterday’s Weather Before defining the YW function, we introduce the notion of top n of entities out of an original set S of entities with hit highest M measurement value: hit the hit class D the der that no the values 1..5 of this 1) t2) 6= ; S 1)0 t2) = ; 5 (i > 1; t1 , t2 4 3 5 6 (7) ) i..n ) 4 7 Figure 4. The detection of a Yesterday’s Weather hit. 2 C 3 4 9 9 1 B 3 3 4 yWFor: yesterdayCheck for: tomorrowCheck ^ ( 3 to: self versions size ) collect: [ :i | | System2 22 32 4 5 2 6 7 28 92 10 11 D yesterday tomorrow | yesterday := self Versions selectByExpression: yesterdayCheck appliedFromVersionIndex: 1 1 5 4 E toVersionIndexAndPresentInIt: i - 1. tomorrow := self selectByExpression: tomorrowCheck 1 2appliedFromVersionIndexAndPresentInIt: i - 1 4 76 hits 3 = 60% 6 F YW = toVersionIndex: self versions size. yesterday intersectWith: 10 possible]hits tomorrow hit 3 4 Figure 5. past G 5 4 present 6 3 future The computation of yWFor: yesterdayCheck for: tomorrowCheckthe overall Yesterday’s versions version versions | hits | Weather. Legend: hits := (self detailedYWFor: yesterdayCheck for: tomorrowCheck) sum: [ :each | each isEmpty a candidate history (i.e., in TopLENOM ) ifTrue: [0] 1..i ifFalse: [1]]. ^ hits / (self versions size - 2) Example. InaFigure 4 we present an example of how we check really-changed history (i.e., in TopEENOM ) i..n Yesterday’s Weather with respect to a certain version. We display 6 versions of a system with 7 classes (A-G). We want to check Yesterday’s Weather when considering the 4th Weather to be the Figure 4. The detection of a Yesterday’s version hit. present one. Therefore, the versions between 1 to 3 are the past versions, and the 5th and 6th are the future ones. And, in the end, even the actual implementation became similarly simple (and even more generic). All in all, it was because I could not present the idea, that I had to rethink the approach altogether. Of course, I could have just accepted that the problem is just too complex and cannot be made simpler, but that is never a good enough point.
  • 31. Content and form must co-exist, because neither has value without the other. content form If you think design is for designers, please change your mind. Design is not a job. Not anymore. Today it is a responsibility. are you a designer? Specifically related to talks, it is in everyone’s best interest to have interesting talks. No audience wants to be bored or be left uninterested. When you take the stand, the responsibility falls on you. presenting is storytelling www.tudorgirba.com moosetechnology.org humane-assessment.com www.tudorgirba.com demo-driven.com pharo.org