Bending the back office: Open source CRM and ERP

Open source "alternatives" from SugarCRM, Openbravo, and Compiere have tapped the power of open source development to make customization easy, but the line between community and commercial is quickly crossed

The back office for any company requires many different layers of software. Essentials like e-mail and a basic Web site 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.

[ See the best that open source has to offer -- in collaboration, developer tools, enterprise applications, networking, platforms and middleware, productivity applications, security, and storage -- in InfoWorld's Bossies 2008. ]

Over the last 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 very low-cost competitors to the giant enterprise packages from the likes of Oracle, SAP, and others.

Loss leadersThe 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.

These choices offer a fascinating glimpse of how open source development is adapting to commercialization, at least when it involves projects that are mirrored in some way by proprietary tools. You can pay nothing and enjoy many of the features of the open source version or you can become a paying client and receive better features and more hand-holding.

This isn't an easy decision because the companies have become very adept at figuring out what the world needs and what it is willing to pay for. After all, if they can't figure this out, they'll go out of business and set the open source version adrift. And such a market failure wouldn't be as catastrophic as it can be with a proprietary company because the open source code is still out there and you're still welcome to maintain it with your own budget. The companies like to brag that they don't lock you in.

The so-called community versions also serve as advertising. The companies want you to adopt them easily because a happy user is much more likely to upgrade to a professional version later. But they've also arranged things so that it's easy to outgrow the basic systems. Some may see this as a cynical ploy, but I've come to view these trial mechanisms as one of the gentlest and kindest forms of marketing around. It may not be as much fun as getting the sales rep to take you on a boondoggle to Las Vegas, but it's much better than sitting through PowerPoint slides filled with buzzwords and promises. Negotiating the decision between an open source or the professional version is full of nuances and choices, but everything is out in the open.

[ Jitterbit offers an easy GUI for data migration projects, but Talend Open Studio is tops for enterprise data integration. See the Test Center review, "Open source data aces." ]

For this piece, we concentrated on SugarCRM, Openbravo, and Compiere, although many similar tools might do the job. For instance, many e-commerce front ends offer so many features that they might be considered ERP platforms themselves. Companies like Magento are offering e-commerce solutions that provide nice storefronts with many back-office tools.

The stores tools are also appearing in unexpected places. Projects like Drupal and Joomla are supposed to be CMSes, but programmers are building shopping carts and other tools that are turning them into storefronts that offer enough features to be ERPs for small businesses.

Other acronyms are also growing into the ERP space. Business intelligence (BI), the newest buzzword for the reporting tools, is sophisticated enough to handle many of the ERP and CRM chores. Jasper and Pentaho are much more than just tools for dumping SQL queries into nice-looking tables. It doesn't take long to build your own CRM or ERP solutions from tools like this.

Business process management (BPM or BPMS), the art of turning flowcharts for how the employees interact into software that keeps everything running smoothly, might also be a good fit for some CRM or ERP instances. Intalio pulls together a BPM solution from open source parts.

But SugarCRM, Openbravo, and Compiere tackle the essential CRM and ERP functions head-on. Taking a close look at these three offerings gave us a chance to see how easy it is to build up a functioning back end and to understand just what the term "open source" means to someone with a boss who just wants the warehouse to talk with the sales force. All of the philosophical debates aren't as important when the database connection is being overwhelmed just before the Christmas rush.

SugarCRM: More power through plug-insThe SugarCRM application began in 2004 as a simple way to manage a business's data about customers and quickly found venture capital backing after becoming one of the most popular projects on SourceForge. The current version, 5.2, now organizes the interaction between a sales force and the customers who want to purchase things. It stores leads, manages sales campaigns, organizes accounts, and produces reports and graphs to track all of this activity.

The architecture doesn't hide much of the table structure. There are tabs for the major entries like contacts, leads, and accounts, and each tab has similar buttons for creating new entries or searching the old ones. There are a few wizards in some of the areas that need more hand-holding. One for generating e-mail campaigns, for instance, checks a number of configuration options to make sure the messages go out correctly. I wouldn't be surprised if the tool is most heavily used to send marketing messages.

The software is written in PHP and tuned to MySQL, although it can be adapted to work with other databases, including Oracle. The community edition comes with all of the basic features for filling out the tables with names of people and the meetings between them. The dashboard keeps a constant tally of the new leads and what happens to them. The system has always had a sophisticated plug-in structure, and there's one site, the SugarExchange, devoted to cataloging these open source and professional plug-ins.

One random estimate cited in Wikipedia says that the community edition includes 85 percent of the features of the professional versions, a fact that's probably based upon the number of tables in the database, not on the coolness of the features. The professional and enterprise editions come with some of the fancier enhancements, like more sophisticated reports, a customer portal, and mobile access. Most of the sophisticated plug-ins come at a price.

It's easy to get the impression that the community edition is being eclipsed by the professional version, especially because most of the marketing copy on the front page of the SugarCRM site is aimed at getting people to try and then buy one of the professional versions. And if you're already running the community edition, SugarCRM is ready to make it simple for you to upgrade to the proprietary ones. But there are substantial resources devoted to the community edition, including a number of forums and SugarForge, the repository for the main project and many plug-ins.

I think SugarCRM is doing a good job of supporting both the open source community and the substantially larger set of businesses that just need something with a few more guarantees. The forums are actively monitored by paid, official helping hands, but most of the discussions are focused on the trials and tribulations of installing the community edition in different environments. There's an active community of non-employees that maintains the simpler versions for businesses, and many are digging into the code to move around buttons, change URLs, share a log-in with another package like Moodle, or even modify the database tables.

The vitality of this world seems to bleed over into the professional editions. SugarCRM seems to have more newer features, like integration with third-party databases and social networks, than either Openbravo or Compiere, if only because there are so many projects in various stages of completion. The experimentation from the open source community fertilizes all of this creativity.

The module builder for SugarCRM lets you create new data tables and then build the panels for editing and displaying the tables with drag-and-drop tools in your browser.

At the same time, the company is clearly looking to help whenever it can for a fee. It just introduced Sugar Express, a product that matches hosting with the community edition. It's $499 for a year's subscription for up to 5 users and $799 for a year's subscription for up to 10 users. The prices rise if you go for the features in the professional version. The first tier is $30 per seat per month, and the full "enterprise" tier is $50 per seat per month.

The extra reports and widgets aren't the only elements available for sale. SugarCRM will also bundle hosting into the services on either shared or dedicated machines, a set of features that seems to be rapidly evolving. Two of the products (Sugar Express and Sugar Professional) come with hosting, but you can always move the installations to your own servers.

[ JasperServer Professional and Pentaho Reporting build on famous Java open source libraries for generating reports, but they’re no longer for developers only. See the Test Center review, "Open source reporting goes corporate." ]

SugarCRM is rapidly exploring the tools for managing these deployments. Its latest tool, called Cloud Console, is beginning to help businesses knit together a variety of Sugar installations that span a big company. The versions don't need to be exactly the same, and the different divisions can have their own templates and features.

It's hard to summarize all of the extra features that are appearing thanks both to SugarCRM and the community of commercial partners. The FastStack makes it simple to install every part quickly. I enjoyed fiddling with the module builder, a feature that lets you drag and drop the fields for the tables. Developing custom features doesn't require much programming at all. All you do is choose the names for the fields, and the rest of the forms and the tables follow.

More sophisticated solutions require digging into the PHP, something that is well supported. SugarForge holds hundreds of interesting plug-ins written to add features and integrate Sugar with many other open source and proprietary packages.

This is usually pretty straightforward. You write PHP code that can add extra features to the menus or the different pages. The core of the iNetGoogleMap plug-in, for instance, is built from about 100 lines of code that repack the data from the internal Sugar format into a URL for a Google Map. This core comes with a dozen or more other files that help integrate it with the system and localize it for any other languages. The mechanism for adding a plug-in is well developed and offers broad access to the underlying system.

There are a fair number of plug-ins devoted to adding ERP functions to Sugar. It's not hard to do an adequate job with this if your business is simple and the product line is small. There are plug-ins for adding inventory management, credit card processing, and pretty much everything you need to spin up your own ERP.

Some of these plug-ins are open source, although this can be a marketing tool. PlanetAuthorize.Net's plug-ins, for instance, offer real-time credit card processing with GPLed code. They make their money on the credit card fees. Others offer proprietary services.

I think SugarForge does a remarkably good job of merging the best of open source with the best of proprietary development. The access to the source code means that you can modify any part of the code you run, even if most of the modification will be handled through the plug-in mechanism. At the same time, the extra features from the proprietary version are a good enough deal that many serious firms with solid margins are going to want to buy them -- a purchase that doesn't prevent them from modifying and extending the code.

Openbravo ERP: Templating to tables and formsMany 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, and many of them are aimed at localizing 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.

Compiere ERP and CRM: Form-ed for customizationThe Compiere package takes its name from the Italian verb for "accomplish" or "fulfill." It comes with both acronyms, ERP and CRM, indicating that it handles the two jobs pretty well. Like Openbravo, it is a set of database tables built to track customers, products, and the transactions between them. And like SugarCRM it offers a fairly sophisticated set of routines for juggling your customers and reaching out to them.

The Compiere system is built in Java and uses either Oracle or Postgres. Support for any JDBC database is said to be coming eventually. Ports to MySQL, Sybase, and Firebird are said to be in beta now.

The Compiere Web interface is similar to those of Openbravo and Sugar. There's a menu of options for tables, and you can drill down to add new lines to the tables or search for old ones. I floundered for a few minutes before I discovered that it was possible to drill down into subforms, something that's necessary when the database is forcing you to make sure that the client name you put down on an invoice matches a real client in the client table. There are a fair number of AJAX-like features for completing the forms and searching the table, although the tools for filling out the forms seemed easier to use for me. In general, it's a pretty modern interface.

I discovered the biggest gap between the community version and the professional version when testing Compiere's tools. The community version took a morning to install, and I found myself flummoxed by the client that would constantly keep resetting the Postgres port to 5444. The professional version, on the other hand, started up in about 15 minutes once I added the newer EnterpriseDB version of Postgres.

The basic community version of Compiere dates from the era when the browser wasn't as sophisticated and AJAX was just a kitchen cleanser. The community version interacts with the central database using a custom Java client. You need to buy the newer professional version to get the modern and more convenient Web-based interface.

More features start appearing once you start paying. Documentation is not free unless you sign up for the standard version ($25 per seat per month). Reporting tools are also tossed in. To get the Web-based interface you must spring for the professional edition ($50 per seat per month), a level of service that also includes unlimited support requests and other assorted bug fixes. There's also a "cloud edition" ($66 per seat per month) that wraps the professional edition into a pre-built image for Amazon's EC2.

There's not as much openness with Compiere as with SugarCRM and Openbravo. There's no open bazaar of plug-ins, nor is there much obvious energy devoted to modifying the code. Most of the threads on the forum hosted at SourceForge seem focused on installation problems. I'm not sure why. It isn't because the system is closed. In fact Compiere includes a pretty nice set of APIs and tools for calling external pieces of code.

The AJAX-enabled collection of forms for Compiere includes a number of pop-up divs that handle adding new data entries on the fly. This enforces the constraints on the tables by forcing users to fill in the entries for the sub table before adding the main rows.

Most of the customization energy is built into the tools now. Compiere calls its customization process "model driven," which means that you just start adding the columns to the tables in the data models and Compiere does most of the rest. Adding a field to a form means filling out several additional forms, an act that left me wondering whether forms begetting more forms meant that they were a life force all of their own.

One piece of Compiere documentation promised that the customization process required no "error-prone procedural programming," which I thought was a pretty accurate description. Adding new lines to the forms and building new rules for them is programming, it's just not at the grungy Java level. The developers took their ERP mechanism and applied it to managing the source code itself.

[ Need a Linux that can squeeze into a pen drive, resurrect old hardware, or create a security or storage appliance? See "Specialty Linuxes to the rescue" and "More specialty Linuxes to the rescue." ]

Turns in the open roadWhich should you choose? The most important criteria is one that can't be answered in a general review like this one. Each business has different needs, and it's hard to assess whether any of these even match the general workflow. The best tool with the most features can be a horrible fit for an organization if its internal architecture depends upon some structure to the workflow that doesn't work with your business. Sometimes it may be more expensive to shoehorn a large operation into a standard product like these than it would be to write custom software from scratch.

While it's doubly foolish to mix stereotypes of people with generalizations about software, I think that Openbravo is like guys in the warehouse: They want to fill orders and deliver the goods. SugarCRM is like the hail-fellow-well-met hand shakers who know that much of the sales process depends upon getting in front of people and keeping track of their needs. Compiere is a bit of a mixture of both, but is dominated by the spirit of moving material through the warehouse.

But just as humans can move between roles, software can too. These systems are all open collections of database tables and rules for editing them. If something is done with one of them, it can be rewritten for any of the others. There's no reason why Openbravo can't act more like the smiling, backslapping SugarCRM, and there's no reason why SugarCRM can't add the right plug-ins and start working in the warehouse.

In all three cases, customization is simple enough that it is becoming harder and harder to choose to build your own. It would be pretty silly to write your own back office in Java or C++ today, not only because so much functionality is already there for the taking, but because these systems are close to being languages themselves. The combination of the open source development and the rise of a plug-in architecture means that it's easier and easier to modify what exists. These apps were designed to accept the contributions of everyone, and this flexibility is baked into the entire development cycle.

Still, these three projects are a far cry from the image of a programmer-led commune where everything is shared equally. These are professional companies first and foremost, and they sell a product that they also happen to give away. Will the free, open source edition meet your needs? It may not be simple, but a skillful programmer should be able to install all of them and get them storing data in a reasonable amount of time.

Whether the community edition is the most cost-effective solution depends largely upon the nature of your business and the need for customization. If your customers and products map directly onto the simple table structure, then it's possible to do quite well with the community editions. After all, you can even build replacements for some of the commercial features that aren't included in the free edition. Simple reporting features, for instance, can be whipped together with JasperReports because it's always possible to tie into the database without going through the main application.

Doing all of the work yourself, though, may be much more trouble than it's worth. I've found that it often doesn't take much time to do the programming work itself, but it can take a long time understanding the architecture and deciding how to implement the changes. It takes time to build up the expertise. While $50 per seat per month adds up pretty quickly, it's much less expensive than hiring a full-time programmer for a big part of the year.

[ See the best that open source has to offer -- in collaborationdeveloper toolsenterprise applicationsnetworkingplatforms and middleware,productivity applicationssecurity, and storage -- in InfoWorld's Bossies 2008. ]

The professional versions do include more support and -- in the case of Compiere -- access to the documentation. This is often pretty valuable, but it still requires you to do the actual customization work. None of the professional versions include this work -- that's your responsibility -- but the companies all support a network of programmers who are versed in the idiosyncrasies of each version. Even companies with a deep collection of programmers will want to consider hiring some help when installing these packages.

It's also important to take note of the amount of openness built into the products themselves. Customizing Openbravo, for instance, involves creating XML and Java classes. The results need to be compiled. SugarCRM now includes a very sophisticated drag-and-drop tool for adding tables and modules to your implementation. You can add fields and control how they appear without writing any ASCII text. All of the programming is done "visually" with AJAX-level dragging and editing of divs on the screen. It's a very nice level of openness that will be accessible to many managers and users without direct programming experience.

I should say that while SugarCRM's drag-and-drop tool makes it much easier to change tables and data models, it doesn't remove the need to think ahead about how the data will be used by everyone. It may be dangerous to let everyone add fields as they see fit because it can lead to a loss of coherence.

Clouds and cloud connections A deeper decision is whether to use the company's hosting or install the software on your own machines. The word "cloud" is used differently by these three companies. SugarCRM, for instance, offers "cloud connectors" that integrate your version of SugarCRM with vendors that sell data about companies like Hoover's and Jigsaw. If you sign up a customer in the Hoover's or Jigsaw database, the cloud connector will pull in the general data, saving you the time. This is a pretty neat idea, but it doesn't have anything to do with hosting per se.

SugarCRM also offers hosting for its major versions. Small installations might choose Sugar Express, a hosted version of the community edition that's limited to 10 users, or the so-called Professional edition. SugarCRM also works with a large collection of partners that offer both customization work and hosting.

Compiere uses the word "cloud" to describe a version of its Professional edition that's been tuned for Amazon's EC2 cloud. It offers a disk image that can be started quickly without much installation work. You'll still have to do all of the customization, but the version includes some extra help. The bills from Amazon, though, are yours to pay. Openbravo doesn't offer this directly, but some partners have built their own Amazon Machine Images.

These aren't the only options either. The software is open source, after all, and the companies have found partnerships with groups of consultants. There are dozens if not hundreds of groups that will install these tools and customize them for you. Some bundle this with hosting and some specialize in coming into your office. Some of the consultants contribute actively to the project. Working with these insiders can be a good path to getting the features you need, and the extra code they write for your installation could find its way into the next generation.

The SugarCRM, Openbravo, and Compiere open source toolkits -- and many others like them -- are evolving quickly and efficiently to supply what the market really needs. The community editions are all quite useful and usually relatively easy to handle, but the companies are ready to customize and support the work. It's a convenient model delivering a robust community of suppliers that compete to create a very fertile ecology for the users, whether they're writing checks to the vendors or not.

This story, "Bending the back office: Open source CRM and ERP" was originally published by InfoWorld.

From CSO: 7 security mistakes people make with their mobile device
Join the discussion
Be the first to comment on this article. Our Commenting Policies