Suboptimal Voluntary Software

May 12, 2008

For most of us software can be broken down into two rough categories; software we have to use and software we choose to use.

I’ll leave software we choose to use for another time. But when you look at the software you have to use it becomes apparent that there is a whole spectrum of quality and, possibly, room for some innovation.
There are lots of reasons we have to use certain software. Often it’s part of our job and the software, at best, does something boring but does it well. But more likely it does something boring very very badly. This kind of software could be home-grown or built by the CEO’s golf partner’s hair-dresser’s software consultancy. If this type of software is a large part of you work day; despair!
Achievement eh?
Other times we’re tied into something like iTunes or Hotmail. There may be better alternatives out there buy the hassle/danger of changing is too great so we just stick with something that ‘does the job’. This type of software benefits from an incumbent bias which can give it clout long after it has gone stale.
But the most interesting category (if you’re looking to build a start-up anyway!) is the type of software that falls short but does not deliver. Lets call it Suboptimal Voluntary Software (SVS). The First S could stand for something else too. There are obvious examples of SVS like flight booking sites, food ordering sites, your bank’s online banking site (which doesn’t have RSS) etc.
There are companies moving into the example areas but the category of SVS is vast. Often innovation in this area is tarred with the “build a better mouse-trap” brush. But there is a lot more to it than that; often replacing the existing mouse-trap is not possible, not enough people are ready for change or the technology is too fiddly. An elegant example of a clever innovator in this space is TripIt. Check ’em out!

…anyhoo, if you’re a programmer and want to be an entrepenuer, try and improve the SVS you have to use.


GTA IV The Movie – Who needs it!

April 28, 2008

So it looks like GTA IV may eclipse IronMan at it’s ‘opening’ tomorrow. Some back of the envelope calculations (6m * $60) show that GTA IV should rake in at least ~$360m on it’s first weekend (not counting the pricier box set edition). That’s well beyond standard movie takings and in the ballpark of a summer blockbuster. And all this despite it being leaked a week before launch.

Obviously, much of the on-the-day take of a movie comes in the form of food consumed before, during and after the main feature… so really it’s apples and oranges. But the promise of a $50m (or 20 extra hours) worth of episodic content for the XBox360 version GTA IV might just move the GTA franchise from game to interactive mini-series. Raising the question; where should the top quality writers, musicians & artists be working? Studios struggling with DRM issues because their delivery mechanisms are so poor or Games Studios where on-line payment and content delivery are part of their DNA.

Anyway, I can’t wait…

I wouldn’t trust you with a barge poll

March 31, 2008

Much like common sense is not all that common, plain English is rarely plain. And this is even more true when you’re speaking a domain specific language (or to the man on the street, jargon). In the world of software development we speak a very dense DSL packed with nouns that have very specific meanings. I use the word dense because there are also loose DSLs,

As example of the difference consider an address and a phone number. The address may have redundant information in, like street name and post code, or country for an non-international letter. A phone number on the other hand has no redundant information and hence is susceptible to having its meaning completely destroyed by a typo. With an address we have a little more leeway but enough typos and your letter won’t get to where you were hoping.

So when we speak in a dense DSL we need to be careful to say exactly what we mean; for example in interviews I often ask what does static mean in the context of C#. The answer I usually get is:

It means you only have one copy.

Which isn’t wrong but it’s vague, and vague is pretty close wrong in my book. A better answer would be:

Static can be used as modifier keyword to declare a member variable on a class

Far better; it shows a precise knowledge not only of the C# language but of the DSL that surrounds it. Also It’s not overly precise, it gets to the point and stops.

Now this is a simple example but the concept of terseness is widely applicable. Often I’ve found people who pride themselves on the terseness of their code don’t extend that same pride to the duration of their sentences. So given that I don’t have the time to make this any shorter, I’ll leave it there.

Spore is going to be Epic

March 12, 2008

Even Google realise that Spore is going to be the next big step in gaming. Spore taks the concepts of zoomable interface, user generated content and 3D avatars to a new and very cool level. When I first got excited about online gaming it was something like Spore that I was thinking about… I cant wait!

The Iceberg and the Swan

December 5, 2007

I’ve heard a phrase used recently a number of times and it has struck a cord. The phase was [and I paraphrase]:

… the product should be like a Swan, serene above water, legs kicking frantically below…whooper-swan.jpg

The insinuation is that although there is work occurring below the waterline that work is compact and simple and should not impact the product; the serene Swan. This is a very valid view to hold and one that also conveys the some separation between form and function.

iceberg.jpgHowever, most modern systems do not approach the elegance of a Swan. A more adept metaphor is probably that of the Iceberg. There is typically a lot more below the water line (i.e. not visible to the user) than above the water line.

The waterline on our Iceberg is somewhat movable also as different people may see varying amounts of it. But most importantly an Iceberg and a Swan have very different maneuverability characteristics.

Some projects are Swans and some are Icebergs. Neither is implicitly better, but if you mix the 2 up; you’re going to be in big trouble.

Here come the girls…

December 3, 2007

Excellent tune by Ernie K Doe and classic add. I recognize a few outfits!

SilverLight 2.0, Parallel FX and ASP.NET MVC

November 30, 2007

Blizzard of great new stuff for today, summarized nicely by ScottGu.

The new Parallel FX stuff is really quite cool. It’s a cliche to say that the number of CPUs in a typical machine is increasing while each individual CPU is not actually faster. But it’s great to see Joe Duffy release Parallel FX and PLINQ to to actually address the challenge.

All very cool can’t wait till next week for ASP.NET MVC.