37signals logo

This is Signal vs. Noise, a weblog by 37signals about design, business, experience, simplicity, the web, culture, and more. Established 1999 in Chicago. Follow us on Twitter for more information on our products.

Jobs:

See more on our Job Board.

Software carving Jamis Mar 25 2008

16 comments Latest by Ernest

Just a quick observation: writing software is like carving. You start with the computer and all of its potential, and you whittle away the possibilities, constraining the program until you get what you envisioned.

Looking for a job? Got a position to fill? Check out the Job Board.
Got a web design project in mind? Find a web designer on Sortfolio. Browse by visual style, portfolio, budget, and geographic location.
Over 1 million people use 37signals' simple web-based software to collaborate on projects, track contacts, and organize their business with an intranet.

16 comments so far

Lu 25 Mar 08

Let’s leave “carving” for wood, shall we.

mfelix 25 Mar 08

reminds me of a favorite design quote:

“a designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away”

- Antoine de Saint-Exupery

Don Schenck 25 Mar 08

I do my “carving” on a surfboard. It’s very Zen.

Matt Large 25 Mar 08

I once worked with someone who suggested it was more like poetry than carving, but I agree with the general artistic principal :)

—Matt

Tyler Karaszewski 25 Mar 08

No it’s not. You’re not “whittling away the possibilities” from software that already does everything, you’re building them from software that does nothing.

You could say the same thing about anything, really: “Losing weight is like carving. You start with a flabby body and whittle away the parts you don’t want.” “building a road is like carving. You start with infinite possible paths, and whittle away the possibilities until the road only goes one place.”

Or more generally: “Creating anything is like carving, because ‘anything’ is a subset of ‘all things’ and the reduction from the set of all things to a single item is inherently carving-like (somehow, I guess).”

JohnR 25 Mar 08

I dont know about that, Jamis.

Anonymous Coward 25 Mar 08

Really, Jamis?

Tim 25 Mar 08

It’s tough when you’re into something and think it is smart and get trashed by almost everyone…

The thing is that people are right I think. It’s not because it sounds poetic that it’s true or relevant.

Quick observation: writing a blog post is like carving. You start from all the potential of the words and then you whittle away the possibilities constraining the post until you get what you envisioned. And then you hit too hard with your tool and you screw up the whole thing.

Jamis 25 Mar 08

@Tim, it’s not tough, it’s just people having different points of view and backgrounds. The power of analogy is its ability to discover different views of a subject. And the weakness of analogy is the same thing. I found value in the analogy, and I hope others do, too, but it’s no real surprise to me that some don’t.

Tim 25 Mar 08

@Jamis, I’m glad you take it like that. There is actually no other way to take it. It’s not really “tough”.

My apologies for being (or trying to be) a smartass. I think I got abducted by the power of internet’s anonymity and got lost in Hahayouresodumbland.

some guy 25 Mar 08

i’d rather have software be too focused and narrow than try to be everything to everyone.

focused but flexible lets you use it as part of a larger toolchain. the classic example is unix application conventions that let you string together commands with piping to create ad-hoc new ones as needed rather than needing to even write a single line of code.

CJ Curtis 26 Mar 08

I don’t get it either…sorry Jamis. In carving or sculpture, it’s true that you start with “everything.” But with software, you generally start with nothing, no?

Cedric 26 Mar 08

I’ve had this same thought actually, so I guess I’m in the minority here.

Primarily in regards to when to unveil features/functionality as they take shape and also in terms of working on the detail areas of a given project (some features take on nooks and crannies as needed).

I think this analogy is directly related to a rapid, iterative process. You build the block of wood through initial rapid feature development and then begin to whittle out the features that make it usable, and recognizable. Also, I think if you develop with frameworks that offer generators/scaffolding, this analogy resonates more, because you are often ‘whittling’ into and out of generated code.

Mark 27 Mar 08

I like that philosophy, it could have been an old chinese saying :-) I feel somehow the same, however, it is not completely true. “You start with the computer and all of its potential” => that’s certainly true, without this potential, nothing could be made.

But after you ‘carved’ your application, that same potential is still there, waiting for someone else to carve it.

Your statement would be entirely true if you carve the whole OS into a single application without the possibility to do anything else with it, you would even need to ‘carve’ the hardware to achieve that.

I guess no-one wants software to be like that :-)

Justin Knoll 27 Mar 08

My point today is that, if we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”: the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.

—E.W. Dijkstra

Ernest 01 Apr 08

God forbid that you carve anything beautiful or intricate. Then people wouldn’t want to look at it. Right?

Comments are closed