Saturday, October 18, 2014

Things you should know before starting a career in Salesforce/Force.com technologies



I have been receiving queries about the future on Force.com technologies and the opportunities. So here is a little post that covers most of the doubts. This post is relevant to most of the Indian companies and opportunities they present, although some general questions on Force.com apply globally.

There are two types of people who usually get into Force.com technologies.

a). Freshers who are out from college who have one thing up their collar, we won't do support work. They brush up a few terms like L1 support, L2 support etc and do it. Again they are further distributed depending on their branch of Engineering. The computer and the IT guys have a little brush up with Java and .Net in their final year and think they know everything there is no know about computers. The ExTC and Mechanical branch students who constantly crib that they copied programs in their data structure subject and the only thing they know is C.

b). The second type of people who start their career with Force.com are usually from the traditional programming background, like Java, .Net and other languages. They usually are either forced to shift or are bored to go on bench for a long time and need the change. These people you will always find talking about technologies they have worked in, specially the Java guys. Java is this, java is that and so on.

Now both are on same platform and are confused what is Salesforce? What is Force.com? Is there a relevant career in the cloud? Do I have to press buttons on the website, no I am an engineer I can't do that? Is there testing involved and so on.

So lets address some of the questions:

What is a Force.com Developer?
Honestly, there is no such thing as a Force.com Developer, not in the traditional sense of way. There won't be a job of the 13th century development method, where you code the whole day are proud of the number of lines of code and go home. No, a Force.com Developer is a techno-functional consultant who has to act smart and deduce what goes into code and what can be achieved using the out of box features (which are many btw). There are many ways of doing the same thing, although none are wrong, only one is optimized.

What is Force.com, I thought this was about Salesforce.com? (This question is most popular, also because we used SFDC everywhere and never FDC)
Salesforce.com is a CRM tool which is hosted on the Cloud platform of Force.com. However, since the company started with the brand name of Salesforce.com, it is customary for many people to call it Salesforce.com practice itself. Salesforce.com is made up of three separate tools, called Sales Cloud, Service Cloud, Marketing Cloud and so on. There are many other products provided by them, the complete list of products can be accessed on the Salesforce.com site.

What type of projects are done on Force.com?
There are two types of application that can be build on Force.com.
a. Data Centric Application
These applications are build around a data base. There is a central database system which stores the data and multiple users store, access, modify this database. Some examples include Human Resource Management System, Contact Management System.

b. Process Centric Application
These application revolve around a business process and perform a certain task. For example, a payroll management system. It has a lot of formulas and human approval needed for the final payroll.

These type of applications can be built on Force.com. Usually you will find some custom applications as required by customers revolving around their business processes.

There are some projects on Salesforce.com where you will have to modify the existing Sales Cloud, Service Cloud tailoring the need and processes of the business. Any project built on any technology revolving around the database and/or projects can be built.

I have Java background, will it be helpful
Yes and No. Yes, with Java background coding on Apex will be a easy enhancement to your skills but at the same time, you will have to unlearn many many things about coding. The best option is prepare your mind you are leaving JAVA and open a book with fresh perspective.

Is there a relevant career in Force.com technology?
I am no tarot card reader or a guy with magic crystal ball, but for now its the hottest thing on the market and the current market reader. Don't believe me, check Google. Having said that, if anyone can predict what future holds for the developer, its not me. So ill say, pass.

Is this like doing manual testing, because you know, I am an engineer and I don't do manual testing. (Yes these words are not my own)
Testing is needed in any project and there are some automation tools, but Salesforce is not only about manual testing or button press. Again, this question is irrelevant to the discussion as this can be answered only by the project manager who assigns you to the project.

Is Salesforce only about administration, I don't like administration. (These are also not my words)
The role of a Salesforce/ForceDotCom Developer is to develop, deploy and deliver projects/applications to the end clients. For this we use Apex, Visualforce and customization. There are separate Administrators who are very good at their job hired by the project team or the client company. So administration won't be the developers role (at-least no company can risk it). Although not that impossible, it is recommended not to put your eggs in both basket and try to be a good developer or a good administrator. Both the roles are highly challenging and reap good rewards.

Are there any certifications involved?
This question is usually followed by a number of certification the candidate did before he/she realized the skills she had were void. So, yes, there are some good certifications involved in the process. The most common ones are Salesforce Certified Developer and Advance Developer for the Developer track. Similarly for the Administrator track we have Salesforce Certified Administrator and Advance Administrator. For more information on Certification, you can visit the Certification help center. They are also on Facebook.

What are the languages used for Development on Force.com?
For development purposes there are two major proprietary languages by Force.com.
Apex is used for back-end processing and building the business logic. It is similar to JAVA, C# and other Object Oriented Language. We use SOQL, i.e., Salesforce Object Query Language which is similar to PL/SQL (not that much but still) and finally, for building UI we use Visualforce, which is similar to JSP, ASP or ASP.Net.
Apart from these normal client technologies like HTML, CSS, JavaScript do come in handy for building that user friendly rich UI on the page.

Is this thing the cloud thing?
We sure believe it is. This is the most confusing question asked when someone new joins in. Cloud is a very basic word and has multiple layers on it. There is SaaS, PaaS and IaaS, there are so many things said on cloud already ask Google and be enlightened. Force.com is a Platform as a Service, where they provide development platform. Salesforce.com provides CRM software/tool as Software as a service.

So like you do everything on the internet? Like we have this XYZ IDE and this and those tools.
We are the smartest people on planet and use only notepad to code. Ok not, we use Eclipse IDE to develop and deploy things. There is no official repository as such but your project team can have a separate best practice for that. One thing (and this for people coming from .Net background) don't expect things to pop up after a DOT, if they do, enjoy your luck, if they don't, move on. Force.com does provide an online IDEs but it is not recommended to use the online IDE as eclipse stores the previous version before edits. There are other tools use for data manipulation and browsing.

Have any questions? Mention them in the comments below


Image Courtesy: http://developer.force.com/