Thursday, July 06, 2006

Bridges and Gardens, Part 1

I think Andy Hunt and Dave Thomas (The Pragmatic Programmer, Addison-Wesley, 1999) put it best in their interview with Bill Venners -- one's approach to software development should be less about building bridges and more about cultivating gardens.

Think about that for a minute. Gardens -- not bridges. What exactly does that mean? Bridges are stone, or concrete, or ahhh, metal. Gardens are well, plants and dirt...right?

I'll admit it, at first I wasn't sold. I absolutely love bridges. Ask anyone who knows me. I love their structure, their efficient design, and especially their strength. I love that there is so much creative variation on what is essentially a simple concept.

To further strengthen my bridge passion, I've always described my technical solutions along the lines of bridges: "I'm joining together two disparate systems using a common conduit.", or "I'm pulling the data for two different business units into the same application which will allow them to easily share information." Sound familiar? Plus, there's no way an application could be a garden -- time moves too slowly in a garden! In addition, gardens are a lot of work -- weeding, watering, it's constant maintenance. Not to mention the fact that they're full of bugs...a programmer's worst nightmare, right?

Well, this concept of programming as gardening has really stuck with me. I've tried to shake it, really I have. I attempted to discount the notion (the token fight response), and I even tried to altogether ignore it (there's the flight). However, the more I resisted, the more I found myself questioning WHY I like bridges so much. Here's some of what I found out:

1. I like bridges because they're graceful.

2. I like bridges because they're clean and efficient looking.

3. I like bridges because they bring concepts together in a harmonious manner.

I also thought more about the garden metaphor, in order to prove to myself how different the ideas were. And I did exactly that -- the concepts are indeed different. So, game, set, match, yes? Not exactly.

More on that next time...

No comments: