----------------------------------------------------------- New Message on BDOTNET
----------------------------------------------------------- From: spark Message 1 in Discussion This might be an interetsing read for some ... > > don't know if you're still reading the plan9 newsgroup, > but Laura has struck again: > > Date: Mon, 15 Sep 2003 07:33:44 +0100 > From: [EMAIL PROTECTED] > 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 > > > > -- NEU F�R ALLE - GMX MediaCenter - f�r Fotos, Musik, Dateien... Fotoalbum, File Sharing, MMS, Multimedia-Gru�, GMX FotoService Jetzt kostenlos anmelden unter http://www.gmx.net +++ GMX - die erste Adresse f�r Mail, Message, More! +++ ----------------------------------------------------------- To stop getting this e-mail, or change how often it arrives, go to your E-mail Settings. http://groups.msn.com/BDOTNET/_emailsettings.msnw Need help? If you've forgotten your password, please go to Passport Member Services. http://groups.msn.com/_passportredir.msnw?ppmprop=help For other questions or feedback, go to our Contact Us page. http://groups.msn.com/contact If you do not want to receive future e-mail from this MSN group, or if you received this message by mistake, please click the "Remove" link below. On the pre-addressed e-mail message that opens, simply click "Send". Your e-mail address will be deleted from this group's mailing list. mailto:[EMAIL PROTECTED]
