''Adapted from memory of my opening remarks at the Workshop on Object-Oriented Design (WOOD'94), Snowbird, Utah...''

'''Everything I Really Need to Know About Object-Oriented Design I Could Learn on a Black-Diamond Run.'''

Friends, I have, like you, struggled to understand the
fine points of each of our methodologies as presented here the
last few days.  And, I have been wondering if we aren't 
making this all more complicated than it need be.  I wondered
if designing isn't a lot like skiing, that is, easier to do
than to explain or prescribe.  Then I realized: everything I really
need to know about object-oriented design I could have 
learned last weekend skiing Utah's black-diamond runs.  
[Note, black diamonds mark the expert ski runs that had defeated 
the speaker until recently.]

What are these things that make designing (and skiing) a
thrilling and natural activity?  

	* Look Three Bumps Ahead
	* Use Your Edges
	* Have No Fear (related info in MakeFearFuel)

Why ''three bumps ahead''?  Well, things come 
pretty fast on those steep slopes.  When I'm looking 
at my ski tips I may get through the first bump but
I won't be ready for the second.  Same with software.
But I can't make plans beyond three bumps ahead.  
Things happen.  Conditions change.
I must be prepared to revise my plans with every turn.  

Now, to make these turns, I have to
''use my edges''.  I can't twist and 
turn my body to turn the skis;
I must let the ski's edge do the work.  
So, let me ask you, what's the object
designer's edge?

(silence)

Polymorphic message sends!  That's what we use to turn
a design around a bump.  We plan and balance our designs
just so we can apply that edge when we need it, which in 
practice is most of the time.

Finally, while skiing or designing I must ''have no fear''. 
Fear will distract me
from the relentless stream of decisions I
must make to get down the slope or through the design.

I met a woman last weekend
that learned to ski here in Utah on the black-diamond runs.
She started on them, before she knew they were to be feared.
It worked.
Likewise, I learned objects before I knew they were
to be feared.  I learned them quickly and know them well.

Could we be making too much of this object-oriented design
business?  Could we really just be scaring people; selling
fear, which sells quite well?  
We should have more faith in people.  We should simply
teach that objects introduce an ''edge'', 
that the edge lets us make sharp ''turns'', 
and that neither should be ''feared''.

-- WardCunningham

------------

I like your analogies. I have always liked the creative aspects of both skiing and software. Software is creative in  how you go about solving a problem. Within a set of constraints (the terrain), you can pick you own unique way of solving the problem (like you pick your own unique line). Both also have a lot to do with commitment. You commit to solving a problem as you have to commit to the fall line. Both experiences always teach me something new every time. -- MikeDolbear

You're right.  Being tentative ruins both good slopes and
difficult projects.  There is plenty of time to think over your
options while riding on the chair. -- WardCunningham
 

...or when picking yourself and your equipment up after a
"helicopter" that ends with a "face plant" that results in
a "yard sale." -- DonOlson

----


I'm fairly sure design is not analogous to skiing, and I accuse you of gratuitously enthusing about your skiing holiday when you should be describing a computing methodology. -- Bill

The meeting was held at a ski resort. It was hard not to think about skiing when the wall of windows in the conference room looked out over some of the finest skiing in North America. -- WardCunningham

	* http://www.snowbird.com/