Devlico.Us
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @devlicious

Casey Charlton - Insane World

Hang the code, and hang the rules. They're more like guidelines anyway


What Science Fiction Can Teach Developers

I am a bit of a SciFi geek. There ... I have admitted it.

No, not one of those weird SciFi fans that turns up at Trekkie or Trekker conventions (does knowing there are two terms make me an even worse geek???). On the whole, when it comes to modern SciFi I prefer to see it and hear it on the big screen.

But many years ago, way back in my distant youth, I loved to read what would probably be described now as "classic" science fiction. Stories by Philip K Dick, Robert A Heinlein, Ray Bradbury and many other filled my childhood dreams, but above all of them stood Issac Asimov.

Asimov was possibly the only person to have ever lived that could be described as more prolific than Oren. The entry for Asimov on Wikipedia starts with:

Asimov was one of the most prolific writers of all time, having written or edited more than 500 books and an estimated 9,000 letters and postcards. His works have been published in nine of the ten major categories of the Dewey Decimal System (all except the 100s, Philosophy)

This is certainly no empty boast, Asimov wrote not only fiction, but non-fiction, as a biochemist he was highly respected, and his works still form an important reading list of many university degree and PhD courses.

Asimov was a truely great man

What he will probably be remembered for mostly is his Three Laws of Robotics, essentially Asimov invented the modern robot. The Three Laws turn out to be amazingly pertinent to everyday life, as one of his stories Evidence explores beautifully, the difference between a robot following the laws is indistinguishable from a human who "may be a very good man".

Numerous films have been inspired by his Robot stories, including the Bicentennial Man (a quirky Robin Williams performance) and I, Robot (an action packed Will Smith blockbuster)

Asimov was smart, not just your everyday smart, but REALLY smart. His books are filled with a wealth of stunning observations about the human condition, about technology and science, and about the nature of the universe.

Mostly what we can learn from Science Fiction, is simply to think beyond what we know. To explore outside the possibilities we can perceive, and to think of new possibilities that we can make happen. Good science fiction is about pushing the boundaries, about exploring options, and about not limiting ourselves to what is here and now. It is no accident that many of the concepts, devices and scientific gobbledygook in works by Asimov, Dick and others has eventually been turned into real science. Arthur C Clarke is credited with many inventions including satellites, Asimov with robotics, and a browse through a back catalogue of any of these writers will reveal things we take to be common everyday items, but described 20, 30 or even 50 years before we "invented" them.

What actually prompted this post

Asimov wrote countless fiction books, the most famous series of which was Foundation. And it is Foundation that prompted this post. Within Foundation's Edge (the second in the 7 book "trilogy") there is an observation at one point upon a treaty between two goverments:

"Before you now you see a copy of the treaty between the Empire and Anacreon – a treaty, incidentally, which is signed on the Emperor's behalf by the same Lord Dorwin who was here last week – and with it a symbolic analysis."

The treaty ran through five pages of fine print and the analysis was scrawled out in just under half a page.

"As you see, gentlemen, something like ninety percent of the treaty boiled right out of the analysis as being meaningless, and what we end up with can be described in the following interesting manner:

"Obligations of Anacreon to the Empire: None!"
"Powers of the Empire over Anacreon: None!"

This has always struck me as a good starting point for the analysis of documentation - with sufficient analysis, a document can be distilled down to it's component parts. And in most cases, it seems most of the development documentation that I come across (see I knew I would get back to development at some point) essentially fits the pattern of this treaty well, when distilled down to its most basic fundamentals, it says nothing. I don't mean a little bit of nothing, I mean a whole lot of nothing.

I'll repeat it becasue it deserves repetition: Most documentation is totally and utterly worthless.

Now, that isn't to say all documentation in development has no value, but I am sure the ratio of good to bad is stunningly low.

Wasn't that a long route to a simple statement. Perhaps distillation of this post will show that it contains nothing of any note other than this one statement. Or perhaps it won't.



Comments

rams said:

I love Assimov's work but Foundation went over my head expecially after the 3rd book. I find Dune more fascinating. But, as you rightly pointed out, you can learn a lot from his Robot series. Pure and simple loigc.

# May 22, 2008 9:33 PM

Arjan`s World » LINKBLOG for May 23, 2008 said:

Pingback from  Arjan`s World    » LINKBLOG for May 23, 2008

# May 23, 2008 4:23 PM

Sabra Crolleton said:

Please distill this (proposed US tax regulation - single sentence)

For purposes of applying the rules of this paragraph (b)(2)(ii), a branch or similar establishment of a controlled foreign corporation treated as a separate corporation purchasing or selling on behalf of the remainder of the controlled foreign corporation under paragraph (b)(2)(ii)(b) of this section, or the remainder of the controlled foreign corporation treated as a separate corporation purchasing or selling on behalf of a branch or similar establishment of the controlled foreign corporation under paragraph (b)(2)(ii)(c) of this section, will exclude any other branch or similar establishment or remainder of the controlled foreign corporation that would be treated as a separate corporation (apart from the branch or similar establishment of a controlled foreign corporation that is treated as a separate purchasing or selling corporation under paragraph (b)(2)(ii)(b) of this section or the remainder of the controlled foreign corporation that is treated as a separate purchasing or selling corporation under paragraph (b)(2)(ii)(c) of this section) if the effective rate of tax imposed on the income of the purchasing or selling branch or similar establishment, or purchasing or selling remainder of the controlled foreign corporation, were tested under the principles of §1.954-3(b)(1)(i)(b) or (ii)(b) of this section against the effective rate of tax that would apply to such income if it were earned in the jurisdiction of such other branch or similar establishment or the remainder of the controlled foreign corporation.

# May 27, 2008 4:52 PM

Alan Moore said:

You're comparing apples and oranges.  Programmers' documentation is meant to convey information clearly and concisely.  Political documents, on the other hand, are often meant to say nothing.  Their real purpose is to satisfy protocol, or just to give the impression that the parties (i.e., the politicians or the governments they represent) are earning their keep, without committing anybody to any action.  A programmers' document that imparts no knowledge is a failure; a political document that conveys no meaning is a success.

That tax regulation is another story altogether: it's a technical document whose overriding purpose is to be enforceable.  It's more like a program than a programmers' document.  Assuming its authors are competent, it's already as compact as it can get.

# May 27, 2008 11:13 PM

Link Bundle - May 28 | franzone.com said:

Pingback from  Link Bundle - May 28      |       franzone.com

# May 28, 2008 8:02 AM

Casey Charlton said:

>>Programmers' documentation is meant to convey information clearly and concisely.<<

That little word "meant" in there is the key one ... development documents may be *meant* to convey information clearly and concisely - in practice they almost never do.

# May 29, 2008 2:30 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Casey Charlton

A somewhat passionate and opinionated developer, with occassional sparks of wisdom, and occasional useful information. Check out Devlicio.us!

Our Sponsors

Proudly Partnered With