RJB participated in the development of a full and robust order management suite that has processed hundreds of millions of dollars in online orders. Our role on the project was to manage, architect, and participate in the implementation of the system from inception through to production. Here we discuss some of the salient features of that suite, including some lessons learned while building and operating the “Distributed Order Management (DOM)” system.
This article is a brief overview of our experience and capability. We hope you will find it useful. For more information, or for advice on your e-commerce or order management project, don’t hesitate to get in touch.
Workflow-Driven Order Management
The DOM system is called “distributed” because we recognize that a potentially large, and not necessarily co-located, number of people can be involved in processing an order. We address this challenge with a workflow tool, which allows us to effectively coordinate the activities of these individuals across multiple departments and third party suppliers. The impressive side benefit of this approach is a wealth of real-time and offline analytics capability, which, as we discuss below, helps provide the flexibility and efficiency demanded of high volume order processing.
Streamlining the Order Process
One of the most pronounced benefits of a workflow approach is the improved visibility. Not only can we pinpoint precisely where the order is in its processing cycle, we can obtain precise metrics over time on the process itself, such as the average time to complete a step or reach a milestone. This allows us to identify bottlenecks and reflectively streamline our order process. It also allows us to issue real-time alerts if any deadlines are in jeopardy.
When unique situations arise, such as orders that experience problems, the workflow can also provide a historical record of the entire process for analysis. This goes a long way toward hardening business processes and improving training.
The workflow tool provides this visibility in an unintrusive way. When a user enters data against an order, the workflow can detect the changes and update any associated tasks. For example, logistics companies like FedEx typically provide a prospective “in-hands” date when they accept a shipment for delivery. This is the date on which the customer will receive the order. When the in-hands is entered into DOM the workflow automatically triggers the completion of the “Ship Order” task.
On the other hand, users can still update the workflow “manually”, by marking tasks complete. In this case, the workflow can be configured to provide checks and balances. Continuing with the “in-hands” date example, the workflow can check that a date has in fact be entered into DOM. If the date is not found, the user will receive an alert and the workflow will not proceed.
Finally, the workflow can also act as a gate keeper, only allowing certain tasks to proceed when others are completed. For example, in an e-commerce suite that permits negotiation between sales people and customers on pricing, it can be important to have an approval step before the order is placed with a vendor. This would permit oversight on the price negotiation. Gateway nodes in the workflow introduce various types of logic to determine how the gate can be traversed in the ordering process.
LESSON: In order to streamline an ordering process, it’s helpful to have a good insight into what is happening when real orders are processed. While there are certainly more ways than one to skin that cat, having a detailed workflow history with dates, times, and names certainly doesn’t hurt. At the very least, it provides factual data to support assertions, and it can at times make issues visible that might otherwise have gone unnoticed.
Flexibility is Key
Ordering processes need to be flexible. Contrast the relatively simple process of ordering a cell phone online with the ordering of a “made” item, such as a product with a customer logo, or a product that requires configuration. The former product is complete, as presented in the e-commerce store, while the latter introduces customizations that may complicate the ordering process, and may in some cases require customer contact with a sales rep.
It is important to be able to tailor the ordering process to fit the need. Once again, enter the workflow. Handling a Free Sample Order? Use the Sample Order Process with a different flow for the financial aspects of the order. Dealing with a logo’d product involving artwork that may have to be brushed up and approved by the customer? Use the Logo’d Product Order Process that involves the art department interacting with the customer for an approved version of the artwork. Dealing with a configurable item? Walk the customer (or sales rep) through the myriad of choices available in the simplest manner possible while avoiding choices that are incompatible with each other.
Ordering processes vary from company to company, sometimes for good reason and sometimes not. Sometimes the ordering process in some companies are not very efficient, but they are difficult to change because they are wedded to an inflexible computer system. In other cases, the ordering process may have to “tweaked” perhaps to improve it, or perhaps to add a new product line that has new requirements.
Using the workflow tool we can “draw” the process on screen using very familiar flowchart style boxes and arrows. Saving that diagram is actually changing the system, whether it is a fix, or something new that we are introducing to DOM. On one occasion while working with someone from the Finance department we discussed how the financial approval process should work. During the discussion we made a few changes to the process diagram on the spot. Upon saving the changes the Finance person commented “so you just have to code it now?” “No, we’re done” was the reply, and we were. All we had to do was test the new procedure before putting the change into production.
LESSON: Flexibility allows us to deal with a larger variety of processing flows, and flows of greater complexity, in a easy and timely manner from the same software base. A picture says a 1000 words – visualization helps us understand the process flow, spot flaws and other areas for improvement.
The Result is Efficiency
We briefly mentioned the “in-hands” date example earlier, where the workflow auto-completes a task based on information that was entered into DOM. This is a useful feature that reduces effort on the part of an order clerk. There are many uses for the auto-complete feature. For example, orders under a certain value might not require approval – upon reaching the approval part of the ordering process the Approve Order task auto-completes and that task is not seen by the sales person, order clerk, or finance. The rules are baked right into the system in the workflow process diagram.
Another interesting feature is notification when particular events occur, such as the arrival of a new order to be processed, or a deadline approaching for a particular task to be completed. Notifications are typically sent via email and/or text. Additionally, order clerks, sales staff and others involved in the ordering process can see Pending tasks i.e. tasks that they will soon receive when someone else completes their task. This allows an individual to know what work is coming up before it lands on their desk.
Finally, because a workflow process abstracts tasks from the rest of the application it easily facilitates the attachment of notification rules to a particular task or process. Using a publish-subscribe model, when these tasks or processes reach a certain state e.g. started, in-progress, completed etc. a notification is published and consumed by all subscribers to that event. This subscription model can help co-ordinate the execution of a given task or process with human beings or other processes. An example subscription might be to notify the Order Manager of any orders that have an extremely tight delivery schedule so that they can be monitored more closely.
LESSON: All of these innovations are a result of introducing workflow into the ordering process, which translates directly into increased transparency and improvements in efficiency. This includes stronger checks and balances, and improved notifications of situations that require attention.
DOM coordinates 100+ concurrent users, including 75+ order takers, for a $135M e-commerce company, with significant upwards scalability due to its hardware configuration. DOM is connected to both the e-commerce site and the back-end Factory via Web Service technology. This permits the order management function to be located in a different computer facility than the Webstore and the Factory. For example, one could host the Webstore in the Cloud, but locate DOM near to the office workers that process orders, while locating the Factory close to suppliers etc.
Clustering and Failover
For critical infrastructure, there is built in redundancy and fail over. For example, DOM runs on multiple load balanced servers as does the Webstore. Failure of a component causes traffic to be automatically routed to the remaining available servers. Serving these critical systems is a database server which has failover capability to the backup database server. This is supported by a modern UPS system to provide temporary backup power in the event of a power outage. Due to its robust system and infrastructure, the DOM operates at close to 100% up-time.
Cloud and Service-Oriented Architecture
Today, many are looking to the Cloud as a panacea to reduce complexity of IT management. However, depending on your requirements, that tradeoff can also affect cost either positively or negatively.
Without specific details about your operation, no one can tell you whether it’s better to run your operations in the Cloud, from a co-location site (colo), or on your own premises. But one thing can definitively be said: it would be great if any or all of your e-commerce suite could be run in any of those locations, and moved if circumstances warranted.
RJB develops and maintains systems for all aspects of e-commerce using a Service-Oriented Architecture that permits each system to be moved to the place it needs to be. All systems, including applications and databases are platform independent. All applications highly leverage industrial strength open source software, and communicate with each other through Representational state transfer (REST) or RESTful web services. Each application is fully transportable from on-premise, to color, or to the Cloud as needed. A RESTful architecture can be the dominant factor in user-perceived performance and network efficiency, including scalability to support large numbers of components and interactions among components (see Representational state transfer). For more information, or for advice on your e-commerce project, don’t hesitate to get in touch.