Designing the next generation customer experience in multi-channel retailing

Main

June 18, 2008

Flying Blind

I am often called upon to review a design.  The first things that I ask for are the performance goals and the scaling assumptions, often called the Load Model.  More than half the time, they don’t exist, or they are pure fantasy.  (I have heard business types specify sub-second response and infinite scalability.)  The Load Model tells us how many transactions, page hits, orders, etc. a system will be experiencing per unit of time for a certain number of years in the future, often the next 5 years.  This table or graph will determine the type of design that you have to create.  Without it you are “Flying Blind”.  For example, if you are told that you will have 45 orders per hour at peak then you have any number of ways that a system could be built.  In fact, almost any design can handle such a light load.  On the other hand, if you are told that you will have 45,000 order per hour you will have to examine every aspect of the design to detect bottlenecks as quickly as possible.  Many times, no one really knows what the load numbers will be.  Often, the business people will try to pawn the estimation off on the technical people.  Resist this!  You must make the business people take the bottom line for this.  If you don’t, you will be accepting the risk that the business people are paid to accept.  If you create the Load Model yourself, you will be ultimately responsible for its correctness.  This is especially important when the load is unknowable.  In that case, the business must pick a number out of the air.  Once picked, you should ensure that everyone agrees to design to it.  Later, if your approach is correct for the assumed load, but incorrect for the actual load, you will be able to defend the design. 

April 18, 2008

eCommerce Engineering is Hard

What makes it hard?  First, you have to write or acquire an eCommerce engine, integrated it with an order management system, a content management system, and a payment service.  Then you have to interface these products with 20-40 legacy applications so it fits into your corporate structure.  You have to design a user experience that is better (or at least no worse) than you have on your old site. Finally, after you have managed to get all of the projects, and subprojects done, it must perform well today and scale well over time.  If it won't perform, then you have to go to your boss and get $X million more for additional licenses and CPUs.  This is clearly in the hard category!

Continue reading "eCommerce Engineering is Hard" »