Outsourcing New CRM System: What to ask?

  • (2 Pages)
  • +
  • 1
  • 2

15 Replies - 5165 Views - Last Post: 06 September 2012 - 06:55 PM Rate Topic: ***** 2 Votes

#1 nick2price   User is offline

  • D.I.C Lover
  • member icon

Reputation: 565
  • View blog
  • Posts: 2,826
  • Joined: 23-November 07

Outsourcing New CRM System: What to ask?

Post icon  Posted 05 September 2012 - 03:54 PM

Hi guys. So the in place I work, we have a CRM system. Its quite a large system which makes a lot of database calls, inserting and retrieving data. It was supposed to be modular so we could build it up, but it isnt. In fact, its an utter mess of a system and runs as slow as anything.

So, we are getting a new system built by a new company. Representatives of companies will come in and pitch their plan of action to us. When everything is complete, I need to make sure it runs perfectly.

I am confortable with php on the most part, but my knowledge isnt like java where I know what techniques are more efficient than others. So what I am really after is some advise from you guys, as to what sort of questions I could post to the people that pitch their plans, in order to determine who best knows their stuff.

So, from my time spent in the php forum here, I think my first question will be in regards to how they handle their database calls. I think I am right in thinking that they should reply with Prepared Statements, as these are a lot more efficient than the other ways of doing it.

I then intend to ask how they are going to design the database structure. I faguely remember being told that by indexing (maybe called something else?) the tables or something, efficiency increases dramatically.

So, are there any other questions relating to the building of a CRM system which I could possibly ask in order to see if they know what their doing?

Thanks for the advise

Nick

p.s. When they answer, I am going to record it and jot down their answers. I will post anonymous replies just to see what you guys think, if I have any problems understanding it.

p.p.s Gotta go bed now, early start tomorrow, so I will check out the replies (if any) in the morning.

This post has been edited by nick2price: 07 September 2012 - 01:44 PM


Is This A Good Question/Topic? 0
  • +

Replies To: Outsourcing New CRM System: What to ask?

#2 e_i_pi   User is offline

  • = -1
  • member icon

Reputation: 879
  • View blog
  • Posts: 1,893
  • Joined: 30-January 09

Re: Outsourcing New CRM System: What to ask?

Posted 05 September 2012 - 06:03 PM

*
POPULAR

In regards to the database component, I think you might want to have a bit of knowledge under your belt before you start asking questions, as a good DB design is core to any system that handles large-scale data. I can't really point you to any resources (I'm self-taught largely from experience), but I can give some pointers.

Indexing can definitely improve DB performance, but badly chosen indexes, or excessive indexes, can decrease performance. Indexes allow the DB engine to quickly "look up" values that match the given criteria, but it comes at a cost of longer write times and more storage space required. Generally speaking, indexes are great, and it's hard to mess them up if you have a relational database.

I would be asking questions about creating a relational system, in particular come up with an example of the sort of objects you want to store, and then ask the person to quickly draw up a ERD to demonstarte how they would store the data. I can help you identify the ideal ERD for an object if you care to post one.

Specific questions about DB design could include the following:

What are the differences between an INNER JOIN and a LEFT OUTER JOIN?
LEFT OUTER JOIN will produce a row regardless of whether there is a match or not, INNER JOIN will produce rows only where there is a match.

What are the key performance differences between using the IN clause and the EXISTS clause?
EXISTS is faster as it returns true on the first match, whereas IN has to construct the entire set before locating a match.

What are the most expensive clauses in SQL?
IN, NOT, LIKE tend to be the most expensive, but others can be expensive in certain conditions, such as CROSS JOIN, and JOINs on non-indexed columns in large tables.

What normalization factor would you consider as an acceptable minimum for a relational database?
1NF and 2NF are rubbish, if they answer that, they aren't trying. I would say that in almost all applications that 3NF is sufficient, though 4NF or 5NF is good to aim for. There are drawbacks to using 4NF or 5NF, as the benefits are minimal compared to reaching 3NF, and the overhead can outweigh the benefits is some circumstances.

