Fog Creek Software
Discussion Board




Software as a found artifact

A few recent topics have set me thinking.

George compares making software to building cars.  The thing is that coding, good coding, never feels like building anything.  I don't feel like I am gather the raw components and fixing them together.

When coding goes right, I feel more like an architect working carefully with my toothbrush, uncovering the artefact that was always there.

Anybody else get this feeling.  Like the sotware is already there, waiting for you to brush away all the crap.

Ged Byrne
Thursday, July 08, 2004

Well, actually coding feels like data entry to me although there usually are enough 'decisions' to be made at coding to keep it interesting.

For me, it's actually the design that floats my boat . . . "connecting the dots" at design is like writing a good novel. Just a matter of putting the best words together. Very similar to orchestrating music.

Although, coding does provide the 'gutteral' pride of seeing it all come together.

Anon
Thursday, July 08, 2004

Ged:

it is extremly difficult to compare physical things with software. Just doesn't work.

Prakash S
Thursday, July 08, 2004

"I feel more like an architect working carefully with my toothbrush..."

Do you mean archaeologist?

I've heard that sculptors have said that... essentially "the statue was here, I've just taken away all the excess marble."

How much of that is true, versus blowing smoke, I have no idea.

Dignified
Thursday, July 08, 2004

When I'm coding, I feel more like a monkey with a wooden leg trying to kick all the seeds out of a Wisconsin dill pickle ...

Immature Programmer
Thursday, July 08, 2004

"Do you mean archaeologist?"

[Smacks forehead] Doh!

Ged Byrne
Thursday, July 08, 2004

Prakash,

Since physical things are all we know, what else can we compare them too?

Ged Byrne
Thursday, July 08, 2004

Dignified,

I was thinking of fiction writers more.  In his book 'On Writing' Stephen King talks about the story as a found artifact, and I often remember this while coding.

Ged Byrne
Thursday, July 08, 2004

"When I'm coding, I feel more like a monkey with a wooden leg trying to kick all the seeds out of a Wisconsin dill pickle ..."

Dude, I'm still lauging at that.  Totally freakin random, I love it.

Wayne
Thursday, July 08, 2004

Anon,

Programming *is* design.  I can't relate programming to what you're describe when you use the word "coding" as if there's a design step  followed by a typing step.

(Presumably you have a period where you sit around scratching your rear for a while thinking good thoughts, and then start to work after a few days or weeks?)

When, every hour or so, you notice that your paper designs weren't quite so good, do you stop typing and start scribbling on paper again?

(Don't answer.  I'm just messin' with you.  I've seen many times the hokey development approach implied by your post, and the giggling those recollections start me into makes me kind of boisterous and sarcastic.)

Cabby
Thursday, July 08, 2004

The only time I feel like an archaeologist is when I am building something I already know how to build. Normally, I feel like a released mental patient because of all the conflicting advice I find myself reading on how to properly code a certain piece of functionality in programming language X.


Thursday, July 08, 2004

Ged,

my point is that we could compare one portion of architecture or some other portion of manufacturing, but software is not a proven in terms of delivery (scheduling), mistakes (bugs), etc..hence it can't be comared to physical things..at least not yet.

Prakash S
Thursday, July 08, 2004

The only good analogy for software development would have to revolve entirely around the hours spent naval-gazing thinking about what the best analogy is.

Keep those hours, join a bowling league, and I bet you break 250 before anyone comes up with an analogy that means anything whatsoever.

Tim
Thursday, July 08, 2004

Prakash,

I'm not talking about the whole software process.  I'm talking about the feeling you get coding when it all comes together.

Sometimes it just feels like the code was already there, just waiting for you to find it.

I've already mentioned fiction, but I've heard the same idea in Maths as well.  I remember listening to  a discussion about zero.  Mathematically zero is a recent discovery.

http://en.wikipedia.org/wiki/Zero#History

So, was there a zero before it's invention in India?

What was the effect of inventing zero?  How many previously unsolvable problems suddenly fell into place?

Did the inventor of zero also discover all those solutions?

The zero was already there, but they didn't recognise it for what it was.  I'm sure the best mathmaticians were already using zerio, they just didn't realise it was zero.

Ged Byrne
Friday, July 09, 2004

Sculptor discovering the inner form inside the marble might be a closer analogy to feeling you have.

Sometimes there is that feeling, when you push in this or that line or function, or replace it in re-factoring and it begins to work like a swiss watch in your hand beating with a life of its own.

But mostly it feels like banging my head against a wall repeatedly.

Simon Lucy
Friday, July 09, 2004

Michelangelo said something like "the sculpture is in the marble, I am just setting it free."  In that quote, he gets at why you feel that way.  He already had the idea of what to do, and so it's done in a sense.  All he has to do is work to "reveal" his idea.  It's not like working w/o knowing what the outcome will be.

sir_flexalot
Friday, July 09, 2004

Ged, I know the feeling you're talking about.  It does feel like a process of discovery.  For me, the feeling is like putting a puzzle together where you don't know what it's going to look like until you have all the pieces in place.

I believe this feeling, or ability, is only possible for those of us who have developed an intuitive understanding of programming through years of experience and practice.

And yeah, it's a wonderful feeling to come out of such a coding session... knowing, or rather *sensing*, the rightness of the code and its design.

Geez, that sounds arrogant.  Not meant that way, and certainly not the way I feel about it.

Should be working
Friday, July 09, 2004

I second the head banging :(

moseswhitecotton
Friday, July 09, 2004

It's the head banging that makes those moments of discovery so great.

Ged Byrne
Friday, July 09, 2004

*  Recent Topics

*  Fog Creek Home