l2_banner_2

We are often asked what are the characteristics that differentiate a popular widely used software and high-end software.

These differences are not apparent at first glance since they are structural rather than superficial.

Essentially, these differences are of three types:

    1. Method used to store data and distribute it to users.
      Popular software stores data in individual DBase or Paradox format files on a file server. For each data file there are often 3 to 4 corresponding index files. You can easily end up with a hundred or more files on disk for a simple accounting software!
      These files are directly read and updated by the copy of the software that runs in the computers of each user. No central coordination mechanism is provided. The responsibility of file integrity is so devoted to each computer. Any malfunction in the update steps of the files can cause corruption of these.
      When will this corruption be discovered? Moreover, in such an environment, the data files are necessarily accessible to all. An employee could very well make a copy of it and take it home to decrypt it at will. Think about the master salary files!High-end software uses relational database management systems  (RDBMS) such as Oracle®, Progress®, or SQL server® to store and distribute data to users. In such an environment, the data resides in a single physical file on the server.This file is made up of several logical files that contain the data. They are called tables.Only a program running on the file server has access to these tables. Thus, the data is never available directly to users.This program (called a server program) supports the distribution and updating of data following requests from the application software that run in each of the PCs.In a very specialized function, it validates read and write permissions and passes all update data through filter procedures which verify its integrity and completeness.

      For example, if a PC is inadvertently closed in the middle of an accounting transaction, this filter will choose to exclude the entire transaction by moving backwards if necessary to clear any distributions already recorded.

      Such an approach is essential to ensure data reliability and availability at all times, especially if the number of users exceeds 3 or 4.

  1. Flexibility in how to handle the data. Popular widely used software must first ensure the ease of use of its software. When software is sold for a few hundred dollars, the vendor must focus on ease of use to meet the costs. Otherwise, the cost of support will quickly exceed the income from the sale. High-end software, on the other hand, prioritizes functionality that will model the way the business operates rather than simplicity at all costs. Without providing an exhaustive demonstration and only as an example, we present below all the ways available to users of DCision ERP software to manage the units of measurement (U/M) for a given product:
    • [U/M_1] - Unit of measurement used to store the product (Stock-Keeping Unit)
    • [U/M_2] - [U/M_11] Alternative units of measure for each product with their conversion rate (10)
    • [U/M_12] - Unit of measure and equivalence defined for each customer and product to be used in ordering sales orders and invoicing.
    • [U/M_13] - Unit of measure used in shipping.
    • [U/M_14] - Unit of measure and equivalence defined for each vendor and product to be used in the purchase order.
    • [U/M_15] - unit of measure used for reception of the goods.
    • and so on...

    None of our customers use all this flexibility. However, it reassures the prospective buyer of the software's ability to meet their future needs.

  2. Open to specific modifications and integration with other software. As we have just seen, flexibility is a fundamental characteristic of high-end software. The designer tries to integrate in his software all the functionalities which could be required by the potential users. But unfortunately he cannot foresee everything. It has, however, prepared for this by using sophisticated and more expensive programming techniques which make it possible to integrate new functionalities into its software for a given client without thereby losing that client's copy of its universal character. Indeed, all future updates of this program must know how to recognize the modification and take charge of it automatically. This client therefore continues to have access to all the updates and all the new versions of the basic programs. Likewise, the designer of high-end software must foresee that certain customers will have to use, in addition to his own, other management software. In order to allow data integration with this software, it will have provided for a method of exchanging and validating data with external applications. These interface techniques must be independent of the environment, universal, simple and secure. All of these techniques are generally offered free of charge to all other software designers under the name SDK.