Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Use Your Trash Can

Name: Anonymous 2009-03-02 0:29

Anyone can write code. Not everyone can throw it away.

Mr. Z was the black-and-white darkroom instructor at one of the top-rated SCHOOLS OF PHOTOGRAPHY. In one class, he picked out a negative from each student's portfolio and said,``Print this.'' One would-be PROFESSIONAL PHOTOGRAPHER burned and dodged, spilled fixer all over himself, and proudly showed the results to the instructor. Mr. Z glanced at the printed photograph and said, ``It's too dark. Try again.'' On the next attempt, Mr. Z said, ``Not enough contrast. Print it again.'' Iterate until exhaustion.

Finally, after the student's clothes were permanently impregnated with the smell of fixer, Mr Z. approved of the photo. ``Very good!'' he said. ``Now, throw it away.''

``What?!'' replied the student. ``You just said the photo was good!'' Mr. Z responded, ``It is printed very well. Very good technically. But it's an uninteresting subject. Throw it away.''

That lesson stayed with the photographer—who later spent a few years as a black-and-white darkroom manager—but it's one that developers need to learn, too. Just because your code works doesn't mean it's done. Your application might meet the specs. But that won't make it great.

That working app won't make you a better /prog/rammer, either. Because I've come to believe that all great software is written three times. The first time you write it, it's to see if your idea can work at all. It's the digital equivalent of scratching something out on the back of the envelope, leaving out the fancy stuff and just concentrating on the basic feature or algorithm. Once you figure out that yes, this might be a good way to solve the problem, then you write the code a second time, to ``make it work.'' But it's the third time you write the code, when you've had the opportunity to learn from the mistakes from the ``try to make it work'' phase, when your application will be the best it can be. (Well, almost. There's often a 3.1, too. Even great software has a few bugs.)

Don't trust me on this? Look at all the ``best of'' software you ever worked with. I sure didn't love Window 3.1, but it was certainly the apex of Microsoft's vision and architecture of the time. That ``third try'' might not have a 3.0 or 3.1 version number, depending on marketing decisions (it used to be easier to get someone to upgrade from 4.0 to 5.0 than to pay real cash for 4.1) and on the nature of the development community (particularly in the open source universe) which is happy to trundle along for years with version 0.23 no many how many design iterations the code has gone through.

Not all great software has a Version 3 sticker, because sometimes the development staff get to throw away version 1 or 2 before the product is launched. But look at the software you most loved, before it was overloaded with feature-itis. I betcha it was the third try.[1]

__________
[1]http://www.javaworld.com/community/print/2537

Name: Anonymous 2009-03-02 0:38


Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List