We just spent a year getting off of Salesforce. Our account was closed Friday. I feel a huge weight lifted off my shoulders.<p>Also, I say &quot;year&quot;, but it was really 2 months to write our own CRM system that exactly fits our workflow and then another 2 months making sure we had all of our data synced out of Salesforce and correct.<p>Bad things about Salesforce
- the UI is terrible. 
- development of anything custom is slow and cumbersome
- their API limits are strict and not very well documented. If you go over your limit you are locked out until the next hour and there seems to be some hourly limit on calls you can make even if you have those requests available. You can only send 1000 email messages a day programmatically. Etc. 
- Support is an absolutely terrible experience. They give you none of the tools you need to debug your own problems, they have 8+ hour response times for urgent requests. You have to go through 2 levels of support before you can even get to someone who can help you. You can only have 1 support contact for your entire org and God help you if they are on vacation when you need support. The list goes on. 
- I can develop the same features in our own rails app at least 10x faster than I can in Salesforce and I&#x27;ve spoken to some other people with similar experience (team of 2 rails devs outpacing a team of 10 Salesforce devs on the same features significantly)<p>Things to do if you do go with Salesforce. 
- always always always keep the canonical source of your data in house. Sync things up to Salesforce with the API and back with outbound messages (which don&#x27;t get called in triggers, so try to avoid using those too). There will come a day when you want to leave Salesforce and if your data is half in house and half in Salesforce you&#x27;ll spend 6 months trying to get them synced correctly. 
- try &#x2F;not&#x2F; to build too many custom workflows in Salesforce. They are hard to develop, hard to test, extremely more limited than a &quot;normal&quot; we app. 
- make sure you stay on top of your API request usage and be ready to ask Salesforce for more ($300 for 10,000 more requests a year iirc) because it will take them 12+ hours to actually increase your limit even if you explain to your rep that you&#x27;re going to lose more business in the next hour then you pay Salesforce per year. They just can&#x27;t make that change quickly. 
- find a quality experienced Salesforce developer to teach your team about developing for Salesforce. It&#x27;s a huge tangled mess and professional guidance is critical.<p>Basically, if you have a competent engineering team think really really hard about choosing Salesforce. Most of Salesforce is simply handling a few database tables and basic workflows. Any engineering team should be able to handle that. If you really can&#x27;t live without that one integration try to use Salesforce as lightly as possible. It will save you lots of time, frustration, stress, and heartache later.