How software can learn a lot from the way nature works
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:
- Redundancy is built in If something fails, it is an opportunity for something else to work.
- Test driven Make small changes to see if it works.
- System design Design holistically, with the whole system in mind.
- Symbiotic relationships Components should work together for mutual benefit.
- Responsive design The system responds directly to the environment — sun, wind, rainfall, browser size.
- Time A good system takes time to build, is reflective and attentive to what happens.
- 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.