- Posts tagged running
- Explore running on posterous
"The more people do, the more society develops, the more problems arise."
The title of this post is an excerpt (from an excerpt) of a quote by Masanobu Fukuoka (posted by Tom Hodgkinson on The Idler blog). Masanobu Fukuoka was a soil scientist who turned his back on the perceived wisdom of modern agricultural practices to develop a technique of "natural farming" that more closely mimics nature.
This approach appeals to me. As a developer it is a core skill to innovate and find solutions to problems. Often these are solutions built on top of other solutions. By taking a step back and viewing the developments from a broader perspective the solution may be to cut away "innovations" rather than adding to them.
Running Shoe Technology Goes Full Circle
I have recently become the owner of a pair of Vibram FiveFingers shoes. These are basically a thin covering for the soles of my feet allowing me to walk and run "barefoot" (the actual soles of my feet are far too soft to be practical).
I came across FiveFingers in the comments for this article about how the invention of cushioned shoes has changed the way humans walk and run. Sports shoes have lead to many humans walking and running in a fashion that differs from the way the foot evolved to be used. As a result many runners (tired of injuries associated with landing on the heel of the foot) are using "barefoot" training methods to keep their bodies healthy.
Here's a rough illustration of how barefoot running has come back around:
- Humans evolved to walk on their hind legs, their feet acting a a shock absorber along with the ankles an knees
- Shoes similar to huarache sandals arrive allowing the wearer to withstand uncomfortable surfaces
- Fashion and innovation combine leading the majority of the developed world to wear shoes with some sort of heal
- Around 1972 modern athletic shoes are invented, coinciding with the growth of sports sciences
- Today more people than ever suffer from sport and posture related injuries which need corrective orthopedic treatments. Shoes like the MBT are invented to "correct" the foot and allow us to walk "naturally"
It seems that many of the claims that are made for the benefits of orthopedic insoles and MBT shoes are mirrored by simply wearing no shoes at all.
How about software and programming?
One example of the over-engineering that goes on in software development industry might be: templateing engines creeping into PHP.
PHP started life as a way to customise static web pages (e.g. adding today's date or simple hit counters), it then evolved into a way to manage page layouts and behaviour, effectively an interactive templating language. Further evolution has lead to PHP becoming a full blown Object Oriented Language, and with this development have come various frameworks that improve code reuse and working practices.
Then came an innovation that (in my eyes) went too far, templating languages were introduced to make them manageability of page layout and data representation easier. This meant more code to interpret them and therefore further load on the system running it.
One of PHP's core appeals is its ability to mesh directly with HTML, a language truly intertwined with the web; templating seemed an unnecessary step away from that.
For some applications abstraction layers may be a step too far especially when it is an abstraction based on an abstraction.
In a broader sense this could apply to software in the form of feature creep.
I'm not saying that innovation is a bad thing, far from it. But, it may make sense to look at the whole process and in some cases whittle it back down to provide the best solution.
To conclude the rambling
It is a paradox. If you define the success of a species by ability to bend the environment around to their will, then humans most productive trait is the desire to innovate.
However, innovation upon innovation can lead to imperfections and further problems (which in turn will need further solutions).
A valuable skill, to those who's vocation it is to innovate (software developers especially), may be to recognise when a problem can be solved by removing a layer of complication rather than adding yet another "solution".

