1
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
User Participation in Evolutionary Development
User Participation in Evolutionary Development
Anders MørchInterMedia
University of [email protected]
www.intermedia.uio.no
2
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Keywords from previous presentationsKeywords from previous presentations
• Natural programming
• Gardening metaphor
• Runtime tailorability
• Domain-expert users
• From abstract to concrete
• From concrete to abstract
3
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
OutlineOutline
• User participation in development
• Evolution as guiding principle
– From natural to artificial evolution– End users as initiators of evolutionary change
• Level of abstraction appropriate for user participation (gardening metaphor)
• Past work
• Planned work
4
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
User participation in developmentUser participation in development
• User participation in Scandinavian system development has been about how to involve users in the early stages of development (analysis and design) and evaluation
• This is appropriate for easy-to-use systems
• One of the main EUD-Net goal is to move from easy-to-use to easy-to-develop systems
• Our interest: Users as active participants in the further development of existing systems
5
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Natural evolution as guiding principleNatural evolution as guiding principle
• Evolution by incrementally making small changes to existing systems over long time works remarkably well
• A step beyond ”one shot” framework instantiation (e.g. spreadsheet development)
• Principles of natural evolution have been successfully adopted in many other domains (building architecture, evolution of everyday tools, etc)
• Two levels of evolution: species and individual
6
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Two kinds of natural evolutionTwo kinds of natural evolution
• Phylogenetic evolution: The evolution of species (our gene pool; the gene pool of trees)
• Ontogenetic evolution: The evolution of an individual member of a species (you and me; the tree outside the building we’re in)
• Hypothesis: Natural evolution can serve asanalogy to identify and explain differences between two kinds of software evolution
7
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Two kinds of software evolutionTwo kinds of software evolution
• Programming language evolution: The evolution of programming languages (e.g., Simula 67 => C++ => Java)
• Program evolution: The evolution of an individual member (a program, an application) created from a programming language (Word 1 => Word 4.0 => Word 97, etc.)
• Program evolution was first (seriously) tre-ated by Lehman and Belady (IBM OS/360)
8
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Program evolution and programming language evolution
Program evolution and programming language evolution
Layers of program code in an application
Programming languages
Domain-orientedextensions
Generic extensions
Tailorable generic application
Application integration framework
Visual programminglanguages (VPL)
Scripting languages
Object-oriented languages
Binary languages (e.g. Java bytcode)
Hardware description languages (HDL)
Language evolution
Program
evolution
Trans
latio
n
Each layer can be implemented inthe same (or a different) language
(E.g. HDL1 => HDL2 => HDL3
Simula 67 => C++ => Java)
9
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
From natural to artificial evolutionFrom natural to artificial evolution
• NL works by two basic mechanisms: genetic variation and natural selection
• Genetic variation is a micro level mechanism that can cause permanent (inheritable) change in an organism
• Natural selection is a macro mechanism that is caused by external (environmental) factors
• The mechanisms are outside the reach of individuals and create a micro/macro gap
10
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Narrowing the micro/macro gap of NLNarrowing the micro/macro gap of NL
micro
inter-mediate
macroNatural selection
Genetic variation
Individualsparticipation
Unit of adaptation
11
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Going too far is bypassing the issue?Going too far is bypassing the issue?
micro
inter-mediate
macro
selection
variation
Participation?
Unit of adaptation
12
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Shortening the variation-selection loopShortening the variation-selection loop
Variation
Natural
Deliberated
Selection
Genetic/Random
Artificial
13
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Adopting evolutionary perspectives to EUDAdopting evolutionary perspectives to EUD
• Goal: users as active participants as creators of evolutionary change
• User participation requirements:
– unit of variation should approximate unit of selection
– unit of selection should approximate unit of use
• Designer perspective :
– Artificial selection – Deliberated variation
14
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Analogical solution (and metaphor)Analogical solution (and metaphor)
• “Gardening” as analogical solution
• Why: Gardening provides a level of abstraction that is suitable for user participation
• Two literal examples :
– “Pruning” as metaphor for artificial selection – “Grafting” as metaphor for deliberated variation
15
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Artificial selection: Pruning a bonsai treeArtificial selection: Pruning a bonsai tree
16
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Deliberated variation: Grafting and budding a fruit tree
Deliberated variation: Grafting and budding a fruit tree
17
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Past work at UiO: End-user tailoringPast work at UiO: End-user tailoring
• Techniques for deliberated variation (”application grafting”) :
– customization– integration – extension
• Application units as basic building blocks
• Application unit goes beyond GUI objects by providing access to levels of an application below the user interface
18
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Evolving BasicDraw into KitchenDesignEvolving BasicDraw into KitchenDesign
• Example: How to build a specialized drawing program from a generic program ?
BasicDraw KitchenDesign
Cu
sto
miz
atio
nIn
teg
rati
on
Ext
ensi
on
19
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Exposing aspects below the user interfaceExposing aspects below the user interface
12
3
shiftMouseDown
ctrlMouseDown
altMouseDown
1b
20
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
Planned workPlanned work
• Tools and techniques for artificial selection (“application pruning”) :
– intervention– de-coupling– conservation
• Component-based systems with embedded “gardening” tools
• Artificial selection as abstraction mechanism for turning components “off” during execution to cope with superfluous functionality growth
21
User Participation in Evolutionary Development
Pisa, 23/9 - 2002EUD-Net kick-off
ReferencesReferences
• An elaborated version of this presentation can be found in the following paper:
Mørch, A.I. Evolutionary Growth and Control in User Tailorable Systems. In Adaptive Evolutionary Information Systems. N. Patel (ed.). Idea Group Publishing, 2002.
(may take time to download ..)
http://www.intermedia.uio.no/ansatte/morch/research/publications/ead/02Chap.pdf