Deprecated: Function set_magic_quotes_runtime() is deprecated in /home4/thriceal/public_html/textpattern/lib/txplib_db.php on line 14
thrice all american: Software Gardening
Go to content Go to navigation Go to search

Software Gardening

· Posted Sunday June 29, 2008 by jamie

I was reading the now-classic Andy Hunt and Dave Thomas software engineering bible “The Pragmatic Programmer” the other day and came across the following great passage in the refactoring section:

Rather than construction, software is more like gardening—it is more organic than concrete. You plant many things in a garden according to an initial plan and conditions. Some thrive, others are destined to end up as compost. You may move plantings relative to each other to take advantage of the interplay of light and shadow, wind and rain. Overgrown plants get split or pruned, and colors that clash may get moved to more aesthetically pleasing locations. You pull weeds, and you fertilize plantings that are in need of some extra help. You constantly monitor the health of the garden, and make adjustments (to the soil, the plants, the layout) as needed.

The engineering/construction thing is so often used in the software field that “software engineer” has come to be the accepted term (though still much to the chagrin of licensed professional engineers, I suppose). Yet this quote really captures something with this gardening idea that is more similar to what writing software is all about.

We can’t write software like we build bridges, there’s a bit more artistry to it, much as there’s artistry to gardening. Designing up front is important to have a grasp of the big picture and the pieces required to make it happen, but just important is the ability to adapt along the way, change course, do things different, ultimately with the ends of making a more elegant, more beautiful garden of code.

I think I might need to start calling myself a Software Gardener instead of a Software Engineer…


post to: del.icio.us · digg · google · hugg · technorati

categories:  

commenting closed for this article

Comments: