SlideShare a Scribd company logo
agile steps
to improve
the status quo


www.tudorgirba.com
www.tudorgirba.com
2002




www.tudorgirba.com
PhD
2002           2005




www.tudorgirba.com
PhD            PostDoc
2002           2005             2009




www.tudorgirba.com
PhD            PostDoc
2002           2005                2009

                      Consultant



www.tudorgirba.com
agile steps
to improve
the status quo


www.tudorgirba.com
agile steps          challenge
to improve              demo
the status quo           listen
                       enable

www.tudorgirba.com
the status quo
the status quo
the existing state of affairs
Picture by _FXR
Picture by _FXR




F = m .a
E = m. c   2
pos t-it
the status quo
the existing state of affairs
the status quo
the sum of our assumptions
It’s not what you don’t know that kills you,
it’s what you know that isn’t so




                                                    o
                                        Tom de Marc
challenge
challenge
 present
presenting is storytelling
story = fairy tale
design
    your story
message
    message
            message
          message

              message
                        message


                                  message
                                                message



                                              message     message
                    message
                                           message
essage
         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
            message
          message

              message
                        message


                                  message
                                                message



                                              message     message
                    message
                                           message
essage
         message
              message                  message               message
                                                 message
    message             message                            message
                                            message
        message
  message                  message message                 message

   message                   message
                                     message
                   message
              message


message             message
                                            message          message
          message
one message
Modeling History
                              to Understand Software Evolution


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




                                                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
To provide a generic
                                                                            meta-model for
                                                                            expressing software
                                                                            evolution analyses,
                              Modeling History                              we need to recognize
                              to Understand Software Evolution              evolution as an explicit
                                                                            phenomenon and model
                                           Inauguraldissertation der
                                    Philosophisch-naturwissenschaftlichen
                                         Fakultät der Universität Bern
                                                                            it as a first class entity.

                                                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
one message
deliver one message
slides
slides are visual aids
slides are   visual   aids
Important sign
1. At this sign, stop, look around and proceed if no other car is
   coming your way.
2. Important!!!! The cars coming from the other directions will
   not have to stop.
3. This sign was put here by the authorities in charge.
4. This sign concerns vehicles only. Pedestrians should look at
   the signs dedicated to them.
5. This sign should not be touched or hindered in any way. Any
   violation is punishable according to the law.
STOP
Important sign

•   At this sign, stop, look around and proceed if no other car is




                                                                       STOP
    coming your way.

•   Important!!!! The cars coming from the other directions will not
    have to stop.

•   This sign was put here by the authorities in charge.

•   This sign concerns vehicles only. Pedestrians should look at
    the signs dedicated to them.

•   This sign should not be touched or hindered in any way. Any
    violation is punishable according to the law.
tailed                                                                effective
de
                    Important sign

 •   At this sign, stop, look around and proceed if no other car is




                                                                        STOP
     coming your way.

 •   Important!!!! The cars coming from the other directions will not
     have to stop.

 •   This sign was put here by the authorities in charge.

 •   This sign concerns vehicles only. Pedestrians should look at
     the signs dedicated to them.

 •   This sign should not be touched or hindered in any way. Any
     violation is punishable according to the law.
projector = screen
in bet ween
th e sto r y is
slides are   visual   aids
slides are visual   aids
en.com                              rte.com
pre   se ntationz                            blog.du
                                                    a




                                   kin.com
                           fthenap
                 t hebacko




                                              tudorgirba.com/blog
www.ted.com
presenting is storytelling
challenge
 present
challenge
 present
   demo
content
content   form
content   form
content   form
yesterday’s
weather
30%
30%   90%
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).
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)
      sortBy: [:a :b | a value getWENM >= b value getWENM].

  x := last2HistoriesSortedByENM first value getENM.
  valuesCount := 0.

  last2HistoriesSortedByENM do: [ :each |
     (each value getENM ~= x) ifTrue: [
       valuesCount := valuesCount + 1. x:= each value getENM].
     (valuesCount < topCurrentENM) ifTrue: [
       last2VersionsTopHistories addLast: each]
  ].

  previousVersionsTopHistoriesNames := previousVersionsTopHistories
    collect: [ :each | each value name].
  over := false.

  last2VersionsTopHistories do: [:each |
     ((previousVersionsTopHistoriesNames includes: (each value name))
     and: [over not]) ifTrue: [
       yesterdayWeatherHits := yesterdayWeatherHits + 1. over := true].
  ].
].

^yesterdayWeatherHits/(self size - 1) asFloat.
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).
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).
present
past




       present
