The writings of Peter Stuifzand

Archive for January 2011

At some moments in time, ideas come together in a mind to form a new idea. The baffling part is the realization that the idea has been hanging around you for some time (years, sometimes).

Such an idea can be really obvious in hindsight. My latest big idea came to me last week, when I had added the ability to add comments to orders in my webshop software. Simple enough, you might think. And you would be right.

The real breakthrough came when I thought about how order processing in webshops is actually quite similar to restaurant kitchens, programming and help desks.

I watched a few episodes of Kitchen Nightmares where Gordon Ramsay helps struggling restaurant owners to fix their restaurants. Not every episode is the same. In one episode the struggle is to organize the kitchen and the front of the house. The communication is failing. Tickets are a way for waiters to communicate with the kitchen staff. Organizing the tickets helps organizing the restaurants.

I dawned on me that an order in order processing is actually the same thing as a ticket, a representation of some work that needs to be done. The order is used to communicate between the order pickers, shipping department and the billing department.

However, just this realization doesn't make this a good idea. As you may know I write software and one of the things that attracts programmers to programming is laziness. If we can write software so people (that's us) can work less, then we're happy. Let's dissect an (electronic) order form into its parts.

  • Order id (unique number for reference)
  • Shipping address
    • Name
    • Address
    • Zipcode
    • City
  • Ordered products
    • SKU
    • Count
  • Order date

This information is nice for a static order form, but to take this to the next level we need fields where we can add or change some information. Three things that make an order form a communication tool are status, comments and tasks.

  • Status (new, open, closed, cancelled)
  • Comments
    • Text
    • Date time
    • Author
  • Tasks
    • Type (for tasks that happen more than once)
    • Done (yes/no)
    • Description
    • Author
    • Owner
    • Start date
    • Closed date

The status of an order is the master status, it shows which orders are important. Open orders are the ones that need work, the closed orders are done and the cancelled orders were not completed, because the customer cancelled the order. I listed only a few possible states, there could be many depending on your workflow.

A comment is a written piece of information about an order. A person could write an explanation of something he negotiatied with a customer. A software program could write a status message for the payment service provider.

A task is an action that needs to be completed before the order can be closed. An example of a task is the printing of the shipping label.

Together these three pieces of information help us create a system where people and computers can communicatie and work together to process orders. We specify and structure information of an order and gain the ability to automate some of these steps involved and improve communication between people.

A small list of ways how articles (or documents) will disappear at some future point in time.

  • User error removes the originals
  • User error removes the generated files on the server
  • Hard disk failure (on server)
  • Hard disk failure (on author)
  • Backup failure (one, two and three)
  • Server failure
  • Hosting company out of business
  • Domain name registrar out of business
  • Media company out of business
  • (Author's) Death
  • Lack of interest
  • Lack of technical expertise
  • Removed everything in anger
  • Revisionism
  • Changed interests
  • Cost savings
  • Changes in publishing software
  • Conversion costs
  • Backwards incompatible software changes
  • Changes in laws

The internet is an amazing place. Read the news, follow your favorite writers, hang out with your friends, watch videos and fall in love. It's all possible on the internet. It feels as if it was there forever and it will never go away.

However with every click of your mouse or key press on your keyboard, you chip away at the internet. With every byte you send and receive the hardware of the internet becomes a little bit worse. One day the hard disk on which a web page is stored, needs to be replaced and a copy needs to be made.

In the past publishing an article meant that a publisher created many copies of a newspaper or magazine or book. Each of the subscribers or readers bought one of those copies. If you wanted to read the article you just had to find a copy somewhere from someone. Publishing happens once. Once an article was published there was no upkeep for the publisher. A publisher doesn't need to pay money to keep the copies available.

Today, on the internet, publishing an article is a starting point. Every article that's published needs to be paid for until the end of time. There are costs associated with keeping an article online: server costs, personnel costs and bandwidth costs. These costs only grow over time.

The current system, where the producer of the article is responsible for it, is very fragile. It's easy for an article to disappear. Even in the normal order of things an article will be lost automatically at some future point in time. It doesn't have to be obvious how an article will be lost, but with a combination of factors it's not hard to see. To make matters worse, some factors need human intervention to fix them. If no one makes an active effort to copy an article, it disappears forever.

For example in the case of a self-publishing person like me. If something happens to me and I can't take care of my server, or my weblog it will just disappear at some future point in time, because of server costs or maintenance. That's just the normal state of things.

A newspaper, which goes out of business, will take their whole collection of articles with them. At that point there need to be taken extra steps to keep their archives online.

The old and the new

The old (paper) system for publishing has two nice properties, because of the way it is.

  1. There are multiple copies, one for each reader of a magazine.
  2. The copies are spread in a random way across the world: geographic redundancy.

The new system on the internet has other properties.

  1. There is one authoritive copy.
  2. There are internal backups (hopefully)
  3. There could be more copies, somewhere, but not for everything.

Compare these two systems with backup strategies and it becomes obvious which is better for the survival of the articles: the old system.

This doesn't mean that I think we should be dissassembling the internet. Not at all. The internet is the most wonderful thing. And we should take every precaution to keep to free (as in freedom), open and useful for everyone.

I think we'll have a good chance of making a better robust and redundant internet, by applying the first property of the old system to the new system. The second property is already taken care of, by the nature of the internet.

View archived entries