9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Design and Workmanship
@ 2003-09-15  6:33 Laura Creighton
  2003-09-15  8:41 ` boyd, rounin
  2003-09-15 14:42 ` Wes Kussmaul
  0 siblings, 2 replies; 9+ messages in thread
From: Laura Creighton @ 2003-09-15  6:33 UTC (permalink / raw)
  To: 9fans; +Cc: lac


I'm going to use David Pye's defintion here from _The Nature and
Aesthetic of Design_ and _The Nature and Art of Workmanship_.  (These
books are wonderful to read, byt the way.  Pye is a now deceased
professor of woodworking and architecture who also designed ships
during ww2. So no computers, in them, but a good language to describe
the whole creative process.  Paperback, reasonably priced, and if
your csc library has collected the works of Chris Alexander, you
should try to get them to stock these as well.

According to Pye, 'Design is what you can communicate using words and
pictures'.  'Workmanship is that which you cannot'.  This does not
mean that you cannot talk _about_ workmanship.  Talk about Workmanship
is called 'technique'.  'The Practice of Programming' is all about
technique.

But when you draw or write something on paper, and hand it to somebody
and say 'make this', you are handing him a design.  The notion of
'and do the job well' is all about workmanship, and generally goes
without saying.

We are living in a time of mass production.  Machines can stamp out
identical copies of most of the things we live with in whatever
quantity we desire.  But a machine, by defintion, produces _highly
regulated workmanship_.  Somebody designs a machine (and then
somebody has to make or assemble it with good workmanship, but
that is forgotten) and then the result comes out.  Thus a false
relationship between 'good work' is a result of 'good design' is
widely believed.  Designers, in all trades, are most victim to this.

They specify a job, and get good work, and soon come to expect that
people will do the job well.  Then comes the day when they use a
firm which isn't up to the standard they require.  All there is to
do is to request that they do the job over.  When the result comes
back, still shoddy, the designer has nothing to do but throw up his
hand in despair, and either hire a different firm, or specify something
within the range of the ability of the people doing the work.

Good Workmanship can overcome modest Design flaws.  Poor Wookmanship
defeats the best in design.

So where does that leave us?

But you don't get to be a good Workman by getting your heads filled
up with theory.  You get to be a good Workman by spending 18 hell
filled weeks working for Henry Spencer, when you are 18, willing
to do _anything_ to get a driver into the utzoo kernel.  Getting
up at 4 am to read the v7 kernel _one more time_.  And writing
code, writing code, writing code, and having Henry Spencer and
Geoff Collyer say 'that's bad' about it a lot.  (Thanks Geoff).
Hanging out with people who already know what good Workmanship
is, failing to produce it, again, and again, and again, until
you finally do something worthwhile.

This is the experience csc majors, most of them, come to university
hoping to get.  Something that will make them good programmers.
Unfortunately, they like everybody else, think that they need to
become good designers.  I don't know how to train good design into
you.  I can teach you to recognise bad workmanship, which generally
comes with bad Design, and a certain amount of bad Design.  But
good Design?  It may be a matter of 'either you've got it or
you don't'.

Unfortunately, I cannot treat you the way Henry Spencer treated me.
This will just make you change your major, which I would love, but
will get me in trouble with the university.  I don't know if it
is true that high school guidance teachers have all conspired to
take all the smart, lazy, and completely unimaginative people that
come to their offices wondering what to do in their lives, and
tell them -- 'Computer Science, that's for you!'  but it sure feels
that way sometimes.

But 'Design Patterns' is misnamed.  It would be better named as
'Workmanship Patterns'.  They are tools.  They are things for
regulating your work.  They are like jigs, and vises, and the other
things you use to make sure that you don't spoil the job as you
work 'freely'.  (Free workmanship  == make a mistake and the job is
ruined.  Its opposite Completely Regulated Workmanship == push
a button, get it done.  Again, from David Pye).

Boyd doesn't need them, because Boyd already works to an extremely
high standard of workmanship, awesomely high, all the time.  Boyd is
also a fine designer.  But he couldn't teach us that, much, either.
He knows how to do it, not how to teach it, curse it all.

But Design Patterns -- and read the Smalltalk one, not the C++ one,
where half the book is not about the Patterns, but more fruitfully
titled 'my struggles trying to do polymorphism with the C++ type
system'  (and there are better ways to do that than in the book) --
is a box of techniques of good Workmanship.

We give them to the students who summer here.  And one of the most
wonderful moments of my life was when I showed this book to a new
student, and said, the bookstore hasn't delivered yours yet but
they've arrived ... when he looked at it he said 'I can get to the
bookstore in 15minutes, and they shut in 30.  Let me get it.' I said
'no'.  He was totally excited.  he had to get this book and show it
to a friend.  It had the solution to what was wrong with the engineering
undergraduate students website and lab registration problem....

(I let him know that he could borrow my book until the delivery happened.)
He and his friend hacked all weekend, and on Monday it was clear that
they had hardly slept.  But the site was better.  They were going to
refactor it _again_ next weekend, though ....)