past             future




       present
past             future




       present
past             future




       present
past             future




prediction hit          present
past             future



YesterdayWeatherHit(present):

past:=all.topChanged(beginning, present)

future:=all.topChanged(present, end)

past.intersect(future).notEmpty()




                       prediction hit             present
hit         hit               hit
                         YW = 3 / 8 = 37%




hit   hit   hit   hit   hit   hit    hit
                         YW = 7 / 8 = 87%
yWFor: yesterdayCheck for: tomorrowCheck
   ^ ( 3 to: self versions size ) collect: [ :i |
        | yesterday tomorrow |
        yesterday := self
                     selectByExpression: yesterdayCheck
                     appliedFromVersionIndex: 1
                     toVersionIndexAndPresentInIt: i - 1.
        tomorrow := self
                     selectByExpression: tomorrowCheck
                     appliedFromVersionIndexAndPresentInIt: i - 1
                     toVersionIndex: self versions size.
        yesterday intersectWith: tomorrow ]




yWFor: yesterdayCheck for: tomorrowCheck
   | hits |
   hits := (self detailedYWFor: yesterdayCheck for: tomorrowCheck)
             sum: [ :each | each isEmpty ifTrue: [0] ifFalse: [1]].
   ^ hits / (self versions size - 2)
content   form
content   form
challenge
   demo
challenge
   demo
    listen
challenge
   demo
    listen
  enable
It’s not Lupus
logy
          ed techno
establish
logy
          ed techno
establish
logy
          ed techno
establish
hn ive
                                   gy
                          tec rupt
                                olo
                            dis
                   logy
          ed techno
establish
1    2    3    4


5    6    7    8


9    10   15   11


13   14   12
1    2    3    4


5    6    7    8


9    10   15   11


13   14        12
1    2    3    4


5    6    7    8


9    10        11


13   14   15   12
1    2    3    4


5    6    7    8


9    10   11


13   14   15   12
1    2    3    4


5    6    7    8


9    10   11   12


13   14   15
1    2    3    4


5    6    7    8


9    10   11   12


13   14   15   16
1   2    3    4


5   6    7    8


9   10   11   12
What
Where
When
Who
How
What



        Why
Where
When
Who
How
challenge
   demo
    listen
  enable
agile steps          challenge
to improve              demo
the status quo           listen
                       enable

www.tudorgirba.com

More Related Content

More from Tudor Girba

Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Tudor 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
 
GT Spotter
GT SpotterGT Spotter
GT Spotter
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 cards
Tudor Girba
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective Thinking
Tudor Girba
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks later
Tudor 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 room
Tudor 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 code
Tudor 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 systems
Tudor Girba
 
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
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Tudor 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 teaser
Tudor 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 2011
Tudor 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
 
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)
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
 
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
 

Recently uploaded

Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 

Recently uploaded (20)

Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 

Agile steps to improve the status quo

  • 1. agile steps to improve the status quo www.tudorgirba.com
  • 4. PhD 2002 2005 www.tudorgirba.com
  • 5. PhD PostDoc 2002 2005 2009 www.tudorgirba.com
  • 6. PhD PostDoc 2002 2005 2009 Consultant www.tudorgirba.com
  • 7.
  • 8. agile steps to improve the status quo www.tudorgirba.com
  • 9. agile steps challenge to improve demo the status quo listen enable www.tudorgirba.com
  • 11. the status quo the existing state of affairs
  • 13.
  • 14.
  • 16.
  • 17.
  • 18. E = m. c 2
  • 19.
  • 20.
  • 22.
  • 23. the status quo the existing state of affairs
  • 24. the status quo the sum of our assumptions
  • 25. It’s not what you don’t know that kills you, it’s what you know that isn’t so o Tom de Marc
  • 30. design your story
  • 31. message message message message message message message message message message message message essage message message message message message message message message message message message message message message message message message message message message message message message message
  • 32. message message message message message message message message message message message message essage message message message message message message message message message message message message message message message message message message message message message message message message
  • 34.
  • 35.
  • 36.
  • 37. Modeling History to Understand Software Evolution Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern 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
  • 38. To provide a generic meta-model for expressing software evolution analyses, Modeling History we need to recognize to Understand Software Evolution evolution as an explicit phenomenon and model Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern it as a first class entity. 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
  • 43. slides are visual aids
  • 44. Important sign 1. At this sign, stop, look around and proceed if no other car is coming your way. 2. Important!!!! The cars coming from the other directions will not have to stop. 3. This sign was put here by the authorities in charge. 4. This sign concerns vehicles only. Pedestrians should look at the signs dedicated to them. 5. This sign should not be touched or hindered in any way. Any violation is punishable according to the law.
  • 45. STOP
  • 46. Important sign • At this sign, stop, look around and proceed if no other car is STOP coming your way. • Important!!!! The cars coming from the other directions will not have to stop. • This sign was put here by the authorities in charge. • This sign concerns vehicles only. Pedestrians should look at the signs dedicated to them. • This sign should not be touched or hindered in any way. Any violation is punishable according to the law.
  • 47. tailed effective de Important sign • At this sign, stop, look around and proceed if no other car is STOP coming your way. • Important!!!! The cars coming from the other directions will not have to stop. • This sign was put here by the authorities in charge. • This sign concerns vehicles only. Pedestrians should look at the signs dedicated to them. • This sign should not be touched or hindered in any way. Any violation is punishable according to the law.
  • 48.
  • 49.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. in bet ween th e sto r y is
  • 56. slides are visual aids
  • 58.
  • 59.
  • 60.
  • 61. en.com rte.com pre se ntationz blog.du a kin.com fthenap t hebacko tudorgirba.com/blog
  • 66.
  • 67.
  • 69. content form
  • 70. content form
  • 71. content form
  • 73.
  • 74. 30%
  • 75. 30% 90%
  • 76. 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).
  • 77. 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) sortBy: [:a :b | a value getWENM >= b value getWENM]. x := last2HistoriesSortedByENM first value getENM. valuesCount := 0. last2HistoriesSortedByENM do: [ :each | (each value getENM ~= x) ifTrue: [ valuesCount := valuesCount + 1. x:= each value getENM]. (valuesCount < topCurrentENM) ifTrue: [ last2VersionsTopHistories addLast: each] ]. previousVersionsTopHistoriesNames := previousVersionsTopHistories collect: [ :each | each value name]. over := false. last2VersionsTopHistories do: [:each | ((previousVersionsTopHistoriesNames includes: (each value name)) and: [over not]) ifTrue: [ yesterdayWeatherHits := yesterdayWeatherHits + 1. over := true]. ]. ]. ^yesterdayWeatherHits/(self size - 1) asFloat.
  • 78. 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).
  • 79. 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).
  • 80.
  • 81.
  • 83. past present
  • 84. past future present
  • 85. past future present
  • 86. past future present
  • 87. past future prediction hit present
  • 88. past future YesterdayWeatherHit(present): past:=all.topChanged(beginning, present) future:=all.topChanged(present, end) past.intersect(future).notEmpty() prediction hit present
  • 89. hit hit hit YW = 3 / 8 = 37% hit hit hit hit hit hit hit YW = 7 / 8 = 87%
  • 90. yWFor: yesterdayCheck for: tomorrowCheck ^ ( 3 to: self versions size ) collect: [ :i | | yesterday tomorrow | yesterday := self selectByExpression: yesterdayCheck appliedFromVersionIndex: 1 toVersionIndexAndPresentInIt: i - 1. tomorrow := self selectByExpression: tomorrowCheck appliedFromVersionIndexAndPresentInIt: i - 1 toVersionIndex: self versions size. yesterday intersectWith: tomorrow ] yWFor: yesterdayCheck for: tomorrowCheck | hits | hits := (self detailedYWFor: yesterdayCheck for: tomorrowCheck) sum: [ :each | each isEmpty ifTrue: [0] ifFalse: [1]]. ^ hits / (self versions size - 2)
  • 91. content form
  • 92.
  • 93.
  • 94. content form
  • 95. challenge demo
  • 96. challenge demo listen
  • 97. challenge demo listen enable
  • 98.
  • 100.
  • 101. logy ed techno establish
  • 102. logy ed techno establish
  • 103. logy ed techno establish
  • 104. hn ive gy tec rupt olo dis logy ed techno establish
  • 105.
  • 106. 1 2 3 4 5 6 7 8 9 10 15 11 13 14 12
  • 107. 1 2 3 4 5 6 7 8 9 10 15 11 13 14 12
  • 108. 1 2 3 4 5 6 7 8 9 10 11 13 14 15 12
  • 109. 1 2 3 4 5 6 7 8 9 10 11 13 14 15 12
  • 110. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 111. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  • 112. 1 2 3 4 5 6 7 8 9 10 11 12
  • 114. What Why Where When Who How
  • 115. challenge demo listen enable
  • 116. agile steps challenge to improve demo the status quo listen enable www.tudorgirba.com