Boiling oceans

For the last couple of months I've been involved with stuff at work that didn't make good blog material. I've done a lot of helping out on project reviews and kibbitzing on planning. At this point in the process, where we've got a pretty clear picture of the shape and direction of things, I'm pretty happy with how it's all turned out. A tough process, but an important one to go through.

Several times I couldn't help but think of one of my favorite principles of engineering that is all-too-often forgotten:

A journey of a thousand miles begins with a single step.
While this quote may be so commonplace as to be trite, it is too often forgotten. There is a note about this quotation that seems especially relevant:
Although this is the popular form of this quotation, a more correct translation from the original Chinese would be "The journey of a thousand miles begins beneath one's feet." Rather than emphasizing the first step, Lau Tzu regarded action as something that arises naturally from stillness. Another potential phrasing would be "Even the longest journey must begin where you stand." [note by Michael Moncur, September 01, 2004]
At Sun we use the term "boiling oceans" to refer to trying to do something impossibly hard all at once. It's an especially silly thing to do if all you really want is a kettle of hot water for tea. Engineering projects too often fall into the trap of over-generalizing, trying to solve problems that folks might concievably have, building things so large and elaborate on day 1 that they never get off the ground. It is always better to start with a first step. Then a second. And on...

One of the big sources of the problem is confusing a vision with a to-do list. Implicit in taking the first step in a journey of a thousand miles is that you have to have some clue about where you're going. That's the role of a vision for a project. It's seductive to take the vision and turn it into a to-do list. But grand visions lead to insane to-do lists. The art of breaking them down into manageable steps can be a tough one.

Visions are notoriously slippery things. Your vision of a good place to go, of the right target for a project, is heavily dependent on the time and place where you are standing and looking out. With every step on a journey of a thousand miles you see things from a slightly different vantage point. Your vision adjusts. Your goal shifts. For me, that is one of the most exciting aspects of a project: I start out with an intent, with a vision of where I hope to end up, but the true destination unfolds in fascinating and surprising ways.

Comments:

Like many people, I've been working on a piece of open source software in my own time. Unfortunately, it has started slowing down as I get swamped with the scope of it, particularly as I've tried to keep it "general". By making me think about it a little differently, I believe that you've saved me a great deal of effort, and got me back on track to make something useful. Thanks. :-)

Posted by Paul on August 09, 2006 at 02:37 AM PDT #

Some people are surprized when a large complex system fails. I'm always surprized when they work! Still, there's great satisfaction in taking one step at a time and one day ending up with something impressive and wondering how it all happened.

Like many others, I'm a little dissapointed these days with the tendency of some developers to overthink a problem and produce unnecessesarily complex solutions. It's easy to complicate a simple system, but very difficult to simplify a complex system.

Posted by Madhu on August 09, 2006 at 12:06 PM PDT #

James,

Sounds like Sun is using the incremental iterative development
philosophy from Agile processes. I agree in building smaller,
functional releases in steps.

Thanks for the posting and we all look forward to your next posting! ;)

Happy programming,

Unnsse

Posted by Unnsse Khan on August 09, 2006 at 01:12 PM PDT #

I wish I had the same personal motivation to take more then one step. Thank you:)

Posted by goddard on August 10, 2006 at 02:46 PM PDT #

Dear Java Boss, You had given me a sense to start something, which I was feeling to do for a long time. Yup, let me take that small step today. And if it will become a giant leap, let me meet you and talk about this simple and gentle motivational step which had been the cause of that giant leap. Love and regards, Ravi Shankar

Posted by Ravi Shankar Nair on August 14, 2006 at 11:21 AM PDT #

Thanks for linking to our site and quoting my note on the Lao Tzu quotation. Just in case anyone thinks I understand the original Chinese, I should clarify that that note was a summary of the way it was explained to be by some much smarter people...

Posted by Michael Moncur on August 15, 2006 at 12:52 PM PDT #

Post a Comment:
Comments are closed for this entry.
About

jag

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today