Posted January 25, 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
- 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
- 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.
Posted January 3, 2011
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
Posted January 3, 2011
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.
- There are multiple copies, one for each reader of a magazine.
- The copies are spread in a random way across the world: geographic
redundancy.
The new system on the internet has other properties.
- There is one authoritive copy.
- There are internal backups (hopefully)
- 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.