Fog Creek Software
Discussion Board

Moving between the 5 worlds

As usual, Joel has come up with a obvious observation about software development. There are different worlds, but the 5 he mentions is a good start.

1. Shrinkwrap
2. Internal
3. Embedded
4. Games
5. Throwaway

What was NOT discussed in the article is that often software moves between those worlds. Or,  software actually starts life in one world, and ends up in another. In fact, when software it does move between worlds, then opportunity can be created. Products such as dbaseII, and a good many others started out as Internal systems. Someone comes along, and says, hey lets commercialize this product.

In fact, every developer I know will always take a project that has a *larger* possible audience for the work done. In other words, if I am hired to create a particular system, and I have several jobs to choose from, I will take the one that has the greatest possibility of being re-sold (and eventually becoming a shrink wrapped system).

Look around at your company, and ask is there any system that can be moved between a world? When the answer is yes, then opportunity is knocking.

Joel’s own bug software tracking database started out as internal product. However, it is now moving towards the Shrink-wrap. Joel commented on how cool it is that how software when sold *scales. Thus that system that might cost $5000 to one customer, can be sold for $500 to 10 customers. It is a very cool concept when talking about numbers of users, and the cost. In fact, some internal software with *large* numbers of users is very much like shrink wrapped software anyway (it has to be written that way..).

As mentioned, most software tends to be Internal in nature.  Which is why it seems so silly to hear people rant about Microsoft taking over. When one talks about MS, you have to talk about a particular world (by the way Joel, you forgot a world:

    6. Operating Systems

(I might as well be the first on the war path of many to mention a “world” that Joel forgot!).

Microsoft does not write internal software, and about 99% of us work in that area.  The other false compliant we hear is that we are forced to upgrade. In the internal world, I still have dbase code from 10+ years still running. In fact, it was Apple, and most of the other MS competitors that forced everyone to throw out old software (I can still run my old code from 1983 on my new pc). You can’t do this with Mac-paint, and all the old apple software since apple *DID* force you to throw it out. MS rarely does this.

Anyway, my whole point here is that when you move software between worlds, you can create opportunity. The folks who make all the software that lets you read/view Word and Excel on your palm are making a fortune right now (in fact, for palm to compete, they now include this software with the new they had to do this, since MS on the Pocket PC side makes this also very easy to do). This opportunity exists because of software in one World (desktop) was needed to be viewed and used in the embedded pda world.

So, take a spaceship out for ride, and see if you can move to another world and find some opportunity.

Albert D. Kallal
Edmonton, Alberta Canada

Albert D. Kallal
Tuesday, May 7, 2002

Eh, aren't operating systems Shrinkwrap products?

John C
Tuesday, May 7, 2002

"Eh, aren't operating systems Shrinkwrap products? "

OS-X and Windows might be expected to behave that way sure - and it's fair to include them - but no one who has ever setup a system for a server would consider that "shrink wrap". Even for Windows Server installs where everything is done up in wizards, theres still far too much thought required from the person doing the install to call it shrink wrap imho.

Robert Moir
Tuesday, May 7, 2002

Point taken. Maybe they should be more like shrink-wrapped products...

John C
Tuesday, May 7, 2002

Operating systems are a category in their own right. Platforms. They're strategic, and much more important than shrinkwrap, but share some of the characteristics of shrinkwrap products.

Another category at the same level is defence and aerospace. Internal in one sense, and yet far more rigorously tested and QA'd than shrinkwrap software.

Hugh Wells
Tuesday, May 7, 2002

Defense/aerospace programs could be viewed as a mix of internal and embedded.  Only one thing's gonna use it, but if there's a bad bug, say bye-bye to your billion-dollar jet.

With the opportunity of moving between worlds also comes a lot of work.  Note the differences in what's valued in each world.  Something moving from internal to shrinkwrap will need an ease-of-use assessment, and likely an overhaul.  Going from throwaway to embedded will necessitate a major bughunt.  Obviously some moves would be easy (anywhere -> throwaway), and others would be unheard of (game -> internal).

Paul Brinkley
Tuesday, May 7, 2002

Again, the five worlds aren't quite gelling in my mind.  Operating systems obviously have distinctive design requirements, yet they're used in an environment that is considered "shrinkwrap".  I had been thinking about software libraries, and whether they fit in a sixth world - they're sorta shrinkwrap, sorta internal, sorta embedded.

World-wise, I'm wondering now whether games should fit better as a fourth subtype of shrinkwrap.  It somehow fits better in my mind.  Portalware or webware makes a little sense as a world of its own - server runs on one machine (internalesque), interface runs on many (shrinkwrap-esque).

Paul Brinkley
Tuesday, May 7, 2002

I think aerospace falls into embedded land.  In fact, its the origin of embedded software.  Some might argue its the origin of all software, but obviously the "popular" software of today hardly resembles its origins - and why categories are appropriate.  But making the categories too specific soft of loses the broad strokes of impressionism of the painting, yes?

Nat Ersoz
Tuesday, May 7, 2002

I want to interject here that the idea of "the five worlds" probably isn't meant to be perfectly accurate.  When you start categorizing, you realize that there are lots of different worlds, which each overlap each other in various ways.

Joel's idea of the five worlds is, I think, more of a basic conceptual model to illustrate the idea that there are different kinds of software than an attempt to specifically and concretely catalogue all types of software.

Brent P. Newhall
Tuesday, May 7, 2002

I agree very much with what was said about moving software between worlds. However I would like to point out that moving between worlds creates difficulties as well as opportunities. The organisation I work with at the moment writes engineering software, which started as largely an internal product, then was sold to a few specialised organisations that we had been doing work for. Now it is sold to hundreds of companies. But during that time we had to completely revise our software engineering methods several times. Quality standards, bug tracking procedures, helpdesk procedures,
testing; all of this had to change. (So did the sales department of course, but that's not relevant here).

Of course it's been worth it, although some days I wish I was back inthe simpler times. But not for long.

David Clayworth
Wednesday, May 8, 2002

*  Recent Topics

*  Fog Creek Home