What are the key differences between the MyISAM and InnoDB storage engines? (assuming you're using MySQL)
MyISAM excels in read speed, InnoDB supports transactions and referential integrity.

How would you store datetime data? (assuming you're using MySQL)
As datetime data type (If they answer as unix timestamps, that's not great, as any date comparison clauses then incur conversion from unixtime to datetime. It also points to laziness IMO, as the person is obviously not thinking outside the PHP box). If they include reference to timezones in their answer, big plusses (in my experience this gets overlooked).

Which database management system would you ideally use?
If they suggest MySQL, I would tend to look on that poorly, but you may be different. MySQL lacks scalability, and if your last system lacked scalability, you don't want to fall into the same trap. MSSQL, Oracle and PostgreSQL are all good choices, there are likely others that I'm not aware of that are also good. baavgai would have a better idea than myself. Also, there's a comparison of RDBMS here.

This post has been edited by e_i_pi: 05 September 2012 - 06:04 PM
Reason for edit:: formatting chan

Was This Post Helpful? 11
  • +
  • -

#3 RudiVisser   User is offline

  • .. does not guess solutions
  • member icon

Reputation: 1010
  • View blog
  • Posts: 3,566
  • Joined: 05-June 09

Re: Outsourcing New CRM System: What to ask?

Posted 05 September 2012 - 11:16 PM

Hrrrrrrrrrrrrm, do you mean you're outsourcing development, or just getting in an external system?

The reason I'm asking is because if the latter, the vendor will send out a sales guy who will promise you the world regardless of what you ask, and then get developers in-house to actually make the amendments you requested.

If the former, then go with those questions above regarding the database if that is your main concern. Depending on the language, you could do some quick reading on some performance tips and ask such generic questions as how they would handle expansion beyond X-thousand rows in the database being actively accessed by Y users at any one time.
Was This Post Helpful? 2
  • +
  • -

#4 nick2price   User is offline

  • D.I.C Lover
  • member icon

Reputation: 565
  • View blog
  • Posts: 2,826
  • Joined: 23-November 07

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 02:17 AM

I am actually doing some hardcore reading at the moment in relation to database design, and them suggested questions actually brought back a lot of memories especially when I studied this topic at uni, especially NF. In terms of the work, we are outsourcing development. Reason for this is because only me and one other person here have any programming knowledge, and building a system of this size would take a long time, with no guarentees of its success. So instead, we are getting a company to make it for us, which works out better as I get to travel to their country, lol. I will definately keep you updated on the progress, and how the potential developers respond to the questions. I will also get them to draw up ERD's so you can see if they look acceptable.

Cheers guys

Nick
Was This Post Helpful? 0
  • +
  • -

#5 Curtis Rutland   User is offline

  • (╯□)╯︵ (~ .o.)~
  • member icon


Reputation: 5106
  • View blog
  • Posts: 9,283
  • Joined: 08-June 10

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 07:02 AM

*
POPULAR

Well, here's my two cents, as a person who's spent the last year and a half of his life customizing a CRM: why reinvent a wheel when you can buy one and customize it for cheaper and less time?

There's a lot of good reasons to consider buying a premade CRM solution, such as reliability and price. A lot of them are expensive, but they're cheaper than the hundreds of development hours a home-grown one will cost, and they'll be 10 times more reliable. Also, if something goes wrong, you have a throat to choke, so to speak.

We use MS Dynamics CRM 2011. Perhaps it's not an option, but I suggest looking into it. They offer a hosted solution as well as an on-premise solution, and it's fully extensible (I would know, I've been writing plugins for it since last year). There's absolutely no PHP-style customizations, so it doesn't matter what web language you know. You can use javascript for form customization, and you can use C# for writing plugins.

Anyway, that's enough about them. Just consider your options. There are probably even open-source CRM solutions available for you to work with, many probably written in PHP. Check them out before dumping a contract on someone to homegrow you something.
Was This Post Helpful? 5
  • +
  • -

#6 JackOfAllTrades   User is offline

  • Saucy!
  • member icon

Reputation: 6259
  • View blog
  • Posts: 24,028
  • Joined: 23-August 08

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 09:03 AM

Or there's Salesforce, if they're amenable to a subscription- and cloud-based system.
Was This Post Helpful? 0
  • +
  • -

#7 Curtis Rutland   User is offline

  • (╯□)╯︵ (~ .o.)~
  • member icon


Reputation: 5106
  • View blog
  • Posts: 9,283
  • Joined: 08-June 10

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 09:13 AM

Exactly. There's lots of stuff out there. No reason to pay someone big bucks to make you a custom one, because there's no way it'll be as stable as one from a big name.
Was This Post Helpful? 0
  • +
  • -

#8 nick2price   User is offline

  • D.I.C Lover
  • member icon

Reputation: 565
  • View blog
  • Posts: 2,826
  • Joined: 23-November 07

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 12:10 PM

The thing is, our CRM needs to be far more than a CRM in the future. It needs to be an all in one system, bringing everything our staff uses into one system. It also needs to be different to the standard CRM's in what it offers us, so most of the core code would need to be recoded anyways in order to give us all the functionality we need. So if we went for an existing system, we would be looking into completely changing it. So what would the benefit be going with one of these? The database design and queries would still need to be coded by the developers we hire, and I think this is where most of the instability came from the current system. Additionally, if we did build from a current CRM, we would only really go for a paid one, because we would be paying for the support. But the Microsoft CRM for instance is 47 dollars a month per user, and when you have 15 users, thats 705 dollars a month, 8460 dollars a year. Within 2 years we would have paid more than what we are paying to get our own system built, but we wouldnt own the microsoft system.
Was This Post Helpful? 0
  • +
  • -

#9 JackOfAllTrades   User is offline

  • Saucy!
  • member icon

Reputation: 6259
  • View blog
  • Posts: 24,028
  • Joined: 23-August 08

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 12:20 PM

Quote

But the Microsoft CRM for instance is 47 dollars a month per user, and when you have 15 users, thats 705 dollars a month, 8460 dollars a year. Within 2 years we would have paid more than what we are paying to get our own system built, but we wouldnt own the microsoft system.


You're getting a quote of less than 16K? This...is unexpected for a complete, fully-scalable and feature-expandable CRM system. I'd be wiling to bet you're being snookered; they'll low-ball you up-front and kill you later, once they're in the door and you're stuck. It's how the Chinese got all our manufacturing (my wife worked in PC board purchasing for a major corporation and made several trips to China; she knows).

What about ongoing maintenance, upgrades, and new feature implementation? How about hardware costs? Bug fixes?

It's no doubt a complex decision, but don't underestimate the ongoing costs.
Was This Post Helpful? 2
  • +
  • -

#10 RudiVisser   User is offline

  • .. does not guess solutions
  • member icon

Reputation: 1010
  • View blog
  • Posts: 3,566
  • Joined: 05-June 09

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 12:21 PM

View Postnick2price, on 06 September 2012 - 08:10 PM, said:

8460 dollars a year. Within 2 years we would have paid more than what we are paying to get our own system built, but we wouldnt own the microsoft system.

You're expecting to pay around $17k for a custom built, essentially ERP-solution that will be supported? Really?

That's not going to be scalable, expandable, supported, or probably even reliable in any way of the word. There's no way you could get the type of system that you're expecting for that cost and whoever these developers are, they're probably going to let you down either on initial development or long term support. Something's not right here...

EDIT: Damnit JackOfAllTrades :)

This post has been edited by RudiVisser: 06 September 2012 - 12:26 PM

Was This Post Helpful? 3
  • +
  • -

#11 Curtis Rutland   User is offline

  • (╯□)╯︵ (~ .o.)~
  • member icon


Reputation: 5106
  • View blog
  • Posts: 9,283
  • Joined: 08-June 10

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 01:40 PM

I'm going to throw in here as well. Everyone thinks they need something completely custom. Most people don't realize just how far you can customize these existing ones within their own toolset. For example...

Quote

The database design and queries would still need to be coded by the developers we hire, and I think this is where most of the instability came from the current system.


In MS CRM, you cannot do this for their hosted one, and if you do it in an on-premise install, you're out of support. And yet, we (a credit union) have successfully used MS CRM as a front-end for our mainframe system of record, because we can use plugins to change the querying behavior.

Just consider the fact that there are three of us telling you the same thing...
Was This Post Helpful? 2
  • +
  • -

#12 e_i_pi   User is offline

  • = -1
  • member icon

Reputation: 879
  • View blog
  • Posts: 1,893
  • Joined: 30-January 09

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 02:33 PM

Assuming you're paying $16-17k to get this built, I would say you're about to get swindled. The company I work at does large-scale system software development, and $17k would buy you about 1 weeks time, which would include 2 code developers, 1 BA and 1 DB/report developer. Maybe we charge a lot, but we're pretty successful for a boutique IT company. Once a client is out of support, they need to sign a new support contract otherwise we "charge like a wounded bull" to quote our CFO. Recently one of our clients said that our software was crashing and running extremely slow. Me and 2 others looked into it for two days - it ended up being their IT department putting the software on a VM with 2GB RAM - I believe we're charging them around $7-8k for the time we spent on investigating the issue.

As the other posters have said, have a look at the shrink-wrap solutions out there, you might find that they suit your needs, both in the short-term and for future extensibility. Outsourcing without owning is becoming more and more common nowadays.

Also, if you need to write custom queries, and those queries are just data-retrieval queries, you can use SSRS as your interface by creating a linked server to the (presumably) MySQL server. I've never tried doing it, but I've read documentation on how to do it (was considering doing it for my own PHP app). SSRS / Report Desginer is pretty easy to pick up if you know basic SQL and VB.
Was This Post Helpful? 4
  • +
  • -

#13 nick2price   User is offline

  • D.I.C Lover
  • member icon

Reputation: 565
  • View blog
  • Posts: 2,826
  • Joined: 23-November 07

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 04:31 PM

Funny enough, first thing I said to my boss when I heard the proposal was I was expecting a 100k+. The reason it is cheap is basically due to the fact the work is being outsourced to a country in Eastern Europe. The company has had many big clients, and we are flying over there to view their setup. The cost of a lead developer is like $25 per hour, which is ridiculously cheap compared to the western world. But as I say, they are quite a large company with quite a lot of experience, so it should be pretty legit (will have a better idea when we go there, just hoping their office is not behind a dumpster in a back alley!).

I totally get the points a lot of you make in regards to customising a current CRM, and its definately something I will discuss with my boss. I dont know what positions you all hold in a company though, but if you were an Owner/CEO and you were in this situation, wouldnt you personally want something you can claim as yours, rather than essentially hiring something? I am not in the position to buy a house at the moment so I rent, which is perfectly fine, but at the end of the day my aim is to one day buy my own house, something I can claim as my own (hope the annology is not to far off, lol).

The good news is no contracts or anything are signed yet, we are still in the process of meeting the development teams and seeing what they have to offer. So all these suggestions here could quite possibly influence the final decission. And I definately see the upgrading, debugging aspect of using a current CRM a huge benefit over a custom one. I think I should let them know that if they do go for a custom one, I aint maintaining or upgrading it, lol. I dont know if this is right, but in 5 years time for instance, I would possibly need to look at the core coding in a custom system to make sure it meets the coding standards of the time. In a current CRM, this will be included in the automatic updates. Anyways, I am in work tomorrow anyways, so I will find time to discuss your ideas with the boss.
Was This Post Helpful? 2
  • +
  • -

#14 e_i_pi   User is offline

  • = -1
  • member icon

Reputation: 879
  • View blog
  • Posts: 1,893
  • Joined: 30-January 09

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 05:04 PM

When you get software custom made, you have the danger of falling into a support trap. The company providing the software can essentially charge an exorbatent amount for any support they give that is beyond the scope of the contract. This can include bug fixes, performance issue fixes, user/helpdesk support, new code, and probably some other things that I have not thought of. If the company that provided the code doesn't want to do this, guess what? You're now looking for some other company to come in and fix the mess. This can get very expensive very quickly.

We have this situation with one of our clients. They have agreed that the product we have supplied meets the requirements, and they have a rolling support contract with us for 120hrs of support per month, which can be spent on anything. If they exceed the 120hrs, the cost per hour quadruples. What happens if we pull out of the rolling contract? Then they are boned, severely. They need to get another company in to fix the mess, and since we develop in C#, which compiles rather than getting interpreted, then they have very few options.

In your case, since it would be in PHP, then you access to the code and it alleviates some of the problems of getting a new development team on board, but there can be some serious gotchas when you get custom code developed. At an old workplace, we got a custom HR system developed (which eventually got replaced with SAP). The database looked like this:
asdukhad
    asfkjuiv
    werfhwek
    vasdhvka
    werfiouh

kqwfuuif
    afiuyhhj
    gfbnukui
    jhoibsio
    paiounik

They had obfuscated all the table and column names, and in some cases had encrypted the data that was going into the DB. It was impossible to write our own reporting products against the DB. We paid a pretty penny to get a decrypted dump of the data so that we could import into SAP.

Be careful, there are traps and pitfalls that privately hired companies can throw at you without you even knowing.
Was This Post Helpful? 2
  • +
  • -

#15 The Architect 2.0   User is offline

  • D.I.C Regular

Reputation: 37
  • View blog
  • Posts: 351
  • Joined: 22-May 08

Re: Outsourcing New CRM System: What to ask?

Posted 06 September 2012 - 05:29 PM

View Postnick2price, on 06 September 2012 - 05:31 PM, said:

but if you were an Owner/CEO and you were in this situation, wouldnt you personally want something you can claim as yours, rather than essentially hiring something? I am not in the position to buy a house at the moment so I rent, which is perfectly fine, but at the end of the day my aim is to one day buy my own house, something I can claim as my own (hope the annology is not to far off, lol).


for an owner, they already own the company ;)

for a CEO, they would generally care about being able to claim credit for wins and cast blame for losses.

EDIT: they don't own employees either, they hire them ;)

This post has been edited by The Architect 2.0: 06 September 2012 - 05:31 PM

Was This Post Helpful? 2
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2