We’re Building Our Own ERP System: Ten Game-Changing Insights We Discovered along the Way
December 18, 2019 — Daniel Bigham, Business Systems R&D
When people think about Wolfram technology, corporate enterprise resource management (ERP) isn’t the first thing that comes to mind. It certainly wasn’t our first thought when we started searching for a new solution to manage our own accounting, customer service, licensing and HR needs. But after looking at the current ERP offerings, we found that none of the existing buy-in options did what we wanted.
So we thought, why not build our own?
The resulting project has been a revelation. Not only have we built something to our taste, but something fundamentally different: a new architecture, new interfaces, a new approach. Using Wolfram technology has not only made development easier; it has given us a revolutionary new perspective. By leveraging our uniquely powerful technology stack—and integrating it tightly with the existing infrastructure—we’re redefining what an ERP system can be.
Ways We’re Changing the ERP Paradigm
1. Symbolic Representation
A critical factor in creating an ERP system is the ability to accurately and efficiently specify the types of real-world entities the business runs on—customers, orders, products, locations, currencies. The Wolfram Language is an elegant language for representing information, allowing for nested structures that mix simple lists, key-value data, patterns and even code. This richness lets you factor an ERP system in the ideal way, where entity types elegantly centralize the things they pertain to in a readable and maintainable form.
2. Rich, Automated Functions
The many thousands of functions that have been carefully integrated into the Wolfram Language over the last three decades pay dividends when developing an ERP system. All functions are consistently named using plain language, making code readable for non-programmers. Visualizations and interfaces come preconfigured with appropriate options and controls. Powerful superfunctions like SemanticImport select optimized methods and perform multiple computations. Whether you need the local time of an employee, some geo graphics for a report or the ability to create an API with almost no code, the impressive automation of the Wolfram Language delivers.
3. Interactive Notebooks
Having a powerful notebook system integrated with (and built upon) the Wolfram Language is a big asset when developing an ERP system. During the requirement-gathering phase, notebooks can be used to collect and organize information about the business. These notebooks are then searchable using built-in functions like TextSearch and shareable through the Wolfram Cloud—or, as in our case, through a secure Wolfram Enterprise Private Cloud.
Because Wolfram Notebooks can be dynamically constructed and introspected, you can use them to create a wide variety of content. For example, when doing analysis on legacy database tables, you can generate a report that summarizes a table and allows deeper analysis on selected columns or database values. You can also build dashboards with simple controls to interactively explore “what-if” scenarios from historical sales data. Our automated reporting framework lets you generate new documents from high-level templates—either on demand or on a set schedule—for a streamlined workflow.
4. Natural Language Understanding (NLU)
Natural language is an ideal way not only to query an ERP system, but also to initiate workflows, e.g. by specifying code or data using the Wolfram Language’s free-form input capabilities. Functions like GrammarApply and Interpreter enable the creation of rich linguistic interfaces, allowing for generalized NLU capabilities that are integrated deeply into an ERP system.
In essence, the Wolfram Language bridges the gap between human and machine languages, making complex tasks like real-world entity recognition and data conversion easy and efficient. This leads to more effective handling and processing of data, for both developers and end users.
5. Pattern Matching
The data flowing into business processes needs to be carefully validated, and the Wolfram Language’s symbolic pattern matching features are ideal for that. A relatively compact pattern can often do work that would otherwise require several lines of code. As mentioned, patterns can be used within larger entity type specifications to efficiently codify entities. Our pattern language is readable and efficient, making complex data verification a trivial matter.
6. User Interfaces
With the Wolfram technology stack, we can choose the right interface for the right workflow. Many workflows are web based, but dynamic standalone notebooks, natural language user interfaces and even raw Wolfram Language itself are other important modalities that strengthen the system. High-level functions like Manipulate and FormPage provide automated interface construction, so non-technical users can customize how they interact with the code and data they need.
7. Dynamic Reports
The success of an ERP system depends in part on its ability to convey information. The Wolfram Language’s extensive and high-quality visualization functions are ideal for this task, even allowing dynamic interactivity using Manipulate. This is further strengthened by the amount of computable data directly accessible from the language, such as the populations of countries, cities, etc. Best of all, with Wolfram Notebooks, you can automate the creation and updating of any kind of report, ensuring the most up-to-date info.
8. Rapid Prototyping and Deployment
Development projects of any scope are aided by quick generation and sharing of ideas. The combination of interactive notebook coding and easy cloud deployment streamline the prototyping and development process—and make it fun! With readable, high-level functions, anyone can create a quick functional demo to disseminate their latest idea.
9. Machine Learning
Knowing that the Wolfram Language contains powerful machine learning functionality helps us future-proof our development efforts. With superfunctions like Classify and Predict, our ERP staff can perform serious analytics and refine processes without being experts in machine learning. Incorporating the latest cutting-edge algorithms into our policies and practices ensures a consistent competitive advantage.
10. Eating Our Own Dog Food
The world has seen many examples of organizations that have benefitted from dogfooding, i.e. being their own customers and using their own tools. Building this ERP system with the Wolfram Language has led to key insights about the language’s efficacy for business programming. By getting a firsthand understanding of the Wolfram user experience, we can continue to improve our products in the ways that really matter.
Summary: Wolfram Means Business
Tackling a big project in-house like this is always a risk. But in trying to address the pain points in our existing software, we discovered a new way of looking at ERP management. By breaking out of traditional paradigms, we’re creating a more effective, easy-to-use system than we could have envisioned.
The lesson? Wolfram technology not only gives you the power to build a complete production system, it also lets you reimagine what’s possible with computation—in business and beyond.