The Idea Dude


Tuesday, November 30, 2010

Why developers play?

Dan Pink in his book Drive! talks about motivation and what drives people to be self-motivated. His three pillars of motivation is autonomy, mastery and purpose. Given all three, participants tend to be in the state of flow, a concept pioneered by Csikszentmihaly. Basically when you're in the flow, your engagement is so high, time is no longer linear or relevant for that matter.

It occurred to me that this is what drives software developers and why we labor for long hours, often forgoing food and sleep in our quest to fix that bug or implement that feature. All the elements Pink talks about are there.

Autonomy. Software developers are pretty autonomous. Generally, there are guiding principles, good software practices and patterns that we abide by. But mostly, software developers are left to their own devices to write the code as they see fit. You define the goals, a feature or bug fix and that's it. Beyond the programming language of choice, we generally do not dictate how the actual code should be written. There lies the creativity. Developers are generally given a destination but seldom told how to get there.

Mastery. Writing software can be considered infinite play. We never stop getting better. The permutations of what can be done is infinite. Of course, as we better, we rely on past libraries, patterns etc to help us get there faster. But the destinations change and we learn along the way by our own mistakes, insights and looking at other people's code. There is always a better way, an opportunity to refactor and perhaps even a different way next time. Mastery gets better but never complete.

Purpose. This is always clear. No developer sets out writing code with no goal in mind. Better still even if the product is extremely large, we learn to break the problem down to small manageable chunks. We narrow it down to a single feature, a bug that needs to be fixed and then we focus our entire energies to achieve that small goal. In short, we learn to create reachable milestones that reinforce our motivation along the way. Each milestone becomes an achievement. The feedback is direct and immediate. It either works or it doesn't.

For many of us, software development is a game even though the deliverables are real. And here is the rub. We often view playing is all fun and no work. No goal and no pain. But truth be told, there is pain. Ask the gamer who battles a boss for 2 days while dying a thousand times. Ask a developer who is frustrated by bad documentation, buggy API or bugs that defy logic. There is defintely pain in play. But here is the point. If you have autonomy, mastery and purpose, you WANT to play even though there is a cost (be in time or mental anguish). You are engaged and self-motivated.

Perhaps software development is the ultimate and infinite playground.

It is Serious Play.

Tuesday, November 09, 2010

The future is irrational

I'm reading The Rational Optimist by Matt Ridley. His premise is that the world will solve a lot of the issues of the future which to many seem unsolvable. He claims to be a rational optimist because he looks back on human history and sees how we have become better and better overcoming economic disasters, plagues, wars and other points in our history when seemingly our future looks bleak. He says he is a rational optimist because he has arrived at his optimism in a rational manner based on evidence and not temperament.

Here's the paradox. He can be rational only because the future is irrational. As humans we like to look at the past as indicators of what the future could be. Hence the need for warnings when buying stocks, trying new medication and so forth. Yes we will run out of oil in the future which may change the world as we know it. But who's to say we will be still driving cars and building factories the same way as today?

We look to the past as predictors of the future. Couple hundred years ago, this may have been acceptable where technological innovation and industrialization were slow. You could probably predict 10 to 20 years ahead with reasonable reliability. Today, it may be years or even months. A year ago, Apple seem to be on a path to world dominance in mobile. A year later, Google Android is outselling the iPhone IOS. Jesse Schell says that in the next few years, our ability to predict the future may be days and weeks and not even months or years.

In short, with the rapid pace of technology advancement, the future is becoming increasingly irrational. Remember when having a 100MHz computer was considered a physical improbability as well as having a terrabyte of storage. Remember when Yahoo Search was king and Google was the sum of two young scientists? I remember reading how the search wars was won and yet Google dominates in every way unimaginable. Remember Facebook had less than 10 million users in 2006 and MySpace had over 100 million. The future is not linear nor is it rational. Today, we glibly say the social network war is over and Facebook has won.

Human evolution and advancement has leapfrogged not because of linear improvement but through unpredictable singularities. Ridley's observation that many of these advancements and innovation are because of human cooperation and collaboration. People who challenge each other and build better mousetraps. There is the saying that 90% of all inventions happened in the last 100 years. With the connectedness that the Internet has created, perhaps we will say in the next decade or two, that 90% of all inventions will happen in some 10 year span. That is not entirely unbelievable.

Even 20 years ago, you never knew about scientific discovery except through the publication of papers and conferences. These generally happened several times a year. Today, there is unprecendented transparency. What you say today may be heard a million times within a week. 1% of that million will have thought of 10 different ways to take your idea and make it different or better. Ingenuity grew in a week when it may have taken 1 year in the past few decades or years in the past few centuries.

So for all would-be entrepreneurs, the future is irrational. The biggest jumps in technology advancements are black swans, i.e. they are not predictable. That is the opportunity. That should give rise to rational optimism that you could be the next person to change the world.

Footnote: Google and Facebook are not going away any time soon but to make the bet that they will forever dominate the Internet, you have to believe that some 10, 20 or 50 years down the road, the Internet will exist as we know it today.