Wednesday, 27 February 2008

Open Source CRM? Not if it's Sugar

We like Microsoft products over at Futurate towers, however we aren’t an exclusively Microsoft agency and Open Source forms the backbone of many of our successful web projects. For example, our forthcoming management information system for JISC is built exclusively using Open Source products (jQuery and CakePHP) while OpenCMS is the backbone of many of our web projects.

Overall, our general policy is to adopt the right tool for the job (proprietary or not) an approach which means that we can pick and choose ‘best of breed’ which is why Sugar CRM got us excited as a possible Open Source alternative to Microsoft Dynamics (we also like to support the plucky underdog where we can). However, after almost two years of trying (albeit patchily) and evaluating two major releases of the community (i.e. open source) version of Sugar we just can’t commit to the product and the outcome is that we will stick with Microsoft.

Before outlining why, here’s Sugar CRM in a nutshell
  • SugarCRM is web-based application that is available in several different deployment models. Our interest was the open source community edition and our initial attention was on SugarCRM v4.5 (current version is 5).
  • SugarCRM is very much a commercially-driven operation with sales teams, tech support infrastructure and the other trappings of a major global software company.
  • It's a PHP based application and installation was fairly straightforward (for someone with the right skills).
  • SugarCRM is feature rich and utilises Javascript extensively to enhance the user experience. It probably isn't very accessible (as in compliant with WCAG) but we haven't investigated this.
  • SugarCRM provides tools for managing contacts, accounts, leads and opportunities. It also provides tools for project management and support desk functionality for bug tracking and the like (which was of no interest since we are Ontime users).
  • The open source edition (GNU General Public License version 3) is free to download.
  • Sugar offer plugins for Word and Outlook which hook local applications into the Sugar database in order to make mail merge and contact management easier. These plugins are fairly inexpensive ($119 per user per annum) and purchase also gives access to the Sugar Network which offers benefits like a support case per annum.
  • Of particular interest to us was the campaign management module which is intended to support the marketing process, for instance email marketing.

So, on the surface Sugar CRM seemed to ‘tick all the right boxes’ but our experience of Sugar 4.5 Open Source wasn’t good for two key reasons:

  • The email campaign tracking component didn’t work. This took us quite a long time to determine and was only discovered after a considerable amount of effort had been spent on a limited deployment of the product and research indicated that Sugar had no intention of fixing this issue until the release of version 5.0.
  • The plugin for Outlook 2003 was very unreliable. It had a habit of disappearing from the user interface and synchronization was extremely unpredictable. I personally spent many hours of my time working with Roger Smith at Sugar CRM to get to the bottom of this, and in the end I simply gave up on it.

Both of these features were essential requirements and their lack led to the end of the project, and a strong sense of disappointment.

Nevertheless, on the brink of the release of the latest version of Microsoft’s CRM (version 4) the Sugar question reared its head again and with the release of version 5 in autumn 2007 we elected to try it for size again (partly motivated by an interest in whether it might specifically suit our Open Source biased clients).

We took a much more cautious approach this time, working from the position that Sugar was buggy, rather than the approach we’d normally take which is to assume that software isn’t (but to accept that that position if way too optimistic). We began by signing up for the online demo, everything was OK, except we just couldn’t get outbound email configured and the help documentation didn’t seem relevant.

The pre-sales team were already in touch. I asked for support. I waited. Sugar pre-sales got in touch again. They needed the input of pre-sales technical, but no one was available.
I got frustrated and committed us to installing it on one of our servers. We got email working and investigation began.

Overall impressions were favourable. SugarCRM 5.0 is undoubtedly much improved. Version 4.0 was feature rich and version 5.0 significantly enhances functionality. As far as we could tell, there were bugs but they weren’t show-stoppers, just annoyances and the plugin for Outlook (2007 this time around) seemed reliable. Sugar wasn't as quick to use as MS CRM 3.0 on the desktop, but the learning curve wasn’t as steep and deployment was more rapid.

So far, so good.....

I’d been running the trial version of the Microsoft Office 2007 plugin but given that we were considering wider deployment. We opted to purchase the licensed version, which forms part of the Sugar Network subscription. This is where things began to unravel:

  • The plugin wouldn’t install, and the problem was the same as this user
  • I had the right to a single support request as part of my network subscription. However it was necessary for me to register in order to submit a ticket. I registered and was automatically notified that my subscription would be confirmed in 24 hours
  • I waited three days and started to dig around in the forums
  • It seemed that someone else had been having the same problems and I requested some help
  • A kind soul responded and with some tinkering we got the plugin installed
  • Sugar got in touch to tell me that it was still the case that no one was available to help.

Our parade was being rained on. We tried to imagine ourselves confidentally installing the plugin at client premises and just couldn’t.

I started to look at the behavior of the Outlook plugin a little more closely and noted a lot of duplicate contacts in Sugar, plus it seemed that some contact records which were previously complete were now missing crucial information. I also found that some records in Sugar were not the same as Outlook even though they had been synced multiple times (typing random letters into an unused field, seemed to wake the plugin up to the record’s existence).

Clearly something wasn’t quite right. I then imagined the issues I was beginning to identify being duplicated across our office workstations or at our client’s premises and my confidence died.


There was simply no way that I could recommend the deployment of Sugar, and two year’s on from initially trialling the Outlook plugin, and giving up on it, the same thing was happening again and we weren’t the only organization who was having a bad experience.

The direct costs to us weren’t much - $119 – plus a little bandwidth but the indirect labour costs were much higher.

If Sugar had been an amateur project our expectations would have been lower, however it isn’t and Sugar expect each Outlook user to pay $119 per year for the plugin (that’s $10 per month which is the cost price of MS CRM as a hosted service), whose continued unreliability could actually damage customer communication.

It can't be easy to build a global software company based completely on Open Source tools, and we applaud attempts to encourate competition in the software market, but a Customer Relationship Management System that can’t reliably manage customer records is dangerous.

Suffice to say that the SugarCRM project at Futurate is dead. We’ll be sticking with Microsoft CRM for a good while yet.

Monday, 25 February 2008

Their Reading Futures Flies Off The Shelf

The Reading Agency in partnership with Futurate have launched the latest version of the website to support the Their Reading Futures initiative.

Their Reading Futures is built around Futurate’s Facilitate web content management system which is based on the popular open source product - OpenCMS. Futurate also provide professional training, support and hosting services.

Further information is available on Futurate's website.

Silver Surfer's Day - May 23rd

Gill Adams at Digital Unite has asked me to highlight the upcoming Silver Surfer's Day which is part of the UK Adult Learner's Week.

Silver Surfer's Day is a national event that is intended to promote the positive impact that information communication technologies (generally the PC and Web) can have on the lives of older people. It also aims to encourage older people who are not computer literate to get to grips with communication technology, through a series of events that allow people to try new technologies or take more formal classroom based activities (The website for 2008 is not yet available, however last year's site is still around).

The way to make sure you receive all the free resources as they're published (Event Planning Guide, Publicity Guide, catchy little jargon-free downloadable 'crib-sheets' on everything from the basics of computer operation to i-player and blogging, and more...) is to enter your email address in the e-zine sign-up slot on www.silversurfersday.org. This way you'll be guided through the new website from the moment it goes live in mid-March.

Thursday, 14 February 2008

It's flippant but....we've created some FREE desktop wallpaper

Karen Hine and John Slater at Futurate have created some beautiful desktop wallpaper that ties in with our current 'love design' campaign and you can get it for nothing from Futurate's site.

Wednesday, 13 February 2008

Getting DOMPDF working inside CakePHP 1.2

