Using broken development frameworks , or why we don't use Zurmo

People often wonder why DBA's used to hate developers, and with DBA's also the System Engineers,
(note that I just expanded devops by adding dba's to the picture..)

So let me tell you a story ..

A couple of weeks ago one of our customers wanted to start experimenting with a new type of CRM. A gamified CRM.
Zurmo ...

So we set this thing up in a dev environment and started playing with it , while at first it looks nice ..
the application actually felt pretty slow.. however given that is a low resource development environment we looked no further.

Yet the next step is that we run into missing features, such as the fact that every contact you create by default is
set to private .. which really isn't productive for a CRM system where you want to be able to follow up on different
customer and share information.

So we tried figuring out what the database changes to do this in bulk would mean, surely it had to be a flag on the contact record .
Wrong, Zurmo uses an ORM for their database connectivity ...so their data model wasn't really trivial.

So we decided to look at the MySQL log file to figure out what db changes happened when updating the record
Yes there's better approaches but this one learned us a lot ..
The procedure I followed was pointing my browser to the page where I wanted to switch the checkbox,
log on to the mysql box, set global logging on . Clicked the checkbox and stopped global logging.

This gave me a log file with all the database actions required to make that one single change.
I had to cross check a number of times ... the file created by this short and small action was.
about 70K

Puzzled you start looking at the queries ...
The query list was full with "SELECT * FROM " stanza's ..
70K whopping K of queries that make your hair turn grey ...

I figured I'd file a bug .. but I couldn't find no bugtracker for Zurmo, only a forum (and forums are the most broken form of communication imvho) , yet the developers responded on Twitter.

The feedback wasn't really satisfying so we quickly decided that supporting this application was not something we would like to do..
and abandonned it..

The real question is who needs a Gamified CRM anyhow...

PS. So while finishing up this article on a late evening this week I might not have put in clear enough that the generated logfile was 70Kb .. I fear some people misunderstood that it generated 70.000 queries. Obviously a huge difference. But still the log file shouldn't have been bigger han 1Kb There should have been 2-3 queries max (https://github.com/KrisBuytaert/snippets/tree/master/zurmo)

But imvho if the size of the queries you are generating is bigger than the page you are generating you are most often doing it wrong.

Comments

roblaus's picture

#1 roblaus : Ran a test with Sugar

Since I have come across such issues (and debates) quite a few times a ran a short test with Sugar (latest version). You may know that these guys are on the market for almost 10 years now, they got more than 50 mio in venture capital, they have allegedly 160 people employed and (or so they say) more than 1 mio users.

One single query - a simple refresh on the contacts listview (I cleaned up the log file before pressing the refresh button) produced a 35K file with almost exactly 500 entries. No modifications, no permissions (teams, groups), just a simple select.

When I was young I admit I did the same as what you do today - I couldn't understand how other people could be so stupid to produce such c..p (in my eyes) and I bitched about it. Loudly and publicly.

This went on until somebody much smarter than me asked me whether, under the same circumstances, I could do it any better. Which I tried. And failed miserably.

Since then I have changed my attitude. I of course still criticize a lot. But careful and constructive, always keeping in mind that it's very very hard to create such a complex product. Free of charge for you and me...

BTW: vtiger is based on Sugar code from 2006 or 07.


Kris Buytaert's picture

#2 Kris Buytaert : On Broken development frameworks ..

You can easily conclude from the article that we opted for an alternative CRM because of the db queries ..

We didn't . there were a number of other reasons to change ..

(When I was young) I've ranted about the style of queries that other tools (e.g. Drupal) generated before too.. this is not specific to Zurmo or Sugar , don't even get me started about Hibernate :)

And oh .. no need to teach me on the history of VTiger & Sugar :) I`m old enough for that too ...


gggeek's picture

#4 gggeek : wow, and I though some of the

wow, and I though some of the developers customizing ezpublish websites where real bad, sometimes churning out a few thousand requests per page without knowing what they where doing! 70k for the base app is the new king of the hill ;-)