Category Archives: Books

Parallels of Art Making and Software Development

I used to paint many years ago, and I loved it. In the last few years I have not really touched my brush. Last year when I wanted to get back to running after an eight-month break, Haruki Murakami’s fantastic book, What I Talk About When I Talk About Running helped me to get back to it.

FullSizeRender.jpg

My last painting. November 2005

A few weeks ago I decided to start painting again and started reading Art & Fear: Observations on the Perils (and Rewards) of Artmaking by David Bayles and Ted Orland. This is a book about the way ordinary art gets made, the reasons it often doesn’t get made, and the difficulties that cause so many artists to give up along the way.

What I love about this book is that it uses art to talk about life. You can apply its lessons to almost anything. While reading it, I could not stop thinking about the parallels between art making and the “craft” of software development.

The writers talk about fear of failure, imagination, vision, execution, and joys of building something that only exists in your imagination in the face of uncertainty. They explore artwork’s life cycle, and to me, it was very similar to the life cycle of a software product. “Imagination is in control when you begin making an object. The artwork’s potential is never higher than in the magic moment when the first brushstroke is applied, the first chord struck.”

This is very true whenever we start a new software project. We always strive to build a product with best product/market fit. We want to it to be the most organized, well-written, loosely coupled, highly cohesive code base ever. The imagined code base in our heads is always perfect. The thought-up product is always the best fit for the market. However, problems begin when we humans have to implement it in our imperfect ways. “Finally, at some point or another, the piece could not be other than it is and it is done. That moment of completion is also, inevitably, a moment of loss—the loss of all the other forms the imagined piece might have taken.”

We can never get it to perfect at the outset form, but we move it closer and closer with each round of releasing, testing, and refactoring. After all, “to demand perfection is to deny your ordinary (and universal) humanity, as though you would be better off without it.”

Perhaps the single most important trait of a team building high-quality, fit-for-market software product is the concept of iteration—and its associated learning. In lean cycles we know this as the build, measure, and learn loop.

There is a famous story in the book that resonates nicely with this concept:

The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality.

His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the “quantity” group: fifty pound of pots rated an “A”, forty pounds a “B”, and so on. Those being graded on “quality”, however, needed to produce only one pot –albeit a perfect one– to get an “A”.

Well, it came grading time, and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the “quantity” group was busily churning out piles of work – and learning from their mistakes –the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.

This story is the best way to explain the build, measure, and learn loop. You have to build many times and release many times to get better at the releasing software. The story echoes nicely with one the most important principles of continuous delivery. If something is difficult or painful, do it more often.

To me the most important phase of the loop is learning for from your work. “Art is like beginning a sentence before you know it’s ending. The risks are obvious: you may never get to the end of the sentence at all—or having gotten there, you may not have said anything.” Building software is very expensive, and it is important to take steps to reduce risks. And this is where learning becomes useful. We should use this learning constantly to course correct and make sure that we build a product that actually says something!

I have yet to start painting again. But I really enjoyed this book. I’m sure at some point I will paint again.

How Did Humans Become Masters of the Earth?

I have recently finished reading Sapiens, A Brief History of Humankind. The book tries to tell the entire story of us, Homo sapiens (Latin for “wise person”), in 450 pages. It was one of the most thought-provoking books I have ever read. Yuval Harari’s articulate writing takes you back 2 million years and slowly brings you back to present day. Throughout this journey this book changes your mental model of the world we live in.

One hundred thousand years ago we were just one of half a dozen human species all competing for survival. Today we are the only species alive. The book gives a horrific account of our struggles on our path to supremacy. For the first half of our existence, we were an animal of no significance; “The most important thing to know about prehistoric humans, is that they were insignificant animals with no more impact on their environment than gorillas, fireflies or jellyfish”, Harari writes.

However in second half of our story, we undergo a series of revolutions that continues to this day. The “cognitive” revolution about 70,000 years ago is the first. We start behaving in far more ingenious ways than before, and we spread rapidly across the planet. Harari argues that cognitive revolution gave us an edge over other human species.

What has made us so successful is that we are the only animals that are capable of large-scale cooperation. We know how to organise ourselves as nations, companies, and religions, giving us the power to accomplish complex tasks. What’s unique about Harari’s take is that he focuses on the power of stories and myths to bring people together. Baboons, wolves, and other animals also know how to function as a group, of course, but they are defined by close social ties that limit their groups to small numbers. Homo sapiens have the special ability to unite millions of strangers around common myths.

In an interesting thought experiment, imagine one human and one chimpanzee stuck on an island fighting for survival. I would put my money on the chimpanzee. The chimp would easily overpower the human. However, if we have 1,000 humans and 1,000 chimpanzees, there is a very good chance that the humans would win the fight for survival. One thousand chimps can’t cooperate. One thousand humans can. And we are only powerful if we work together in large groups.

The reason that 1,000 humans can cooperate and chimpanzees can’t is simply because humans can come together around myths, legends, and stories. As long we believe in the same story, we follow the same rules and hold same values. If you ask a chimpanzee to give you its banana in return for going to chimpanzee heaven where it can have unlimited bananas in return for its good deed, it would never believe you. However, Homo sapiens easily believe in these imaginary stories and work together on building cathedrals and waging crusades. Ideas like freedom, human rights, gods, laws, and capitalism exist in our imaginations, yet they can bind us together and motivate us to cooperate on complex tasks.

About 11,000 years ago we entered the agricultural revolution era, converting in increasing numbers from hunting and gathering to farming. Harari sees the agricultural revolution as “history’s biggest fraud.” It is very discomforting to think that “we did not domesticate wheat. It domesticated us.” More often than not it provided a worse diet, longer hours of work, greater risk of starvation, crowded living conditions, and greatly increased susceptibility to disease. Harari thinks we may have been better off in the Stone Age.

The scientific revolution begins about 500 years ago. It triggered the Industrial Revolution about 250 years ago, which triggered in turn the Information Revolution about 50 years ago. He argues that this could be the biggest revolution of all. It may be able to alter the course of human evolution and lead to new human species in future.

The final section of the book is especially interesting. After going through thousands of years of history, the author turns to the future and wonders how artificial intelligence, genetic engineering, and other technologies will change our species.

I did not agree with all of Harari’s arguments. However, I would highly recommend this book to anyone interested in early human history. Once you start reading, it is hard to put it down, and certainly it will spark interesting conversations with your favourite Homo sapiens.