That's what its for.  If you don't need that, then you won't
understand, why its so important.  But the world is full of people who
desparately want to improve their workmanship, and _don't even know
that that is what they are wanting_.  More algorithm classes won't
help them with this, nor will most of the things we teach at
university.  Most progamming problems can be served with very modest
designs.  'Good rough work' is all you need when you want to take a
list of your friends, and the pictures of your grandchildren from your
digtal camera, and mail the second to the first without spending all
day pasting in your Windows Gui.  (I just taught a 70 year old woman
enough Python to do that).

If you need more regulated work, then DP is a tremendous help.

And if you're an Artist, and want to do perfectly free work, and don't
screw it up, you will probably get something better than if you just
use good workmanship to properly assemble known components.  Might
be harder to maintain, though.

Sorry for those of you I bored with my ramblings...

Laura





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-15  6:33 [9fans] Design and Workmanship Laura Creighton
@ 2003-09-15  8:41 ` boyd, rounin
  2003-09-15 16:02   ` Dan Cross
  2003-09-15 14:42 ` Wes Kussmaul
  1 sibling, 1 reply; 9+ messages in thread
From: boyd, rounin @ 2003-09-15  8:41 UTC (permalink / raw)
  To: 9fans

> Boyd doesn't need them, because Boyd already works to an extremely
> high standard of workmanship, awesomely high, all the time.  Boyd is
> also a fine designer.  But he couldn't teach us that, much, either.
> He knows how to do it, not how to teach it, curse it all.

i know how to teach it.  it's just: are you gonna listen?

    And my orders are to weed out all non-hackers who do not pack
    the gear to serve in my beloved Corps!

        -- Gunnery Sergeant Hartman




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-15  6:33 [9fans] Design and Workmanship Laura Creighton
  2003-09-15  8:41 ` boyd, rounin
