Isak Sky is a Senior Programmer at Xledger.
How you approach development determines the software you create. I often get asked about Xledger’s R&D philosophy. How do we think differently from competitors?
I answer by pointing to five principles that have enabled our R&D team to keep Xledger at the bleeding edge of ERP technology for almost 20 years.
1. Data Oriented
While most other R&D teams focus on code, we focus on data. Wherever possible, we create functionality that is defined with data. This allows us to make significant changes without redeploying our software, which would take a lot of time and be vastly more expensive. It’s the secret behind our new flex screens, which give you the ability to retrieve, analyze, and export data from one screen in the system.
2. Embrace SQL
Many of our competitors regard direct SQL programming as beneath them. At Xledger, we embrace it. Many people can see shortcomings in SQL, but they remain blind to the often larger shortcomings in the tools they create as workarounds.
One benefit of working more directly with SQL is that it makes it painfully obvious when one does something wrong, like going back and forth from the server to the database in a loop.
3. Thinking in batches
For example, while our competitors run 10,000 different payment processes sequentially, at Xledger we run all 10,000 transactions as one. In order to achieve that, you need to have a superior data model and data plan.
This is where Xledger’s comparative advantage comes into play. Xledger is designed on what you could call multi-tenant extreme. Multi-tenant architecture is widely recognized as the gold standard for cloud based software applications. But not all multi-tenant architectures are created equal. While many of our competitors run 100 or 250 instances on each logical instance of the application, requiring a large number of databases, Xledger has perfected the multi-tenant principle, running all of its 10,000 customers on the same database.
4. Functional programming
At Xledger R&D, we try to emphasize functional programming and discourage the object-oriented style that has infected the software industry. Many find it tempting to organize their programs in classes and hierarchies, binding operations with data. Yet this approach results in systems that are very expensive to change.
The alternative might seem difficult at first. But by letting data be data rather than introducing complex operations, you can create simple and elegant solutions to non-trivial problems.
5. Continuous improvement
Xledger is committed to a philosophy of continuous improvement. We are constantly searching for better ways to do the same things.
Competitors usually restrict developers to fixing what’s broken. If it’s working correctly, they let it lie. And while that’s an understandable approach, it means that most of their systems fall short of what they could be.
We refine the entire system, not just what’s not working. For example, Xledger has repeatedly overhauled our database to make it more efficient. Competitors don’t do that unless there’s a glaring problem. But those database changes have made Xledger thousands of times faster than it used to be.