Title: User Participation in Evolutionary Development
1User Participation in Evolutionary Development
Anders MørchInterMediaUniversity of
Osloanders.morch_at_intermedia.uio.nowww.intermedia
.uio.no
2Keywords from previous presentations
- Natural programming
- Gardening metaphor
- Runtime tailorability
- Domain-expert users
- From abstract to concrete
- From concrete to abstract
3Outline
- 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
4User 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
5Natural 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
6Two 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 were in) - Hypothesis Natural evolution can serve
asanalogy to identify and explain differences
between two kinds of software evolution
7Two kinds of software evolution
- Programming language evolution The evolution of
programming languages (e.g., Simula 67 gt C gt
Java) - Program evolution The evolution of an individual
member (a program, an application) created from a
programming language (Word 1 gt Word 4.0 gt Word
97, etc.) - Program evolution was first (seriously) tre-ated
by Lehman and Belady (IBM OS/360)
8Program evolution and programming language
evolution
Layers of program code in an application
Program evolution
Each layer can be implemented in the same (or a
different) language
Programming languages
Language evolution
Translation
(E.g. HDL1 gt HDL2 gt HDL3 Simula 67 gt C gt
Java)
9From 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
10Narrowing the micro/macro gap of NL
Unit of adaptation
Natural selection
macro
Individualsparticipation
inter- mediate
micro
Genetic variation
11Going too far is bypassing the issue?
Unit of adaptation
selection
macro
inter- mediate
Participation?
micro
variation
12Shortening the variation-selection loop
Variation
Genetic/Random
Deliberated
Selection
Natural
Artificial
13Adopting 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
14Analogical 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
15Artificial selection Pruning a bonsai tree
16Deliberated variation Grafting and budding a
fruit tree
17Past 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
18Evolving BasicDraw into KitchenDesign
- Example How to build a specialized drawing
- program from a generic program ?
Customization Integration Extension
KitchenDesign
BasicDraw
19Exposing aspects below the user interface
shiftMouseDown
altMouseDown
ctrlMouseDown
20Planned 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
21References
- 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/resear
ch/publications/ead/02Chap.pdf