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
- 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)
- Date time
- Type (for tasks that happen more than once)
- Done (yes/no)
- 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.