How software can learn a lot from the way nature works

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: Software Development, Open Source, Software

Jake Rayson

About Jake Rayson

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, and my working life reflects my commitment to open standards and accessible websites (ie accessible by everyone, regardless of browser, platform, ability or technology).

For web publishing platforms, I use WordPress for ease of use and Drupal for more complex solutions.

I am also learning about Ruby, Rails, Sinatra and CoffeeScript. I like the minimalist Ruby Way. To this end, my personal portfolio website is built with NestaCMS.

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


Log in or register to join the discussion
  • It's not what you earn, it's what you spend

    Saying "You make a lot of money, just shut up and buy it" is how professional athletes often end up penniless, despite making millions in their careers.

    Frankly, if that's the only thing that sets you off in comments, then you probably don't get many comments or are new to the internet. Complaining about which we don't like is the order of the day (ESPECIALLY here at ZDNet. I've never seen more volatile flame wars).
  • Nature may not be a good example to follow

    Nature had a lot of time to produce good "software" and its crown achievement - homo sapiens. Even that one has a lot of flaws and, alas, usually many pounds of bloat.

    Are you prepared to pay a premium for "organically produced" software?