@ 2003-09-15 14:42 ` Wes Kussmaul
  1 sibling, 0 replies; 9+ messages in thread
From: Wes Kussmaul @ 2003-09-15 14:42 UTC (permalink / raw)
  To: 9fans

Laura,

I found your message quite interesting, so I went to see where you teach and
ended up at Strakt, which I also found interesting.

I'm working on a comprehensive new approach to secure collaborative spaces,
starting with a book that describes the approach. Would you be interested in
reviewing it?

Thanks,

Wes Kussmaul

www.village.com
www.pkipress.com



----- Original Message -----
From: "Laura Creighton" <lac@strakt.com>
To: <9fans@cse.psu.edu>
Cc: <lac@strakt.com>
Sent: Monday, September 15, 2003 2:33 AM
Subject: [9fans] Design and Workmanship


>
> I'm going to use David Pye's defintion here from _The Nature and
> Aesthetic of Design_ and _The Nature and Art of Workmanship_.  (These
> books are wonderful to read, byt the way.  Pye is a now deceased
> professor of woodworking and architecture who also designed ships
> during ww2. So no computers, in them, but a good language to describe
> the whole creative process.  Paperback, reasonably priced, and if
> your csc library has collected the works of Chris Alexander, you
> should try to get them to stock these as well.
>
> According to Pye, 'Design is what you can communicate using words and
> pictures'.  'Workmanship is that which you cannot'.  This does not
> mean that you cannot talk _about_ workmanship.  Talk about Workmanship
> is called 'technique'.  'The Practice of Programming' is all about
> technique.
>
> But when you draw or write something on paper, and hand it to somebody
> and say 'make this', you are handing him a design.  The notion of
> 'and do the job well' is all about workmanship, and generally goes
> without saying.
>
> We are living in a time of mass production.  Machines can stamp out
> identical copies of most of the things we live with in whatever
> quantity we desire.  But a machine, by defintion, produces _highly
> regulated workmanship_.  Somebody designs a machine (and then
> somebody has to make or assemble it with good workmanship, but
> that is forgotten) and then the result comes out.  Thus a false
> relationship between 'good work' is a result of 'good design' is
> widely believed.  Designers, in all trades, are most victim to this.
>
> They specify a job, and get good work, and soon come to expect that
> people will do the job well.  Then comes the day when they use a
> firm which isn't up to the standard they require.  All there is to
> do is to request that they do the job over.  When the result comes
> back, still shoddy, the designer has nothing to do but throw up his
> hand in despair, and either hire a different firm, or specify something
> within the range of the ability of the people doing the work.
>
> Good Workmanship can overcome modest Design flaws.  Poor Wookmanship
> defeats the best in design.
>
> So where does that leave us?
>
> But you don't get to be a good Workman by getting your heads filled
> up with theory.  You get to be a good Workman by spending 18 hell
> filled weeks working for Henry Spencer, when you are 18, willing
> to do _anything_ to get a driver into the utzoo kernel.  Getting
> up at 4 am to read the v7 kernel _one more time_.  And writing
> code, writing code, writing code, and having Henry Spencer and
> Geoff Collyer say 'that's bad' about it a lot.  (Thanks Geoff).
> Hanging out with people who already know what good Workmanship
> is, failing to produce it, again, and again, and again, until
> you finally do something worthwhile.
>
> This is the experience csc majors, most of them, come to university
> hoping to get.  Something that will make them good programmers.
> Unfortunately, they like everybody else, think that they need to
> become good designers.  I don't know how to train good design into
> you.  I can teach you to recognise bad workmanship, which generally
> comes with bad Design, and a certain amount of bad Design.  But
> good Design?  It may be a matter of 'either you've got it or
> you don't'.
>
> Unfortunately, I cannot treat you the way Henry Spencer treated me.
> This will just make you change your major, which I would love, but
> will get me in trouble with the university.  I don't know if it
> is true that high school guidance teachers have all conspired to
> take all the smart, lazy, and completely unimaginative people that
> come to their offices wondering what to do in their lives, and
> tell them -- 'Computer Science, that's for you!'  but it sure feels
> that way sometimes.
>
> But 'Design Patterns' is misnamed.  It would be better named as
> 'Workmanship Patterns'.  They are tools.  They are things for
> regulating your work.  They are like jigs, and vises, and the other
> things you use to make sure that you don't spoil the job as you
> work 'freely'.  (Free workmanship  == make a mistake and the job is
> ruined.  Its opposite Completely Regulated Workmanship == push
> a button, get it done.  Again, from David Pye).
>
> Boyd doesn't need them, because Boyd already works to an extremely
> high standard of workmanship, awesomely high, all the time.  Boyd is
> also a fine designer.  But he couldn't teach us that, much, either.
> He knows how to do it, not how to teach it, curse it all.
>
> But Design Patterns -- and read the Smalltalk one, not the C++ one,
> where half the book is not about the Patterns, but more fruitfully
> titled 'my struggles trying to do polymorphism with the C++ type
> system'  (and there are better ways to do that than in the book) --
> is a box of techniques of good Workmanship.
>
> We give them to the students who summer here.  And one of the most
> wonderful moments of my life was when I showed this book to a new
> student, and said, the bookstore hasn't delivered yours yet but
> they've arrived ... when he looked at it he said 'I can get to the
> bookstore in 15minutes, and they shut in 30.  Let me get it.' I said
> 'no'.  He was totally excited.  he had to get this book and show it
> to a friend.  It had the solution to what was wrong with the engineering
> undergraduate students website and lab registration problem....
>
> (I let him know that he could borrow my book until the delivery happened.)
> He and his friend hacked all weekend, and on Monday it was clear that
> they had hardly slept.  But the site was better.  They were going to
> refactor it _again_ next weekend, though ....)
>
> That's what its for.  If you don't need that, then you won't
> understand, why its so important.  But the world is full of people who
> desparately want to improve their workmanship, and _don't even know
> that that is what they are wanting_.  More algorithm classes won't
> help them with this, nor will most of the things we teach at
> university.  Most progamming problems can be served with very modest
> designs.  'Good rough work' is all you need when you want to take a
> list of your friends, and the pictures of your grandchildren from your
> digtal camera, and mail the second to the first without spending all
> day pasting in your Windows Gui.  (I just taught a 70 year old woman
> enough Python to do that).
>
> If you need more regulated work, then DP is a tremendous help.
>
> And if you're an Artist, and want to do perfectly free work, and don't
> screw it up, you will probably get something better than if you just
> use good workmanship to properly assemble known components.  Might
> be harder to maintain, though.
>
> Sorry for those of you I bored with my ramblings...
>
> Laura
>
>
>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-15  8:41 ` boyd, rounin
@ 2003-09-15 16:02   ` Dan Cross
  2003-09-15 19:52     ` boyd, rounin
  0 siblings, 1 reply; 9+ messages in thread
