How software can learn a lot from the way nature works

Summary:Permaculture and the way natural systems function have many parallels with the software ecosystem and lessons for those who work in developing code

I am branching out into pastures new, and permaculture is my chosen field. Permaculture is permanent agriculture, a way of growing stuff in a mutually supporting and sustainable manner. And permaculture is sooo zeitgeist: local, organic, friendly, fair trade, ethical everything — it just ticks all the boxes.

The excellent Rachel Andrew blogged recently on acquisitions, pricing and being part of an ecosystem. A key point was that if you use software, then pay for it. Otherwise, you'll lose it.

I blogged recently about the magnificent Sublime Text, and I was gobsmacked by some of the comments: $59?! For a text editor? Outrageous! And this coming from a programmer, average earnings $500 a day. If you like it, pay for it, and stop moaning. If you don't like it, don't use it, end of.

At a permaculture talk by Aranya I was struck by the parallels with the software ecosystem:

  1. Redundancy is built in If something fails, it is an opportunity for something else to work.
  2. Test driven Make small changes to see if it works.
  3. System design Design holistically, with the whole system in mind.
  4. Symbiotic relationships Components should work together for mutual benefit.
  5. Responsive design The system responds directly to the environment — sun, wind, rainfall, browser size.
  6. Time A good system takes time to build, is reflective and attentive to what happens.
  7. Diversity, not monoculture Diversity is good, as it leads to resilience.

It's a nice feeling to learn from other disciplines, and I'll be trying to incorporate these ideas into my own web design practice.

Topics: Developer, Enterprise Software, Open Source


A web designer since the 20th century, I am a pragmatic advocate of Free Software and I use proprietary software when appropriate. I made the full-time switch to Linux back in 2007, and my desktop tools of choice are Linux Mint, Inkscape, GIMP and Sublime Text. As a Front End Developer, my core skills are HTML5, CSS3 and jQuery, an... Full Bio

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Related Stories

The best of ZDNet, delivered

You have been successfully signed up. To sign up for more newsletters or to manage your account, visit the Newsletter Subscription Center.
Subscription failed.