Thursday, March 26, 2009

On the Importance of Big Questions

I originally wrote this entry on August 31, 2004, and published it on

Engineers are used to solving problems. That's what we're trained to do at school. That's what we are hired to do, and that's what some of us love to do.

Some engineers are also very good at asking the big questions of their time.

Take James Gosling as an example.

I've worked at Sun for more than five years now but I've never had the privilege of meeting him in person or talking to him in any appreciable length of time. So, what I say here is based purely on my own conjectures and black-box views of who he is and what he does. When I came to Sun, James and I occupied second floor offices on the opposite corners of a Cupertino building which now carries an Apple sign. Of course, his office was much, much bigger than mine, perhaps three times the size. Nevertheless, there's something about him that had already fascinated me. He had asked the right and the big question of his time in the world of computing ! ! !

Here's a socket; here's a piece of executable code; how do I read the code off the socket and execute it in my environment?

From that big, but very simple, almost elementary question flowed the necessity of having a virtual machine, a type-safe language and an automatic garbage collection environment. Finally, to make it all appealing to developers, there had to be some basic libraries to work with. Hence, the JDK.

Everyone else rode the wave that Gosling created when he asked his elementary question.

Innovation is about asking that simple but big question that no one else dares or cares to ask.

For example, the simple but big question of economics is "why not only one firm instead of many"? (See the works of Oliver Williamson.)

The simple but big questions of philosophy are "why is there anything when there can be nothing?" or "what is being?"

The simple but big question of physics could be "why does the apple fall to the ground?"

To ask a simple but big question, we need to leave our immediate world in order to unfold the worlds around us.

James left the world of the single-computer computing, took a look at networking and collaborative environments, and asked his big question. He steped out of the world of data communications to take a peek at the world of code communications.

What are the next simple but big questions we need to ask?

Oh . . . one more thing . . . Usually, to ask a simple but big question, we need to be part of a small and dedicated community of people who are focused on the same interests. I'm not sure who James collaborated with but I know he had a team here at Sun, and I know he was well-connected to the academic community outside of Sun and I know he has a favorite garbage collection book, a reference to which he used to post on his internal web site. All of this must have helped him in asking his big question.

No comments: