Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
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.


Posted 05-22-2008 9:37 AM by Jak Charlton

[Advertisement]

Comments

rams wrote re: What Science Fiction Can Teach Developers
on 05-22-2008 9:33 PM

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.

Arjan`s World » LINKBLOG for May 23, 2008 wrote Arjan`s World » LINKBLOG for May 23, 2008
on 05-23-2008 4:23 PM

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

Sabra Crolleton wrote re: What Science Fiction Can Teach Developers
on 05-27-2008 4:52 PM

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.

Alan Moore wrote re: What Science Fiction Can Teach Developers
on 05-27-2008 11:13 PM

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.

Link Bundle - May 28 | franzone.com wrote Link Bundle - May 28 | franzone.com
on 05-28-2008 8:02 AM

Pingback from  Link Bundle - May 28      |       franzone.com

Jak Charlton wrote re: What Science Fiction Can Teach Developers
on 05-29-2008 2:30 AM

>>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.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)