Architects design such top-notch ERP
Posted: 2020-01-01 Edited: 2020-01-13
Top-notch enterprises also choose such top-notch ERP
The Term "ERP"
Previously, everyone in academia and information industry talked about "EDP". In the early days, colleges opened Electronic Data Processing Section.
Later, because the name "EDP" sounded too low-end, universities upgraded it to "Department of Information Management" in order to reflect the high altitude and advanced technology imparted by universities.
A few years later, some people may think that the word "EDP" lacked the spirit of management, and then "ERP" was invented to reflect the combination of electronic data processing technology and management.
At the beginning of 2019 or earlier, a new term covering wider scope than "ERP" emerged - "digital transformation".
New names come in endlessly, mostly with new packaging, concepts and nomenclature of old bottles. the old phrase "business information application software system" is the most straightforward and descriptive. But it's too long, few people understand it nowadays, and it's a bit low-end. In order to facilitate communication, this article uses hereinafter the term "ERP" as it has been widely heard of by this generation and is short.
In fact, the name "ERP" is still controversial:
- Conservative John believes: The subject "ERP" should be limited to "software".
- Mary insists: There exists an "ERP" that is not just a piece of software. The software vendor even injects advanced and subtle world-class management concepts in its grandeur software and fuses both high-end management and digital technology. To say that it is mere "software" is to devalue the management science embed in that software, and to say that its software is just a set of expensive DVDs is no less than slandering the software vendor's reputation.
- Steve asserts that: software is only a tool which is of little value without management technology offered by a qualified consultant. A pure tool is like a zombie with only an spiritless body. The most important element is people, that is the consultant. In other words, the role of "ERP" can only be effectively manifested if a user company hires a guru with rich management knowledge as its consultant. Otherwise, software has little chance of being brought live, let alone expect to bring its management benefits to the enterprise!
Because this article focuses on technology, it uses the well known short term "ERP" herein and refers to business information application software systems.
The importance of ERP quality
The quality of ERP software determines the fates of all ERP implementation projects because of the following reasons.
- The core quality of ERP software cannot be dramatically improved during the course of ERP implementation project.
- ERP implementation project can recruit more consultants at any time, and can also replace members of the advisory team with experts with higher education and more experience.
- The risk analysis, management strategy, quality assurance measures, planning skill, communication skill and frequency, and user training applied to the ERP implementation process can be increased, adjusted, improved, and even repeatedly carried out at any time.
A large number of cases proved that once the fundamental quality of ERP software is too poor, adjusting both of the above second and third measures can not alter the overall ERP implementation outcome - either success or failure. An ERP implementation project that uses poor quality ERP software yields only the following three results.
- The project ends up in failure and the software is ultimately abandoned.
- The user enterprise struggles to use 1 or 2 modules such as accounting and sales, but still announces the project being "successful".
- The enterprise continues to invest more personnel and hardware in the project trying to complete the forever in-progress implementation.
ERP quality will ultimately be presented on the income statement and balance sheet of its corporate customers. The quality of ERP has a profound impact on the morale of all personnel in nearly all departments of its enterprise customer. It profoundly affects the enterprise's operating costs, growth drivers, and corporate image.
Therefore, the ERP architect must consider the interests of all the following stakeholders to design the "top-notch ERP":
- corporate customers
- ERP implementation consultants
- the ERP supplier yourself
Essential ERP core functionalities
Even a vanilla ERP must provides all the following basic functionalities.
- Provides mechanisms for IT staff to design CRUD screens for end users to enter, read, modify, and delete data.
- Provides mechanisms for IT staff to design business logic processors for end-user execution. For example: generate accounting journal for each monetary transaction, close accounts, calculate salaries, calculate MRP, calculate premiums or claim amounts.
- Provides mechanisms for IT staff to design reports for users to print reports.
- Provides mechanisms for exchanging data with the outside world.
Top-notch ERP traits
A top-notch ERP must be concise and has the following qualities:
- A platform
- Simple, lightweight, low threshold of development skill
- Database driven
- Use PostgreSQL
- Three-tier computing architecture
- High-speed back-end software
- Lightweight client software
- Easy to use by end users
- Elegant accounting module
- File attachment mechanism
- Simple and efficient API
- Safety protection mechanism
- SaaS and PaaS capable
Designing a versatile ERP is the mission of the architect, and there is no choice
A versatile ERP has all the following characteristics:
- It is suitable for enterprises in all industries, including government, schools, non-profit enterprises, etc. That is, it has the ability of "multi-industry".
- It is suitable for enterprises of all sizes, from one-person companies to multinational groups.
1. Remove the traditional restrictions that ERP can only be applied to specific industries.
- The ERP may be used by factories with a simple business process, but not applicable to car leasing companies, life insurance companies, chain retailers, gas companies, hospitals, banks, post offices, power companies, wafer factories, oil companies, tire factories, waterworks, freight forwarders, schools ... and other non-manufacturing companies and government departments.
- The ERP may be used by non-demanding manufacturing factories, but it will be miserable to buy it for pharmaceutical factories, shoe factories and clothing factories that strictly require "lot number" control.
- The ERP's architecture is not suitable for developing human resource systems.
- The "footwear factory-specific ERP" cannot be used in machine tool factories.
- The ERP that is suitable for corporate use but not for government departments; or vice versa.
Once an ERP that is only suitable for use in a specific industry is stuffed to corporate users in different industries, its scope of use may be reduced by the user company to the accounting module, or even becomes a data storage.
Only versatile ERP is eligible to be sold to enterprises from various industries and government departments.
2. Remove the traditional restrictions that ERP can only be applied to companies of a certain size.
- The ERP is suitable for large enterprises.
- Because it is too complicated, small businesses and one-man companies can't use it.
- The ERP is suitable for small businesses and one-man companies.
- Because it is too vanilla and rigid, if it is used for large enterprises, it is difficult and even not allowed to be customized to meet many more other requirements.
2. A platform
To materialize an versatile ERP, several strategies have been adopted.
1. Shotgun Strategy
This strategy is also known as the panacea or snake oil strategy. Its ultimate practice is to make every effort possible, basing on past experience or guessing all possible software functions that different companies may need, to pre-make programs or modules and wait for corporate customers to select or bundle all of them for sale.
The ERP products pre-made according to this strategy are bulky, complicated and difficult to use:
- There are too many screens, programs ("transaction"), switches, and parameters.
- There are too many hidden mechanisms, linkage mechanisms, and mutual restraint or exclusion.
- Manuals and online instructions do not comprehensively and clearly cover software's mechanisms, manuals are incorrect or outdated, and inconsistent with the software.
Such software has the following defects:
- There always are "special" or "corner" requirements demanded by enterprises the software fails to meet.
- Because it is complicated, there may not be the kind of consultants who completely understand all or even a single module of that ERP, leading the enterprises to be in state of "urgently recruiting freelance consultants" all year round.
- Because the ERP architecture has aforementioned major inherent flaws, software vendors themselves and consultants cannot develop and complete business application software in accordance with the planned schedule for timely delivery to enterprise users.
- Because it is difficult to use, the process of training users is difficult, users repel, and there is strong resistance to the project, which makes it difficult to bring the software live or even the project fell squarely.
- Because the software is bloated and its architecture is rigid, it is not easy for IT staff to expand or modify ERP functionalities. As a result, the number of IT staff remains high, creating a heavy burden of personnel costs for the enterprise.
- Back-end software can't run fast, forcing enterprise users to buy expensive hardware and set up a large number of IT staff to manage infrastructure.
2. Program generator strategy
The concept of "program generator" appeared in M$ DOS era. Recently some people even advocated using AI to generate software.
Questions remain to be answered: What commercial program generators are available? The software they generate,
- Can it be used to process business information across industries?
- Can it replace existing ERP software?
- Does it run faster than the handmade traditional software?
- Can human intervention be used to debug, strengthen, and expand the generated software?
Suppose now that a personnel salary module is needed as follows. Is there a program generator or AI robot that can automatically design it?
- Three shifts: 07:00 ~ 15:00, 15:00 ~ 23:00, 23:00 ~ 07:00
- The night shift has snacks.
- $500 deduction for less than 30 minutes late.
- Those who have made two great contributions will be awarded a three-day salary as a bonus.
- Those who are 1 to 4 hours late must take half-day leave.
- Absent employees will be deducted 2 days' salary.
- Provide full attendance bonus.
- One day wage deduction will be applied to each warning received. Three day wage deduction will be applied to each major demerit received.
- Except managers and above, all staff members swipe their cards to and from work.
- Factory has rank-payroll table.
- Accommodation is provided to foreign workers.
- Provide discounted meals to on-site personnel.
- Labor insurance, health care, taxation deduction mechanisms are applied to salary calculation.
Because there are many unanswered questions, I will not dive any further into this subject for now.
3. The building block strategy
The term "CORBA" appeared long ago. I don't know when the words "SOA" and "micro service" emerged to compete with it.
Because I haven't heard of any ERP made with this strategy, I can't comment on this strategy.
4. The platform strategy
This strategy aims at designing an ERP platform that achieves the aforementioned "Essential ERP core functionalities". A platform can also be called a "framework."
This article refers specifically to this ERP platform from now on.
Agile ERP platform
The premise of ERP being versatile is high flexibility. Those prefabricated software packages, no matter how many modules, switches, industry templates, "best practice" configuration schemes, or millions of pre-made programs, all belong to the aforementioned shotgun class. They are not in agile category and do not meet "corner" requirements of corporate in "special" industries and government departments.
One idea must be clarified here. "Special" is actually a misnomer. Just because ERP is not applicable to non-manufacturing industries, abundantly more other industries should not be regarded as "special".
How to construct an ERP to meet the principle of high flexibility?
"You want high flexibility? Programming languages have the highest flexibility! Simply sell COBOL sister proprietary language, 4GL, Java, Python, C, and even assembly language to customers, and ask their IT staff to develop their business application software!"
That's not my intention. Although the use of vanilla programming languages to develop applications for various industries does have the highest flexibility, it has a major disadvantage - the lowest productivity. This strategy is therefore not desirable.
In order to achieve both high flexibility and high productivity, an ERP platform or framework must be constructed.
4. Simple, lightweight, low threshold of development skill
Simple and lightweight equals high quality
Any elementary school student knows that fools always complicate simple issues.
A top-notch ERP architect strives for simplicity rather than complexity, and lightness instead of bulk.
Only simple ERP can be agile.
- It saves hardware investment for corporate customers:
- It can run at high speed on mediocre hardware and respond to users instantly. Conversely, a complex piece of software is like a dinosaur: it crawls slowly on high-end hardware.
- It reduces the human resource consumption and time for enterprise customers to develop application systems:
- IT personnel, system integrators, and consultants are highly productive because the ERP is easy to maintain, modify, scale, and deploy in multiple environments. On the contrary, a complex software does not listen to IT personnel's instructions, refuses to be tamed, and can not be easily adjusted, which destroys all participants' morale and delays the implementation.
- The entire ERP has only a few components. It's not the kind of complex software that is full of intricate details, millions of lines of source code, hundreds of MB of installation files, the software that no IT personnel and even software vendor itself fully understand.
- The size of the entire ERP source code is tiny. For example, the uncompressed ERP source code for manufacturing industry is less than 300 KB, which provides costing, MRP and other calculations, that any IT staff can easily maintain.
- low threshold of development skill
- Because the top-notch ERP platform has the traits of Low-code development platform, not only IT personnel can easily expand and customize applications on this platform, but enterprise end users can also become Citizen Developer. End users come from these departments such as accounting, actuarial, and marketing, etc.
5. Database driven
ERP software digitalizes enterprise processes.
According to author's experience, most enterprise processes can be realized with CRUD screens.
Taking sales process as an example, it may include:
- Sales order
- Return of sales
If 3 CRUD screens can be designed to provide users with all CRUD operations of the above business process, then these CRUD screens fully realize all sales process.
At this time, if IT personnel can complete these 3 CRUD screens through a simple definition method on the ERP platform without writing a single line of code, this ERP platform is called "database-driven".
"Database-driven" is not a new name for pursuing fashion or hype, but for building an ERP platform with the highest productivity, allowing technicians to develop and complete various enterprise information application systems at lightning speed and timely complete all ERP projects.
6. Use PostgreSQL
PostERP uses PostgreSQL
ERP must be constructed to run in conjunction with one DBMS.
The reasons for choosing PostgreSQL to drive top-notch ERP platform follow:
- PostgreSQL is the world's most advanced open source DBMS, and its performance meets the requirements of the top-notch ERP platform.
- Opting for PostgreSQL, enterprise customers are exempted from purchasing DBMS license and maintenance fees.
- PostgreSQL provides excellent quality manuals.
- PostgreSQL's high-quality support can be easily accessed.
7. Three-tier computing architecture
Overall, there are 3 categories of ERP computing architectures.
Two-tier computing architecture:
DBMS ← – → Application Executable File
This computing architecture has the following disadvantages:
- When a DBMS is connected to a large number of client software, its performance rapidly decreases and it takes up a lot of memory.
- If ERP is run on the public network, the DBMS is exposed on the public network and vulnerable to malicious attacks.
- The data transfer volume between the DBMS and the application is high, and remote ERP users feel that the system responds slowly.
- The data transmission between the DBMS and the application is not encryptedand not protected from eavesdropping or man-in-the-middle attack.
Three-tier computing architecture:
DBMS ← – → Server Software ← – → Customer Software
Four or more tiers of computing architecture: DBMS ← – → Backend service software ← – → Front end service software ← – → Customer software
This computing architecture does not allow front-end software to connect to the DBMS. Back-end service software provides a large number of complex APIs for front-end service software to call. This architecture has the following disadvantages because of its stacked layers of components:
- The learning curve is steep and the difficulty of developing business application systems is high.
- The entire system is complex, difficult to maintain, and prone to errors.
- The overall system runs slowly.
- The system requires high hardware investment.
The top-notch ERP platform is constructed as a three-tier computing architecture.
8. High-speed back-end software
Only ERP with simple architecture can run at high speed.
As the number of customers increases and the complexity of business logic increases, the long response time of ERP server software is easily criticized. The slow-running ERP server software wastes valuable time of its users and reduces their efficiency.
A normal person with a little sense and self-esteem won't blindly adore things they don't understand. However, the information industry is brain washed to believe that "the larger the software, the more complex and difficult to understand, the more powerful it is." Masters selling biggest ERP software trick enterprise decision makers to believe the insanity that "the ERP with best quality is the one you can never fully understand in your whole lifetime."
Common sense 101: The more complex and large the ERP server software is, the lower its running speed, the more hidden errors, and the more hardware resources are consumed. It is absolutely a poorly designed and outdated inferior ERP architecture.
Because ERP server software runs slowly, the ERP vendor instead asks its customers to purchase high-end hosts for their server software to run on. This arrangement is wrong here: The bottleneck of the running speed of the overall ERP system lies in software rather than hardware. Therefore, although ERP enterprise users invest large sums of money in hardware, the overall running speed of the system is not significantly improved.
The sober minded people in information industry are hesitant to disclose the fact that some software vendors use their software defects to coax their product prices and swindle their corporate customers' cash.
Why are some ERP runs like a turtle crawls? Because they process business logic in server software. These software have these incurable inherent defects:
- The server software runs slowly.
- A lot of network bandwidth is occupied between the server software and the DBMS.
Such ERP works in this way:
After receiving a request to execute MRP from a client program, the server software first reads data from the DBMS. The server software then scans the incoming data. As each data is scanned, the server software reads more data records from the DBMS. This has been repeated recursively, reading data from the DBMS in cascade. Such data processing strategy is certainly inefficient:
- The server software reads as much data as possible from the DBMS , the more the better. So it eats a lot of RAM and CPU.
- If the server software and the DBMS are not on the same hardware host, then enterprise users must invest in high-end network equipment for large amount of data transfer between the server software and the DBMS.
- Processing data in server software is far less efficient than letting the DBMS process it internally. The reason is simple - all modern DBMSs, especially PostgreSQL, optimize their data processing. A DBMS simply knows how, when, and whether to read data in order to consume the lowest CPU, RAM, and hard disk costs. But server software has little ability to control these resources.
It is all ridiculous to complicate simple issue and then to invent layered magical components as solution. The ultimate benefit introduced by such strategy is always negative.
Lightweight and simple design equals high quality. The most efficient strategy for designing high-speed ERP server software follows.
- Let DBMS process business logic.
- Server software acts as an intermediary between client software and DBMS.
This architecture runs at unmatched lightning speed:
- MRP runs, closing accounts, calculating payrolls, etc. are all performed by DBMS stored procedures also known as PostgreSQL functions.
- After receiving the request from the client program, the ERP server software authenticates and checks the privileges of the requesting party.
- The ERP server software caches the results needed for clients' retrieval. If it finds it, it directly responds without second thought the result to the client software.
- If the ERP server software does not find the answer in the cache, it forwards the request to the DBMS. After receiving the data set from the DBMS, the ERP server software immediately responds the data set to the client program.
High-quality ERP server software plays such a simple role, no more and no less:
- The ERP server software performs almost no computational work.
- Business logic changes do not cause ERP server software to be revised.
- Server software is simple, easy to maintain, and almost bug-free.
- Server software runs at lightning speed on a host with 1 GB of RAM and instantly responds to requests from mass clients.
The featherweight ERP back-end system is a strong man.
9. Lightweight client software
Thin client is the essential component of top-notch ERP platform
Those days that the fat client-side ERP software burnt in 4 CDs are over. The top-notch ERP platform's client software is designed as follows.
- Top-notch ERP client software should be highly compatible. Browser-based ERP client software is unlikely to fade out any time soon and is therefore present first choice.
- When designing desktop ERP client software, two principles should be followed:
- Make it light, thin, and compact. Say compressing its volume to within 10 MB.
- Make it single execution file. Users directly double-click it to execute. Users do not need to install, information personnel do not need to distribute and deploy client software.
10. Easy to use by end users
Easy-to-use client software reduces training, shortens the system launch period, improves user productivity, and reduces user resistance.
- Reduce the number of CRUD screens and menus.
- Easy to use for the user. Users can complete their daily work by operating ERP in a few screens. Avoid forcing users to open multiple CRUD screens, switch back and forth, compare, search for data between screens, and perform CRUD.
- The number of manual pages is minimal.
- The user becomes used to the software within a few minutes and starts to run the software.
- Provides comprehensive online help.
- Screen description, field description, report usage description, report parameter description, business logic processor description, and business logic processor parameter description are all provided in various languages. Users do not have to search through outdated manuals that are in disrepair.
- The layout of each screen is exactly the same.
- It takes time to adapt to ERP client screens. You should avoid designing such systems: different CRUD screens have different arrangement of fields, buttons, pop-ups, and other elements.
- Easy to search information.
- For example: the user can search the records for each field on the CRUD screen.
- Records displayed on the screen are allowed to be downloaded by users.
- Client provides menus to users.
- Avoid forcing users to recite program code as known as "transaction".
Top-notch ERP platform is competitive in global market
Multilingualism, multiple time zones, multiple calendar systems:
- One program supports all languages.
- The client software allows users to switch languages online on-the-fly without having to log out before they log back in.
- After the IT staff designs a report, the user prints the report in a variety of languages.
- Support Arabic, Persian, Hebrew, etc., writing from right to left.
- Multi-time zone: Take "Shipping Date" as an example, it displays as 2019–12–25 11:09:03.356505+00 to ERP users in London and as 2019–12–25 19:09:03.356505+08 to those in Taipei.
- Multiple calendar systems: Support both Gregorian calendar and Solar Hijri calendar.
- Empowers IT personnel with unbeatable productivity in reports design:
- Allows IT staff to design a variety of reports to meet the diverse and complex user requirements. Each report design can be finished within minutes, not days.
- Reporting is integrated in ERP:
- Both IT personnel design reports and end user producing reports do not resort to third-party tools. The Top-notch ERP requires zero "report deployment" - after an IT personnel designs a report, end users at the other end of the globe immediately select that report from menu and print it. IT staff does not have to distribute reports to users. The reporting functionalities in top-notch ERP is self-sufficient, meaning that the top-notch ERP does not require standalone third-party reporting tools.
13. Elegant accounting module
- First of all, a competent ERP architect must not create such a poor accounting module that requires enterprises to spend 45 days to close their monthly accounts.
- The accounting module must be seamlessly integrated with each business module to generate journal in a timely manner, so that the entries are kept up-to-date and the latest financial information is readily available without having to wait until the end of the month, and provide business performance information at any time.
Top-notch ERP seamlessly integrates accounting module.
- Accountants need only be responsible for a small amount of daily and monthly work. Accountants are exempted from monthly settlement postings, posting failures, and reverse postings. ERP guarantees that there will be no negative amount, uneven borrowing, negative amount, etc.
- Absolutely prevent data inconsistencies between modules. For example: item A,
- displays on the sales screen or report: 10 units sold with unit cost $2.
- displays on the inventory or cost screen: 11 units sold with unit cost $3.
14. File attachment mechanism
To approach the goal of paperlessness, ERP should provide a mechanism for users to upload files, attach them under data records, and allow future downloads. E.g:
- The R & D personnel upload the processing instruction drawing file, which is attached under the item item A for downloading and reference at the processing site.
- Letters sent from or received by the patent office are uploaded and attached to the project application progress date 2020–1–1 for future reference.
15. Simple and efficient API
Top-notch ERP platform provides decent API
The ERP platform should provide APIs of high-quality capable of exchanging data with the outside world simply, efficiently, and securely.
The ERP server software should allow the customer's IT staff to provide RESTful APIs for external facilities such as IoT and MES in a set manner to perform CRUD operations directly on the specified database table.
Basing on productivity considerations, technicians want to avoid dealing with those APIs requiring steep learning curves.
I recommend JSON, not XML or SOAP. Stay away from proprietary interfaces like ActiveX.
16. Safety protection mechanism
PostERP is highly secure
When designing an ERP platform, you should envision security protection mechanisms, such as:
- Data transmission is encrypted.
- Prevent SQL injection attacks.
- Prevent Resource exhaustion attack attacks, such as:
- The user enters the BOM items in cycle (for example: the child item is equal to the parent item).
- The user retrieves large amount of data from back-end.
17. SaaS and PaaS capable
PostERP platform is the foundation of SaaS and PaaS
The top-notch ERP platform is the only solution in the SaaS and PaaS era.
Benefits and risks
Simplicity is the most important foundation for building top-notch ERP platform. Because of its simplicity, it has the aforementioned "top-notch ERP traits".
After the architect completes the top ERP platform,
- IT technicians help large, medium, small, and micro enterprises from various industries to customize ERP application systems that meet 100% business requirements on this platform.
- Using this platform to implement large ERP projects in large enterprises, the probability of failure approaches zero.
This top-level ERP platform is not another vague concept hype, but a fait accompli; it is a retro concept as well as technological innovation; it returns to the past simplicity and forms the future mainstream of IT industry.