The back office for any company requires many different layers of software. Essentials like email and a basic website are relatively simple commodities to run. The hardest job is delivering the kind of software that acts as the spinal cord for the business, that cares for all of the most essential details, big and small, that keep the customers paying the invoices and ensure the bank accounts hold enough money to make the payroll.
These systems go by names like customer relationship management (CRM) and enterprise resource planning (ERP), but they're really just a carefully crafted collection of database tables with a set of routines that keep the employees from messing up the information. They are usually so essential to a business that the database administrators can puff up their chests and make credible statements like, "Our company is really just a big database with a sales force and a warehouse that do its bidding." They're not far from the truth.
Over the past decade, a number of open source solutions appeared that make it simpler for a company to digitize all of its operations by just downloading some code, firing up the compiler, and hooking up a database. These open source competitors began as low-cost competitors to the giant enterprise packages from the likes of Oracle, SAP and others.
The space is now much more mature than a few programmers trading code. Companies like Openbravo, SugarCRM, and Compiere are billing themselves as professional open source companies that deliver at least two grades of products: a community edition and a professional one with support and often additional features. They are also starting to offer SaaS editions, hosting the entire stack for you in what may or may not be a "cloud" of servers.
Openbravo ERP: Templating to tables and forms
Many businesses want to automate more than just their sales force and customer service. Openbravo includes some rudimentary CRM capabilities and a big collection of routines for tracking goods through the warehouse to delivery – a set of features that gives Openbravo claim to the acronym ERP. It's probably fair to say that it offers CRM too, although only the most basic kind.
The system mixes the job of herding the sales force with the order fulfillment processes. There are sections for managing the banking, procurement, production and warehousing operations as well.
Openbravo is also mainly a collection of database tables with a pretty front end. It is written in Java with many of the classic Java libraries like Hibernate and JasperReports. The front end is built out of a custom-templating engine that takes XML files and renders them in HTML. If you want to create custom forms and data structures, you'll work directly with the templating engine.
The web pages are pretty straightforward, but they're not particularly AJAX-like. There's a good reason for that: Openbravo aims to make it possible to navigate with the keyboard alone, a capability that's pretty popular at offices where people need to work through form after form. This feature isn't perfect. There was one glitchy moment when I found one form wouldn't work because I wasn't logged in with sufficient permissions.
The Openbravo app is not as polished as many web sites, but I don't think anyone will notice after spending 15 minutes getting oriented. The designers have done a good job producing something as efficient as the old "green screen" VT100-grade tools that dominated the back offices in the era of mainframes and mini computers.
The big version of Openbravo, the one that wears the ERP acronym, only works with Oracle and Postgres. They're said to be working on supporting DB2 and MySQL, but a number of custom hacks in the code apparently make it difficult to convert directly to MySQL. This professional version is also available as an "appliance" kit that offers one big, fat, licensed bundle with Tomcat, Oracle, and Apache. A lighter-weight version offers a point of sale (POS) application that can work with MySQL today.
There's a fair amount of flexibility for developing new modules – more of a necessity for an ERP installation. Every business is different and while the standard framework is pretty flexible, there's always room for more tables and modified control logic. The development documentation is pretty thick with a fair number of examples. Most of the time is devoted to picking up the structure of the system and the way that the XML files and Java code are turned into tables and forms.
Openbravo doesn't have the same kind of extensive plug-in system as SugarCRM, which limits the way that developers can bundle their features and toss them around. This doesn't mean that the system can't be extended – it can very easily – but there's no simple way to pull together a number of enhancements. On the other hand, I've found that plug-in architectures can be a real headache for developers because the plug-ins will eventually find a way to step on each other's toes.
Openbravo's open source community is not as robust as SugarCRM's. There are only 57 projects listed at the company's forge, with many of them aimed at localising the language. The wiki, which is much more extensive, is the preferred way to get documentation. They've also done a nice job producing a number of videos, an increasingly common way to tell developers how to get something done.
Openbravo's form system allows you to add new rows to the tables holding data about the clients. The forms can automatically enforce standard rules to prevent important data from being left out.
There are no differences in software features between the community edition and the two commercial editions, but you do get "unlimited bug support" and "installation support" with the paid versions. Openbravo will also sell a hosted version that comes with an Oracle license and a server. I'm guessing that many customers will also look at hiring some of the Openbravo developers to help customize the code. This kind of in-house knowledge is often worth the price.