Saturday, March 14, 2015

Salesforce for a Developer

I was surprised to hear from some developers that had not heard of Salesforce and the fact that there is an entire language called Apex that uses Salesforce as an operating system, and best of all, it's entirely free to use as an individual.

The cool part: This is where you live in the gray area that Salesforce sells as "No Software". What they really mean is "No Software To Install In Your Local Machine". For a developer, there is also no software to get started: you don't have to install an IDE (you can if you want to), you don't have to run a compiler, you don't have to install database drivers. You just login to your dev environment through Chrome, and you can start editing and running Java-like code and seeing it interact with your data, right away, using a query language that can call data or objects. The other good part is that there are vast amounts of free training available to you that enable to keep track of how much you're learning.

When you start developing on the Salesforce platform, and you've watch inspiring videos and you're unfamiliar with it, it feels like you're in the land of Oz, walking on a yellow brick road, and you have to keep your eyes on the Emerald City that waits for you.

The not-so-cool part: Imagine that someone tells you, while you're walking, that the Emerald City is not all pretty as it seems; that there are dark alleys and homeless people lurking around. Would that make you turn around? I don't think it should. But here I will highlight some aspects that challenge the rosy picture you get if you watch Salesforce videos.

1) Even though your developer license is free, in practice, your users have to pay to see your masterpiece. How much? About $150 a month according to the standard license. The reason is that Salesforce is an enterprise product and it does cost money to run at that level, at least compared with the cost of setting up a technology infrastructure.

2) The deployment process. I read somewhere funny online, someone wishing that Salesforce development wasn't so "soul-crushing". I didn't know what they meant until I experienced my first deployment. I created a small piece of code, which took me less than an hour to run and test locally. The rest of the week I spent doing regression testing, to make sure the new code had not ruined other things, and then the QA deployment, where all the links you created become undone, and you have to recreate them one by one, in order, in the production server, and create a manual for the release specialist to repeat what you did. Deployments like this are par for the course in software development, so in this regard, calling it "No Software" is less of a reality.

3) The latency. No matter how cool it feels to create code, hit "run" and seeing the results on a screen, you have to wait a few microseconds. After doing this hundreds of times you start to feel it.

Regardless of your destination, this development-as-a-service model feels like the way of the future and Salesforce is one of the leaders in this space.

No comments: