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/


Share:

Friday, October 17, 2014

Brace yourself, The Big (Data) wave is here!!!

Dreamforce is almost over and Sanfransico is now busy getting back on its daily track. Dreamforce is huge, Salesforce enthuist travel from over the globe to Dreamforce. They spend 3 days in SFO listing to speakers like Hilary Clinton, Will.I.Am and ofcourse the one who started it all Marc Benioff. While the attendees are busy chocking the streets of SFO, there are millions like me who test the load balancing of their servers by streaming it live on the web. Lets look at some of the numbers they crunched at dreamforce over the year.


If you are in Salesforce ecosystem you already know this, then why am I telling you this again? Because the statistics matter. They matter for Sales team who breathe around their targets. They matter for companies that run on forecasts. And they matter for our economies to run smoothely. We are as good as the data we manage to track and the entire evolution of human happened because we learned to count.

The point being, Data is Big (see what I did there?) and as Marc Beneoff mentioned during his keynote, “Did you know 90% of the world’s data was created in the last two years? There’s going to be 10 times more mobile data by 2020, 19 times more unstructured data, and 50 times more product data by 2020.” Source

This is the data revolution we are living in. Between cat pictures, flash mobs and a lot of 'company' mentions on social media there is a tremendous amount of data to shift through and why does it matter? Because to find the needle in haystack you need to have the haystack in first place. We are living in broadcast revolution more and more people are broadcasting, tweeting, opiniating, judging companies, brands, employeers and someone should do something about it.

Way before the keynote Marc Benioff posted on Facebook, 'Catch a Wave.' And indeed there was a playground of Analytics cloud available on AppStore that could be downloaded. The first thing I did when I saw the post was googled, 'Analytics cloud trial'. After running here and there I realized that the iTunes app is a standalone app with standard set of data. So its a playground (like! the word).




The app consists of four app grouped neatly based on their dataset. Surpringly, there is no mention of the word 'Reports' which I believe is the origin of the idea. But then there is a suggestion that reports is something you print and is static while Wave is completely dynamic. It works offline and is dynamically updated.

Will I hit my target? Is the question many people have asked in the past and have been replied with tones to excel sheet, numbers. With the Wave, now the numbers are replaced with dynamic colorful text that summarizes information like Target, Closed Won, Pipeline etc. It also shows line chart region wise, summarizing the entire data in the most beautiful format. The data is what Salesforce has been generating for years now.

The App in itself has massive data-set but is limited in terms of functionlity. I wanted it to play around my fuzzy data in my org but that will take time. Patience is a virtue I have learned. Wave puts two things in place, one it is Mobile First as shown by the launch of the app and it plays around your data. And two, it is directly merged with Chatter. As I have previously stated Chatter is one big tool that will change the face of the industry as we know it.

I would have expected an Android version so that I could play with the data on the large OnePlus (review coming in a separate post). I can't wait to see what web enhancements wave brings to existing dashboards. Overall Wave seems like splashing out big time. This perhaps may not be a full fledged product out but is coming soon.

What do you think?

Sources:
http://www.businessinsider.com/salesforces-marc-benioff-explains-wave-2014-10
http://bluehillresearch.com/the-wave-breaks-and-the-analytics-cloud-is-revealed/
http://www.salesforce.com/analytics-cloud/overview/

Image credits: Salesforce.com




Share:

Tuesday, October 14, 2014

The AngularJS angle to Visualforce

If someone had mentioned that I would be working on AngularJS a couple of months back, I would have laughed of with that idea. I am a force.com platofrm purist and can work wonders on the platform. Perhaps use jquery for the little magic tricks here and there but thats there. However, as it happened a few weeks back I was introduced to the AngularJS and I cannot be more excited about the technology. A couple of nights in the past I have been deep diving into EggHead to learn AngularJS and have seen in wonder the possibility of Angular $Scope powered with visualforce platform.

After dabbing myself into a bit of Angular, here is first thought on the technology.

The easiest way to implement angular is to include the ng-app on the Apex:page


<apex:page applyhtmltag="false" showheader="false" sidebar="false" standardstylesheets="false">
<html lang="en" ng-app="myApp" ng-controller="AngularController">
....
</html>
</apex:page>

There are two major things you need to handle while using Angular:

  1. The template/ CSS/ JS
    • Most Angular template are not single page document and hence you will have to put in a bit of a effort in converting them into Visualforce by using static resources
    • You could also use Apex:composition to create a composition template.
  2. The Apex code/Database handling
    • The best way to work with Angular data is visualforce remoting. You can call Apex methods using Visualforce Remoting and store the values in JSON objects. 
    • Another way to call Apex method is using rest based Api. You can return values and store them in JSON objects for processing.

Where does it go from here? Why use Angular?

There are various scenarios when you will use Angular. If you are keen on building a webpage with mimimum effort. The future expansion of angular code is easy. If you wish to use bootstrap-angular elements like the ever elite DataTables or you are a nerdy person (like me) who does not want simple things out of life.

Future?

There some planned updates by Salesforce on Angular front but for now all is safe harbor. Angular is easy to use as visualforce component and you can leard a lot of egghead.io

Code Samples?

I am still dabbing into the thing for a project and have no time to prepare separate code samples but ill do other post to create samples on Angular. You can however have a look at other community authored pages for code Samples

Update1:
There are some dreamforce updates related to Angular, if I come across the post will be updated.
Share: