How Japanese art is like software and both are like everything.
Wabi-sabi is a quintessential Japanese aesthetic. It is a beauty of things imperfect, impermanent, and incomplete. It is a beauty of things modest and humble.
Characteristics include asymmetry, asperity (roughness or irregularity), simplicity, economy, austerity, modesty, intimacy, and appreciation of the ingenuous integrity of natural objects and processes.
It’s art. It’s design. And most importantly, it’s philosophy.
It’s an acceptance of the natural cycle of growth, decay, and death. It’s an appreciation for evolution and change.
Good software development – meaning lean software development – is a reflection of these values, too.
“Release early, release often.” -Eric S. Raymond, lesson number seven for creating good open source software, cited in his essay The Cathedral and The Bazaar. Both parts of this being equally important – relinquish and reveal an imperfect product, but keep working on it.
“Ship it!” -pretty much everyone, including Seth Godin, Jared Richardson and Will Gwaltney, and all but the entire development community. The idea that once it’s good enough to go live, it should. Don’t hold on to things hoping for perfect.
“Products are never truly finished… Please know that this not something you get over with… ever.” -Eric Ries, “Lean” Series, O’Reilly.
The similarities between Japanese aesthetics and software development really isn’t surprising.
Both of them are far more about the underlying philosophy than their physical manifestation. It’s about valuing, appreciating and accepting imperfection, impermanence, and incompletion, rather than agonizing over flawlessness, fixed states, and finality.
If you really get it, you get it across the board.