Joel on Software - Five Worlds -
The Introduction - Fortune

Joel on Software - Five Worlds -
The Introduction

Something important is almost never mentioned in all the
literature about programming and software development, and as a
result we sometimes misunderstand each other.

You’re a software developer. Me too. But we may not have the
same goals and requirements. In fact there are several different
worlds of software development, and different rules apply to
different worlds.

You read a book about UML modeling, and nowhere does it say that
it doesn’t make sense for programming device drivers. Or you read
an article saying that “the 20MB runtime [required for .NET] is a
NON issue” and it doesn’t mention the obvious: if you’re trying to
write code for a 32KB ROM on a pager, it very much is an issue!

I think there are five worlds here, sometimes intersecting,
often not. The five are:

Shrinkwrap

Internal

Embedded

Games

Throwaway

When you read the latest book about Extreme Programming, or one
of Steve McConnell’s excellent books, or Joel on Software, or
Software Development magazine, you see a lot of claims about how to
do software development, but you hardly ever see any mention of
what kind of development they’re talking about, which is
unfortunate, because sometimes you need to do things differently in
different worlds.