One of my current projects at Futurate is the development of a sophisticated database for JISC, which is being developed using the excellent CakePHP framework (I'm also extensively using the jQuery library in order to enhance the user experience).

I can spend all day heaping praise on CakePHP, but that won't tell you how to get DOMPDF (a 3rd party PHP library that creates PDF documents from HTML source) working inside the CakePHP framework will it?

So here's how I did it:

Download DOMPDF and extract the library into your /app/vendors/ directory.

Now comes the bit that took me two days to work out...

Your action in your controller should look something like this:
function action() {

$html = /* your code to generate the HTML you want to turn into a PDF

// turn off debugging output as this interferes with the PDF
Configure::write('debug', '0');
ini_set("display_errors", 0);

// create the pdf
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();

$dompdf->stream("sample.pdf");
The important bit is switching off the errors (marked in bold red). Usually this is a *Bad Thing(TM)* but in this case it's critical.

You see, CakePHP squirts out debugging information into the output stream (usually your HTML) and it looks like DOMPDF has some warning error messages that also get squirted into the stream too.

This is the LAST thing you want while you are in the middle of streaming out a PDF document. It renders the finished PDF invalid and unreadable.

I finally cracked this nasty nut by trawling through the generated (and corrupt) PDF document until I spotted some PHP error messages and then a little later, CakePHP's debug info.

Friday, 8 February 2008

Content organisation in Microsoft SharePoint 2007: key concepts

For web managers who are used to considering the organisation of web content in terms of a static folder structure, Microsoft SharePoint 2007 Server’s (MOSS 2007) content delivery model can seem pretty daunting, primarily because it’s no longer enough to think about the presentation of content in terms of a hierarchical folder structure. Platforms like SharePoint Server allow web managers to provide site visitors with different ‘views’ of web content which means that the same resource or tool may be made available on the same website in different ways, depending on the influence of a number of factors.

A key aspect of MOSS 2007 is the provison of tools and services that can be used to ensure that the experience for a web user is ‘personalised’ (or personalized!), i.e. the content and tools that are displayed on a website are ALWAYS relevant to a user with irrelevant content material from view. Personalisation is usually achieved by providing tools for website users to allow them to tailor the user interface and content to suit them, or through the use of system processes that can attempt to match content to a user depending on what SharePoint knows about a user’s role, behaviour and needs.

In this blog entry I’ll outline the Sharepoint 2007 tools that can be used to shape the delivery of web content. My key aim is to help web managers understand some of the key concepts so that they can start thinking about how personalisation might impact their planning.

If you are interested in finding out more about personalisation then this 2004 paper by Neil Smith, Seb Schmoller and Nicky Ferguson might be of interest (note the slightly concealed PDF download link at page top-left).

Sharepoint Concepts

A Site Collection

A site collection is a collection of websites that are organised hierarchically in a ‘parent/child’ manner, which means that child sites may optionally inherit the properties of their parent in terms of ‘look and feel’ and access rights. There is no theoretical limit to the number of site collections, sites and subsites that reside on a single Sharepoint server.

If we use the example of a global corporation to illustrate this concept, then an organisaiton of this type may use a single portal ‘entry point’ (e.g. www.global.com), and site collections for each territory and then sites and subsites for operational teams in those terroritories.

A Workspace

A Workspace is a virtual space that is used to support a specific team activity such as production of a document. In planning a Sharepoint deployment we tend to consider Workspaces as transient tools that are created ‘on demand’ rather than something that needs to be considered at the beginning.

User management

Anyone who has had cause to restrict acccess to web content or tools on a website to named individuals or a group such as ‘members’ has had to think about user management – the rules that determine what a user can see and do. In general Active Directory is the method by which access to Windows server applications are managed and MOSS 2007 is no expection to this. Management of your organisation’s Active Directory server is usually the responsibility of your IT staff.

Profiles

A Profile is a detailed description of a user that goes beyond being a record of whch security groups they are in. A Profile is an entry in a database , and that database might be used to store other information about an individual such as their contact details or the department that they work in. A Profile is much more than a contact database however, since a Profile can be used drive personalisation in a more sophisticated way than user management.

Audiences

Whereas Windows Active Directory is principally concerned with people’s roles in an organisation and an organisation’s communication requirements, an Audience is another layer which allows content to be targetted according to an individual’s Profile information. So if we return to the global company example I used earlier, it would be possible to use profiles to target content by audience so that staff in the German office for example, didn’t see content that was only relevant to staff in Paris.

Content Query Web Part

The Content Query Web Part is a method of aggregating Sharepoint content by allowing the display of content from anywhere in a site collection at a single location. So for example it might be used to display a list of all the documents that are identified as minutes of meetings in a single location, even though those documents have actually been stored in different locations around the site collection. The use of tools such as user management and audiences in combination with CQWP could mean that only those minutes that are specifially relevant to a user (rather than all minutes) are displayed.

These are the key Sharepoint 2007 tools that can be utilised to shape content delivery and personalisation. Once these are understood then the next goal is to understand which tool is appropriate to which set of circumstances, and this is something that i’ll pick up in a later entry.

In closing I’l state that personalisation should not distract from ensuring that your content structure is robust and well thought through. Furthermore, the effectiveness of personalisation depends on an good understanding of your users needs and readers who are interested in this may want to take a look at this whitepaper on web usability from Futurate, which highlights some core approaches to user-centred design.