Having been hindered over the years by having to revisit perfectly good business logic every time there was a major upgrade in the operating system, the database or development language, RORC (Retailed Owned Research Company) decided to redevelop from the ground up its 15 year old Visual Basic-based retail system with a development environment that would shield it from forced code revisions and having to maintain multiple versions.
RORC selected Visual LANSA and is now very successfully rolling out its new single source Point-of-Sale and back office solution to over 700 retail locations across the USA, who currently have a mixture of Windows operating systems.
- The Challenge
- The Search for a New Development Environment
- The Project and Solution
- The Benefits
- Company and System Information
RORC is a cooperative, jointly owned by three cooperative wholesale distribution centers who translate their retailers' service needs into new product requirements and fund RORC's work to build retail systems for their member retailers. Joe Jurich, President and CEO at RORC, refers to RORC's organizational structure as a co-op of co-ops.
RORC was established in 1985. In the early eighties the retail industry had started to move away from mechanical cash registers towards electronic systems that could scan goods at the checkout. "If a retailer wasn't scanning, the customer looked at them as if they were old fashioned. At that time there were only a few big name players in the retail automation market charging over US$10,000 per lane to install a POS scanning system. While large retail chains could afford such an investment, those costs were usually prohibitive for an independent retailer", explains Jurich.
In 1985, a group of wholesalers wanted to do something to help their retailers with in-store systems and subsequently founded RORC. RORC started with a back office price management system, which it named StoreWin. After that RORC developed viPOS, a simple POS scanning system that could run on a low-end PC. Based on input of its member retailers, both the back office and POS system evolved over the years.
"For significantly less cost per lane, our retailers could install scanning. The bulk of the cost was for hardware." says Jurich. "Historically we developed in VB (Visual Basic) over an MS Access database. Our solution had been doing well for 15 years, but its user interface needed updating, the setup and configuration options were not flexible enough and MS Access was stretched to do things it was never intended to do."
RORC investigated whether there were any suitable packaged retail automation solutions available, but found that, after 15 years, they were still too expensive for its retailers. Moreover, a lot of the functionality of the packaged solutions was geared towards chain operators, with features that independent retailers could not use. RORC decided to redevelop its solution from scratch and started researching development environments.
We were spending a lot of time and resources, without any new functionality to show for it
The Search for a New Development Environment
"We were looking at moving to .NET, but found it was not going to eliminate a major VB problem: Code deck stability. Over the years, every time Microsoft reinvented VB or Access, which on the average is every three years, we found ourselves working countless hours rebuilding perfectly good business code, because the current version of the source was incompatible with the new IDE, database or OS," says Jurich. "We were spending a lot of time and resources, without any new functionality to show for it."
Jurich researched a number of other development options and found out about LANSA. "What we liked about LANSA was that it would take care of the low level plumbing code and that it would insulate our business logic from operating system and database incompatibilities. We could write the business logic once and - down the road if we wanted to - port it to another database or even to another operating system. And we could do all that maintaining a single set of source code, which is great for any solution provider. We also liked LANSA's Framework and 4GL productivity, because we were on a tight timeline to develop a new solution quickly," he says.
Because RORC's solution needs to work with a lot of devices, such as scanner scales, cash drawers and receipt printers, an intensive proof of concept was needed. After some small adjustments were made to speed up the communication with those devices, LANSA passed the test.
Being able to port to another platform is great for any solution provider
The Project and Solution
A project team was put together consisting of three business analysts (one from each wholesaler), four in-house developers (existing VB programmers and college recruits) and a consultant/mentor from LANSA Professional Services.
RORC's retailers range in size from small 'mom and pop' stores with just one or two checkout lanes, to stores with over 30 lanes. The requirements of the small retailers differ enormously from the larger stores. In addition, the three wholesale cooperatives each have their own standards and procedures. RORC's software solution therefore needed to be very flexible.
The three business analysts took the existing system and dissected it completely. They then categorized features as 'what retailers liked about the current product', 'what they hated' and 'things that need to be fixed or added'. With that input, a new system was designed from the ground up.
After 30 months, which included requirement analysis, system design, development and testing, the bulk of the solution was ready for a pilot implementation at the first retailer. (At that point, parts of the back office module were still in VB, integrating with the new solution.). "There were some small issues, but nothing serious considering the scale of the project. When the second site went live, the supporting warehouse received only a few support calls, none of which related to a technical problem," continues Jurich.
Both the backend and POS system are developed with LANSA and use SQL Anywhere as the database. The POS clients can run independently in case they get disconnected from the back office server and will synchronize their data when reconnected.
For those not familiar with grocery retail automation, there is a lot of complexity involved! The back office system provides price management, inventory management & replenishment, and sales statistics. It keeps a balance of cash 'on the floor' (at the cashiers), in physical safes and for back office operations such as accounting for cash management by shift. Productivity reporting is elaborate and includes detailed statistics on how many items each cashier processes per minute, how much time is spent on giving change, and so on.
The POS system is able to handle a variety of electronic devices, integrate with frequent shopper programs, and integrate with third party applications for security or couponing. The pricing engine is able to quickly determine what price to charge (regular price, sale price, or loyalty price) and what discounts are valid for the customer (e.g. Senior Discounts, Special Offers, Buy One-Get One). When interfaced to a loyalty or e-coupon application, the application must send information to the third party and receive instructions ranging from receipt messages to special prices or discounts. All that has to occur very fast. “When you scan an item, you have less than a second to display the correct price," explains Jurich.
In addition to the two way communication with third party systems, RORC's POS system provides a one way interface that can be utilized by the store's security system to monitor what keys are pressed or actions performed by a cashier. The POS data is overlayed with data captured by video cameras for security loss prevention officers to monitor what is going on.
The POS system is able to handle a variety of electronic devices and integrate with third party applications
"So far, 20 stores have implemented the new system and the feedback has been very positive," explains Jurich. "The main benefits for the retailer are the stability of the new system, new functionality and a productive modern user interface."
"Retailers can power off the back office server or a POS client in the middle of the day inadvertently, then turn it back on and everything recovers. Commitment control is a huge positive in the new design," continues Jurich.
"It is a fairly complex application, with lots of functionality and implementation options, but at the same time it is also very intuitive. Training is straight forward and takes about 20 minutes for a cashier, and another 20 minutes for the store manager."
"From an IT point of view, the LANSA-developed solution is far simpler to manage than the VB solution. The code is object-oriented now, which makes it easy to maintain. By insulating us from having to worry about underlying version incompatibilities in the operating system or database, we saved both time and removed a prior headache – code instability," Jurich says.
The biggest benefit is that the system is data driven, rather than hard coded. Using the data to drive the application allowed RORC to provide a 'custom' look and feel within the same application by keeping options that were not enabled from being displayed to the users. Role-based security further enhanced the look and feel, as a user only sees functions for which they have been authorized. In some cases, the security can be established at the screen level within a function. The tailored and uncluttered screen design makes the system easy to use and productive for the retailer.
By insulating us from having to worry about underlying version incompatibilities we saved both time and removed a prior headache
"The user interface has been drastically updated, processes simplified, and user configurable flexibility has been added throughout the system. We refer to the system as designed for independent retailers, by independent retailers," says Jurich. "It allows an independent retailer to implement a system that rivals, and in some cases surpasses, the functionality used by the chains, but at a much smaller cost."
“Many years ago, I heard someone comment, ‘Keep in mind that the person you assign to a project is building your future. Too many managers assign people they can ‘afford to lose’ to project teams. Why would you trust your future to someone you can ‘afford’ to give up? Instead, assign the person you think you can least afford to give up. In all likelihood they will be your subject matter expert.’ Thus, when we started the project, I asked each of the three wholesalers to assign to the project full-time the person they could least afford to give up and they each selected an individual. The message heard many years ago again proved accurate. Having highly capable business analysts involved greatly enhanced our ability to deliver a great system in a timely manner," concludes Jurich.
"There is old adage, that when building systems three factors are always desired: Good, Fast and Cheap. In reality, you can pick two knowing that the third is the trade-off. For instance, it may be good and fast, but it won't be cheap. Or, fast and cheap, but it won't be any good. With LANSA, we achieved all three. The deliverables are very good. They were built much faster than we could have built them in any other language. And the end result was significantly cheaper than it would have cost using other methods."
Three factors are always desired: Good, Fast and Cheap. In reality, you can pick only two, with LANSA we achieved all three
Company and System Information
- RORC is a technology research and development organization dedicated to providing the independent retailer with the best possible retail automation solution. RORC's solution is implemented at over 700 retail locations.
- RORC's LANSA-developed Point-of-Sale and back-office system is deployed on Windows clients and Windows servers, both with an SQL Anywhere database.
- For more information visit: www.rorc.com