From: Dan Cross @ 2003-09-15 16:02 UTC (permalink / raw)
  To: 9fans

>     And my orders are to weed out all non-hackers who do not pack
>     the gear to serve in my beloved Corps!

Oo rah!  s/f,

	- Dan C.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-15 16:02   ` Dan Cross
@ 2003-09-15 19:52     ` boyd, rounin
  2003-09-16 15:13       ` Dan Cross
  0 siblings, 1 reply; 9+ messages in thread
From: boyd, rounin @ 2003-09-15 19:52 UTC (permalink / raw)
  To: 9fans

> Oo rah!  s/f,

who-ah!!  (sp?)



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-15 19:52     ` boyd, rounin
@ 2003-09-16 15:13       ` Dan Cross
  2003-09-16 15:18         ` mirtchov
  2003-09-16 23:44         ` boyd, rounin
  0 siblings, 2 replies; 9+ messages in thread
From: Dan Cross @ 2003-09-16 15:13 UTC (permalink / raw)
  To: 9fans

> who-ah!!  (sp?)

Oh, are you playing doggie now?  That's it phonetically, but I believe
they write it as, ``Ho-ah''.  I have no idea what that means.  Like
most things they do, it's...weird...and probably has little if any
meaning.

	- Dan C.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-16 15:13       ` Dan Cross
@ 2003-09-16 15:18         ` mirtchov
  2003-09-16 23:44         ` boyd, rounin
  1 sibling, 0 replies; 9+ messages in thread
From: mirtchov @ 2003-09-16 15:18 UTC (permalink / raw)
  To: 9fans

>> who-ah!!  (sp?)
>
> Oh, are you playing doggie now?  That's it phonetically, but I believe
> they write it as, ``Ho-ah''.  I have no idea what that means.  Like
> most things they do, it's...weird...and probably has little if any
> meaning.

reminded me of 'scent of a woman'.  in the good tradition of movie
references on this list :)




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [9fans] Design and Workmanship
  2003-09-16 15:13       ` Dan Cross
  2003-09-16 15:18         ` mirtchov
@ 2003-09-16 23:44         ` boyd, rounin
  1 sibling, 0 replies; 9+ messages in thread
From: boyd, rounin @ 2003-09-16 23:44 UTC (permalink / raw)
  To: 9fans

> I have no idea what that means.

context dependant.

it can be a question and the response can be an affirmative answer.

not limited to the corps ;)



^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [9fans] Design and Workmanship
@ 2003-09-15  6:59 Tiit Lankots
  0 siblings, 0 replies; 9+ messages in thread
From: Tiit Lankots @ 2003-09-15  6:59 UTC (permalink / raw)
  To: 9fans

applause, no, standing ovations

Hardly possible to express it more clearly. Almost any sane adult can be taught good workmanship
by trial and error; whereas good design indeed seems to be something, mm, 'ethereal', that some
have and some don't. Unfortunately the classic universitas-style CS education (at least here
in Estonia) tries to mold everybody into an designer slash scientist. This per se isn't that bad, but
in the process workmanship gets lost because nobody ever gets their hands dirty. The net result
is that alot of horrible code floats around, designed by people who don't have it, programmed 
by people who don't have it. 

Tiit Lankots


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2003-09-16 23:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-15  6:33 [9fans] Design and Workmanship Laura Creighton
2003-09-15  8:41 ` boyd, rounin
2003-09-15 16:02   ` Dan Cross
2003-09-15 19:52     ` boyd, rounin
2003-09-16 15:13       ` Dan Cross
2003-09-16 15:18         ` mirtchov
2003-09-16 23:44         ` boyd, rounin
2003-09-15 14:42 ` Wes Kussmaul
2003-09-15  6:59 Tiit Lankots

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).