Salesforce, the Astonishingly Powerful “Little Ease” Platform
I have never experienced a level of simultaneous hate and love for any technology like salesforce.com. I’ve been developing on the platform for almost two years, and it’s truly astonishing how powerful and incredible it is, while also sucking so profusely. Of course, this is all from a developer’s perspective and not an end user’s.
My nickname for it is the “Little Ease Platform”. Where does that come from? Little Ease was a torture chamber in London:
Why do I call it Little Ease? Because there are so, so many aspects of the system that are truly limiting and befuddling. You hit limits everywhere you look, often with no apparent reason, and the only recourse is to call support or an account executive, who, much more often than not, will tell you “That’s just the way it is”, or ask you to purchase some feature. I feel like I’m on an airplane with coin operated toilets.
Here I am, well after midnight, trying to figure out why I can’t delete a sandbox associated with a production org. I initially created a sandbox where I either must not have selected a check box requesting that data be included in the image refresh or this “org” might not be configured to allow “Full Sandbox Refreshes”, but of course there’s no way to tell what limits are currently applied to the org in which I’m working. So, I’d love to start over and create a new sandbox where it will also include the data (if that’s even an option), but for some reason, I can’t delete the existing sandbox, and I can’t create a new one because, well, I don’t know, I must not have some permission somewhere. It’s just not possible.
Here’s the “short list” of my gripes with *just* the data management issues, seriously in no particular order:
1. Creating a sandbox can take an arbitrary amount of time, sometimes minutes, hours, or many days. You just have to wait for the email to arrive notifying you of completion.
2. Data export/import does not automatically allow you to keep all the relationships between objects, so if you want to export and re-import into a new org, you have to use Microsoft Excel to do vlookups between all the different relationships between objects. It’s as if the relational database was never invented. If you have a backup of all your data, you can’t re-import it in one step. Mysqldump be damned!
3. Certain data and metadata is not included in exports
4. There is no concept of transactions and locking of the database so one might get a sense that the data is actually accurate
5. Importing is an astonishingly royal PITA. There are a bunch of different ways to import data, and each one has it’s own idiosyncrasies. If you use the web interface, you have the option of matching against existing relational data (via names rather than ids, the data loader doesn’t let you do that), but it’s limited to a certain number of records per import.
6. If you have triggers on any of the objects you’re trying to import, forget about it. More often than not you have to “disable” the triggers during the import process whether using the web interface or the data loader.
7. There is a very strange phenomenon where if you try to import the same data set over three or sometimes four times for testing, it starts failing, even if you have deleted the record completely within the system.
8. Their concept of “upsert” is totally stupid. You’d think that it would either update if a record exists or insert a new one if it doesn’t. Nope. I’m not even exactly sure what the heck it does, and I’ve used it a LOT.
9. The data loader doesn’t always handle record ids the same way that the web interface exports them. I can’t be bothered to remember right now what those nuances are.
10. The data loader is generally way better than the web importer, but the data loader isn’t available in all “editions”.
11. I could go on with just the data management aspects of the platform. I’m writing for myself to vent because I doubt this will ever change anything.
All that said, Salesforce reminds me a bit of Microsoft in the early, early days. Sure it sucked on many levels, but you could almost always figure out a solution to the problem and make it work, even if that involved reinstalling the whole thing (creating a new org in salesforce) or going through some absurdly painful processes. There was some inexplicable “market force” at work somewhere much bigger than any single user or developer. Salesforce has somehow managed to find a way to create a platform that the end users love, where it scales beautifully and has all the features people want, where the people using it could never imagine how truly frustrating it is for those of us tasked with having to make the stupid thing just work.

Leave a Comment