Every software vendor must make fundamental design choices that are integral elements of the system and that have a profound affect on performance and access to information. Good systems enhance productivity and efficiency, and provide lots of information to promote sales and growth. Cat's Pajamas believes that choices in the following areas are critical factors in determining system success:
Relational Database Management Systems (RDBMS) are in vogue. But Cat's Pajamas is less than optimistic about the reaction of our customers to a “new and improved” Cat's Pajamas system that:
The performance differential would be the killer. By implementing an RDBMS we’d be sacrificing performance for advantages in flexibility that mostly benefit the programmers. Shouldn’t software systems put the user first and programming convenience second? This is the context of our decisions in the following areas:
The primary language for Cat's Pajamas programs is DB/C. This is very much a programmer’s programming language. In “techie” jargon, DB/C conforms to the ANSI standard for a Programming Language for Business (PLB). Its mainstream use is in industries like insurance, transportation and petroleum. It has superior associative and contextual search techniques. And it has robust file sharing and locking capabilities that enable real-time processing. Compiled programs execute under an interpreter, making them immune to virus infection. Execution speed is exceptionally fast.
Does the system follow the workflow or does the operator have to organize the work to fit the system? Our system fits itself around the way people work. That’s the end result of years of coaching from our clients about how to make the programs better fit the real world of an office. The guiding concept is a “work session” where there’s smooth momentum.
Take cash application in Cat's Pajamas: Entry can be followed by reconciliation by error correction by re-reconciliation and reporting. The operator sets the pattern, not the system. Because each module is independent, the operator can have several Cat's Pajamas programs running simultaneously on the same workstation.
Cat's Pajamas uses a combination of techniques for ensuring that systems provide the best fit possible for a specific business. User-maintained tables are most convenient. However, when we need them, there are sub-programs that can be used to infuse special logic for a specific client. We call these sub-programs loadmods. They are compiled separately and linked to the main programs. The main program checks the loadmod at specific points for special or custom instructions. This programming platform enables us to easily accommodate special needs.
We maintain the best possible source-code documentation: a complete copy of each of our client’s custom programming. With a few simple keystrokes, we can launch the client-copy for support or customization purposes.
Techniques for Accessing Data
Given our flat-file structure, Cat's Pajamas is about as open as a system can get. For industry-standard access using SQL an ODBC interface is easily crafted – our ODBC data dictionary facilitates the process.
Cat’s Pajamas pioneered this search method in a commercial system and we’ve steadily expanded usage. Cat's Pajamas became accidentally trendy—these search techniques are quite similar to those used in browser search engines. The power of this kind of search is best illustrated by the following example of a question from marketing or sales staff.
Can I see all orders in Oregon (state OR) for books on Coastal Fauna (subject CF) by park gift shops (customer type code PG) resulting from our summer sale (source code SU)?
This gets complicated because the search argument involves properties of the sale, properties of the customer, and properties of the book. For this example let’s assume there are 2 million line items in the file and that 25 records match the search argument. In a Cat's Pajamas system running on a modest Pentium computer, the 25 items will be on the screen in less than 5 seconds.
This search technique involves building a very large matrix that associates all combinations of data. It requires use of exact pointers to data locations, which is a determinant of our database foundation in fixed-length flat-ASCII files (see database notes below). This search technique is a particular strength of the DB/C programming language.
What system feature is used more often than any other in daily operations? The answer is searching. -Search techniques are used more frequently than any other function. The flexibility of search arguments and speedy response with matching data is a huge determinant of productivity. Cat's Pajamas is very strong in this area – we’ve seen jaws drop as untrained users find customers or books or sales information in huge databases within seconds or less. Efficient search capabilities yield bottom-line results. An example is a test conducted by a publisher to compare Cat's Pajamas to system “X”. After training, two operators entered the same orders in Cat's Pajamas and in system “X.” System “X’ required three time longer.”
Search for a customer in Cat's Pajamas using fragments of the name. For example, search on “oop” and “light” to find “Hoople Enlightenment Center.” The speed is impressive. If only five customers out of 200,00 have matching information, 1-2 seconds is all it takes to get them on screen. Address and city can be incorporated in this search if desired. The beauty of this search is that the more arguments you add, the quicker the results. The flexibility of this search is essential for prevention of duplicate accounts.
Another major determinant of productivity is access to updated data. Cat's Pajamas files are updated at the instant of the transaction. Our system is completely “real time”. The check applied by one user is visible a second later by any other user. The order entered at one workstation is accessible the instant entry is complete. Anyone can view it or edit it. The credit memo created can be instantly applied. The inventory receipt can be used right away. Reports reflect up-to-the minute information,
The final goodie is the complete absence of mid-day or end-of-day posting routines that interrupt the daily processing. At the end of the day we suggest going home (but do leave the backup set to run).
Verifying Database Integrity
Auditors love Cat's Pajamas. No kidding. Many of our publisher clients are institutions –more than 20 percent are educational institutions – so the audit requirements are stringent. Cat's Pajamas has all the under-the-hood things for daily processing that auditors want to see, like audit trails and control totals. The finale is a month-end closing that reconciles the control totals for entire month against the invoice and line-item totals. Any differences (usually due to power failures or other environmental issues) are rare, are reported clearly, and the control totals are reset in preparation for the next month. This verification and reconciliation process yields solid proof of accurate sales figures, A/R and all-around database integrity.
Cat's Pajamas claims a system that meshes with workers in the real world. People make mistakes. So another determinant of productivity is the ease with which problems can be corrected when they occur. If an order entry operator is interrupted during a large order, “park” the data away and retrieve it later. Nothing is lost – resume the work as if there had been no interruption.
There are no rigidities to inhibit changes during entry. After the order is entered it can be changed at any point prior to confirmation of shipment from the warehouse.
Comparable features are found in credit memo entry and cash application. Even batch processes like reporting sales commissions can be re-run if data like customer codes need correcting.
Enhancements and upgrades
Cat's Pajamas is very conservative about releasing major changes. Our most recent release was used in live operation for almost two years by several beta test sites. This shakes out bugs but more importantly it provides feedback so Cat's Pajamas can add improvements. If any bugs do slip through we guarantee to take care of them as quickly as possible
Early last year Cat's Pajamas added the snazzy ability to create custom views to the suite of query programs for books, customers and backorders. These programs were sent to all users of Release 4.1. As improvements are made, more goodies are being sent out. There’s no cost because there’s little work involved in simply sending out a program.
The terminology is tricky, but Cat's Pajamas defines “upgrades” in a very different way than some software companies. What others might call an “upgrade,” we would call an “enhancement”. A Cat's Pajamas enhancement is free.
An “upgrade” is a much more complex process. In our latest release Cat's Pajamas completed a major overhaul of our database. New fields were added and field sizes were expanded. Programs underwent major overhauls; functionality was improved significantly.
Upgrades involve extensive improvements in programs and functionality, and, probably, significant changes to the database. To make upgrades easier to implement we preserve the continuity of key programs. Things that our clients like we keep. Customization is replicated and activation of new features is coordinated. This process is labor-intensive, which is the main determinant of cost.
There are several measures of a software vendor that can only be verified by the experience of the users. Cat's Pajamas can make claims -- but we suggest a few simple questions that are easily answered by a publisher.
When publishers switch to Cat's Pajamas, productivity goes up. When publishers switch away from Cat's Pajamas, productivity goes down. This shows up most in the labor-consuming daily grind of processing orders, customer service and applying cash. We suggest verifying our claim by asking publishers themselves: “Did operational productivity improve when you switched”?
Cat's Pajamas has a good reputation for support. We suggest the question: “Did the quality of support improve when you switched”?
Everyone would agree that a system that isn’t working obstructs productivity. Answers to the following questions might be useful: